diff --git a/cpanfile b/cpanfile index a4a8ac2b9b..e67bf3cf50 100644 --- a/cpanfile +++ b/cpanfile @@ -5,7 +5,7 @@ requires 'HTTP::Tiny'; requires 'Throwable::Error'; requires 'Data::Compare'; requires 'URI'; -requires 'Net::Amazon::Signature::V4'; +requires 'Net::Amazon::Signature::V4' => '0.18'; requires 'JSON::MaybeXS'; requires 'XML::Simple' => '2.21'; requires 'IO::Socket::SSL'; diff --git a/lib/Paws/API.pm b/lib/Paws/API.pm index 059782199a..514808499e 100644 --- a/lib/Paws/API.pm +++ b/lib/Paws/API.pm @@ -39,4 +39,36 @@ package Paws::API::Attribute::Trait::AutoInHeader; Moose::Util::meta_attribute_alias('AutoInHeader'); has auto => (is => 'ro', isa => 'Str'); has header_name => (is => 'ro', isa => 'Str'); + +package Paws::API::Attribute::Trait::ParamInStatus; + use Moose::Role; + use Moose::Util; + Moose::Util::meta_attribute_alias('ParamInStatus'); + has response_name => (is => 'ro', isa => 'Str'); + #response_name + +package Paws::API::Attribute::Trait::Flatten; + use Moose::Role; + use Moose::Util; + Moose::Util::meta_attribute_alias('Flatten'); + +package Paws::API::Attribute::Trait::XMLAtribute; + use Moose::Role; + use Moose::Util; + Moose::Util::meta_attribute_alias('XMLAtribute'); + has xml_attribute_name=> (is => 'ro', isa => 'Str'); + +package Paws::API::Attribute::Trait::ListNameInRequest; + use Moose::Role; + use Moose::Util; + Moose::Util::meta_attribute_alias('ListNameInRequest'); + has list_request_name => (is => 'ro', isa => 'Str'); + +package Paws::API::Attribute::Trait::IsLocal; + use Moose::Role; + use Moose::Util; + Moose::Util::meta_attribute_alias('IsLocal'); + + #response_name + 1; diff --git a/lib/Paws/Net/RestXMLResponse.pm b/lib/Paws/Net/RestXMLResponse.pm index 0fadb9d00d..9bad0390bc 100644 --- a/lib/Paws/Net/RestXMLResponse.pm +++ b/lib/Paws/Net/RestXMLResponse.pm @@ -4,7 +4,7 @@ package Paws::Net::RestXMLResponse; use Carp qw(croak); use HTTP::Status; use Paws::Exception; - + use Data::Dumper; sub unserialize_response { my ($self, $data) = @_; @@ -15,13 +15,13 @@ package Paws::Net::RestXMLResponse; KeyAttr => '', SuppressEmpty => undef, ); + return $xml->parse_string($data); } sub process { my ($self, $call_object, $response) = @_; - - if ( $response->status >= 300 ) { + if ( $response->status >= 300 ) { return $self->error_to_exception($call_object, $response); } else { return $self->response_to_object($call_object, $response); @@ -32,19 +32,18 @@ package Paws::Net::RestXMLResponse; my ($self, $call_object, $response) = @_; my $struct = eval { $self->unserialize_response( $response->content ) }; - if ($@){ + if ($@){ return Paws::Exception->new( message => $@, - code => 'InvalidContent', + code => exists($struct->{Code})?$struct->{Code}:'InvalidContent', request_id => '', #$request_id, http_status => $response->status, ); } my ($message, $code, $request_id, $host_id); - - $message = status_message($response->status); - $code = $response->status; + $message = exists($struct->{Message})? $struct->{Message}: status_message($response->status); + $code = exists($struct->{Code}) ? $struct->{Code} : $response->status; if (exists $struct->{RequestId}) { $request_id = $struct->{RequestId}; @@ -127,30 +126,38 @@ package Paws::Net::RestXMLResponse; sub new_from_result_struct { my ($self, $class, $result) = @_; my %args; - + if ($class->does('Paws::API::StrToObjMapParser')) { return $self->handle_response_strtoobjmap($class, $result); } elsif ($class->does('Paws::API::StrToNativeMapParser')) { return $self->handle_response_strtonativemap($class, $result); } else { - foreach my $att ($class->meta->get_attribute_list) { - next if (not my $meta = $class->meta->get_attribute($att)); - my $key = $meta->does('NameInRequest') ? $meta->request_name : + foreach my $att (sort($class->meta->get_attribute_list)) { #sort them so we ge consitant errors and tests results + next if (not my $meta = $class->meta->get_attribute($att)); + my $key = $meta->does('NameInRequest') ? $meta->request_name : $meta->does('ParamInHeader') ? lc($meta->header_name) : $att; - my $att_type = $meta->type_constraint; my $att_is_required = $meta->is_required; - - # use Data::Dumper; - # print STDERR "USING KEY: $key\n"; - # print STDERR "$att IS A '$att_type' TYPE\n"; - # print STDERR "VALUE: " . Dumper($result); - # my $extracted_val = $result->{ $key }; - # print STDERR "RESULT >>> $extracted_val\n"; +# print STDERR "USING KEY: $key\n"; +# print STDERR "$att IS A '$att_type' TYPE\n"; +# print STDERR "VALUE: " . Dumper($result); +# my $extracted_val = $result->{ $key }; +# print STDERR "RESULT >>> $extracted_val\n"; # Free-form paramaters passed in the HTTP headers - if ($meta->does('Paws::API::Attribute::Trait::ParamInHeaders')) { + # + # + if ($meta->does("ListNameInRequest") and $meta->{list_request_name} eq 'Items'){ + $result->{$meta->{list_request_name}}= $result->{$meta->{list_request_name}}->[0]->{$meta->request_name}; + } + if ($meta->does("XMLAtribute")){ + $args{ $key } = $result->{$meta->xml_attribute_name()}; + } + elsif ( $meta->does('ParamInStatus')){ + $key = $meta->response_name; + $args{ $meta->name } = $result->{$key}; + } elsif ($meta->does('Paws::API::Attribute::Trait::ParamInHeaders')) { Paws->load_class("$att_type"); my $att_class = $att_type->class; my $header_prefix = $meta->header_prefix; @@ -170,7 +177,6 @@ package Paws::Net::RestXMLResponse; $args{ $att } = $value; } else { my $att_class = $att_type->class; - if ($att_class->does('Paws::API::StrToObjMapParser')) { $args{ $att } = $self->handle_response_strtoobjmap($att_class, $value); } elsif ($att_class->does('Paws::API::StrToNativeMapParser')) { @@ -193,8 +199,6 @@ package Paws::Net::RestXMLResponse; } $value_ref = ref($value); } - - $args{ $att } = $att_class->new(map { ($_->{ $xml_keys } => $_->{ $xml_values }) } @$value); } else { $args{ $att } = $self->new_from_result_struct($att_class, $value); @@ -206,7 +210,7 @@ package Paws::Net::RestXMLResponse; # the root node is removed from the response when unserialising (see KeepRoot => 1 for # XML::Simple) but is required to create the Paws object. This is mostly due to the # implementation of the new_from_result_struct sub - my $att_class = $att_type->class; + my $att_class = $att_type->class; eval { $args{ $att } = $self->new_from_result_struct($att_class, $result); 1; @@ -227,20 +231,34 @@ package Paws::Net::RestXMLResponse; } else { $args{ $att } = $value; } + } + elsif ($att_is_required){ #sometimes there is a required field that is not reqturned by AWS. Fill in empty + $args{ $att } = ""; + $args{ $att } = 0 + if ($att_type eq 'Bool' or $att_type eq 'Int'); } + elsif (!$class->does('_payload') and exists($result->{content}) and $result->{content}){ + ###### + # Run into the same root node removed by XML::Simple again here + # In this case any is is a string type so not an object and in this case + # the result of the parse is found on the 'content' key of the $result hash-ref + # so far only seend this with 1 AWs action 'GetBucketLocationOutput' + $args{ $att } = $result->{content}; + } } } elsif (my ($type) = ($att_type =~ m/^ArrayRef\[(.*)\]$/)) { my $value = $result->{ $att }; $value = $result->{ $key } if (not defined $value and $key ne $att); my $value_ref = ref($value); - - if ($value_ref eq 'HASH') { + if ($value_ref eq 'HASH') { if (exists $value->{ member }) { $value = $value->{ member }; } elsif (exists $value->{ entry }) { $value = $value->{ entry }; } elsif (keys %$value == 1) { - $value = $value->{ (keys %$value)[0] }; + my @keys = keys(%{$value}); + $value = $value->{$keys[0]} + if (ref($value->{$keys[0]})); } else { #die "Can't detect the item that has the array in the response hash"; } @@ -249,7 +267,6 @@ package Paws::Net::RestXMLResponse; if ($type =~ m/\:\:/) { Paws->load_class($type); - my $val; if (not defined $value) { $val = [ ]; @@ -293,6 +310,7 @@ package Paws::Net::RestXMLResponse; my $returns = (defined $call_object->_returns) && ($call_object->_returns ne 'Paws::API::Response'); my $ret_class = $returns ? $call_object->_returns : 'Paws::API::Response'; + Paws->load_class($ret_class); my $unserialized_struct; @@ -301,10 +319,19 @@ package Paws::Net::RestXMLResponse; $unserialized_struct = {} } else { if (not defined $content or $content eq '') { - $unserialized_struct = {} - } else { - $unserialized_struct = eval { $self->unserialize_response( $content ) }; - if ($@){ + $unserialized_struct = {}; + } elsif (exists($headers->{'content-type'}) + and $headers->{'content-type'} eq 'application/json' + and $ret_class->can('_payload')){ + $unserialized_struct->{$ret_class->_payload} = $content; + } else { + if ( $ret_class->can('_payload')){ + $unserialized_struct->{$ret_class->_payload}= eval { $self->unserialize_response( $content ) }; + } + else { + $unserialized_struct = eval { $self->unserialize_response( $content ) }; + } + if ($@){ return Paws::Exception->new( message => $@, code => 'InvalidContent', @@ -314,31 +341,31 @@ package Paws::Net::RestXMLResponse; } } } - my $request_id = $headers->{'x-amz-request-id'} || $headers->{'x-amzn-requestid'} || $unserialized_struct->{'requestId'} || $unserialized_struct->{'RequestId'} || $unserialized_struct->{'RequestID'} || $unserialized_struct->{ ResponseMetadata }->{ RequestId }; - + if ($call_object->_result_key){ $unserialized_struct = $unserialized_struct->{ $call_object->_result_key }; } $unserialized_struct->{ _request_id } = $request_id; + $unserialized_struct->{ status } = $http_status; if ($returns){ if ($ret_class->can('_stream_param')) { $unserialized_struct->{ $ret_class->_stream_param } = $content } - + foreach my $key (keys %$headers){ $unserialized_struct->{lc $key} = $headers->{$key}; } my $o_result = $self->new_from_result_struct($call_object->_returns, $unserialized_struct); - return $o_result; + return $o_result; } else { return Paws::API::Response->new( _request_id => $request_id, diff --git a/lib/Paws/Net/RestXmlCaller.pm b/lib/Paws/Net/RestXmlCaller.pm index f000a2bce4..e034c759d6 100755 --- a/lib/Paws/Net/RestXmlCaller.pm +++ b/lib/Paws/Net/RestXmlCaller.pm @@ -1,254 +1,442 @@ package Paws::Net::RestXmlCaller; - use Paws; - use Moose::Role; - use HTTP::Request::Common; - use POSIX qw(strftime); - use URI::Template; - use URI::Escape; - use Moose::Util; - - use Paws::Net::RestXMLResponse; - - has response_to_object => ( - is => 'ro', +use Paws; +use Moose::Role; +use HTTP::Request::Common; +use POSIX qw(strftime); +use URI::Template; +use URI::Escape; +use Moose::Util; +use Paws::Net::RestXMLResponse; +use Data::Dumper; +has response_to_object => ( + is => 'ro', default => sub { - Paws::Net::RestXMLResponse->new; + Paws::Net::RestXMLResponse->new; } - ); +); - - sub array_flatten_string { +sub array_flatten_string { my $self = shift; - return ($self->flattened_arrays)?'%s.%d':'%s.member.%d'; - } - - # converts the objects that represent the call into parameters that the API can understand - sub _to_querycaller_params { - my ($self, $params) = @_; + my ($name) = shift; + $name = "" + unless ($name); + return ( $self->flattened_arrays ) ? '%s.' . $name . '%d' : '%s.member.%d'; +} +# converts the objects that represent the call into parameters that the API can understand +sub _to_querycaller_params { + my ( $self, $params ) = @_; my %p; - foreach my $att (grep { $_ !~ m/^_/ } $params->meta->get_attribute_list) { - - # e.g. S3 metadata objects, which are passed in the header - next if $params->meta->get_attribute($att)->does('Paws::API::Attribute::Trait::ParamInHeaders'); - - my $key = $params->meta->get_attribute($att)->does('Paws::API::Attribute::Trait::ParamInQuery')?$params->meta->get_attribute($att)->query_name:$att; - if (defined $params->$att) { - my $att_type = $params->meta->get_attribute($att)->type_constraint; - - if (Paws->is_internal_type($att_type)) { - $p{ $key } = $params->{$att}; - } elsif ($att_type =~ m/^ArrayRef\[(.*)\]/) { - if (Paws->is_internal_type("$1")){ - my $i = 1; - foreach my $value (@{ $params->$att }){ - $p{ sprintf($self->array_flatten_string, $key, $i) } = $value; - $i++ + my @stuff = $params->meta->get_attribute_list; + foreach my $att ( grep { $_ !~ m/^_/ } $params->meta->get_attribute_list ) { + + # e.g. S3 metadata objects, which are passed in the header + next + if $params->meta->get_attribute($att) + ->does('Paws::API::Attribute::Trait::ParamInHeaders'); + + my $key = + $params->meta->get_attribute($att) + ->does('Paws::API::Attribute::Trait::ParamInQuery') + ? $params->meta->get_attribute($att)->query_name + : $att; + if ( defined $params->$att ) { + my $att_type = $params->meta->get_attribute($att)->type_constraint; + if ( Paws->is_internal_type($att_type) ) { + $p{$key} = $params->{$att}; } - } else { - my $i = 1; - foreach my $value (@{ $params->$att }){ - my %complex_value = $self->_to_querycaller_params($value); - map { $p{ sprintf($self->array_flatten_string . ".%s", $key, $i, $_) } = $complex_value{$_} } keys %complex_value; - $i++ + elsif ( $att_type =~ m/^ArrayRef\[(.*)\]/ ) { + if ( Paws->is_internal_type("$1") ) { + my $i = 1; + foreach my $value ( @{ $params->$att } ) { + $p{ sprintf( $self->array_flatten_string, $key, $i ) } = + $value; + $i++; + } + } + else { + my $i = 1; + foreach my $value ( @{ $params->$att } ) { + my %complex_value = + $self->_to_querycaller_params($value); + my $request_name; + $request_name = + $params->meta->get_attribute($att)->request_name() + . "." + if ( + $params->meta->get_attribute($att)->does( + 'Paws::API::Attribute::Trait::NameInRequest') + ); + map { + $p{ + sprintf( + $self->array_flatten_string($request_name) + . ".%s", + $key, $i, $_ ) + } + = $complex_value{$_} + } keys %complex_value; + $i++; + } + } + } + else { + my %complex_value = + $self->_to_querycaller_params( $params->$att ); + map { $p{"$key.$_"} = $complex_value{$_} } keys %complex_value; } - } - } else { - my %complex_value = $self->_to_querycaller_params($params->$att); - map { $p{ "$key.$_" } = $complex_value{$_} } keys %complex_value; } - } } return %p; - } - - sub _call_uri { - my ($self, $call) = @_; - my $uri_template = $call->meta->name->_api_uri; # in auto-lib//.pm +} +sub _call_uri { + my ( $self, $call ) = @_; + my $uri_template = + $call->meta->name->_api_uri; # in auto-lib//.pm my @uri_attribs = $uri_template =~ /{(.+?)}/g; my $vars = {}; - my %uri_attrib_is_greedy; - foreach my $attrib ( @uri_attribs ) { - my ($att_name, $greedy) = $attrib =~ /(\w+)(\+?)/; - $uri_attrib_is_greedy{$att_name} = $greedy; + foreach my $attrib (@uri_attribs) { + my ( $att_name, $greedy ) = $attrib =~ /(\w+)(\+?)/; + $uri_attrib_is_greedy{$att_name} = $greedy; } + my $joiner = '?'; + $joiner = '&' + if ( index( $uri_template, '?' ) != -1 ); - foreach my $attribute ($call->meta->get_all_attributes) - { - if ($attribute->does('Paws::API::Attribute::Trait::ParamInURI')) { - my $att_name = $attribute->name; - if ($uri_attrib_is_greedy{$att_name}) { - $vars->{ $attribute->uri_name } = uri_escape_utf8($call->$att_name, q[^A-Za-z0-9\-\._~/]); - $uri_template =~ s{$att_name\+}{\+$att_name}g; - } else { - $vars->{ $attribute->uri_name } = $call->$att_name; + foreach my $attribute ( $call->meta->get_all_attributes ) { + + if ( $attribute->does('Paws::API::Attribute::Trait::ParamInQuery') ) { + + my $att_name = $attribute->name; + next + unless ( defined( $call->$att_name ) ); + $uri_template .= + $joiner . $attribute->query_name . "={" . $att_name . "}"; + $vars->{$att_name} = $call->$att_name; + $joiner = '&'; } - } } + foreach my $attribute ( $call->meta->get_all_attributes ) { + + if ( $attribute->does('Paws::API::Attribute::Trait::ParamInURI') ) { + my $att_name = $attribute->name; + if ( exists($uri_attrib_is_greedy{$att_name} )) { + $vars->{ $attribute->uri_name } = + uri_escape_utf8( $call->$att_name, q[^A-Za-z0-9\-\._~/] ); + $uri_template =~ s{$att_name\+}{\+$att_name}g + if ($uri_attrib_is_greedy{$att_name}); + } + else { + $uri_template .= + $joiner . $attribute->uri_name . "={" . $attribute->uri_name . "}"; - my $t = URI::Template->new( $uri_template ); + $vars->{ $attribute->uri_name } = $call->$att_name; + } + } + + } + my $t = URI::Template->new($uri_template); my $uri = $t->process($vars); return $uri; - } - - sub _to_header_params { - my ($self, $request, $call) = @_; - foreach my $attribute ($call->meta->get_all_attributes) { - if ($attribute->does('Paws::API::Attribute::Trait::AutoInHeader')) { - if ( $attribute->auto eq 'MD5' ) { - require MIME::Base64; - require Digest::MD5; - my $value; - if ( $attribute->has_value($call) ) { - $value = $attribute->get_value($call); - } - else { - $value = MIME::Base64::encode_base64( Digest::MD5::md5( $request->content // '' ) ); - chomp $value; - } - $request->headers->header( $attribute->header_name => $value ); +} + +sub _to_header_params { + my ( $self, $request, $call ) = @_; + foreach my $attribute ( $call->meta->get_all_attributes ) { + if ( $attribute->does('Paws::API::Attribute::Trait::AutoInHeader') ) { + if ( $attribute->auto eq 'MD5' ) { + require MIME::Base64; + require Digest::MD5; + my $value; + if ( $attribute->has_value($call) ) { + $value = $attribute->get_value($call); + } + else { + $value = + MIME::Base64::encode_base64( + Digest::MD5::md5( $request->content // '' ) ); + chomp $value; + } + $request->headers->header( $attribute->header_name => $value ); + } + next; + } + next unless $attribute->has_value($call); + if ( $attribute->does('Paws::API::Attribute::Trait::ParamInHeader') ) { + my $value = $attribute->get_value($call); + $request->headers->header( $attribute->header_name => $value ); } - next; - } - next unless $attribute->has_value($call); - if ($attribute->does('Paws::API::Attribute::Trait::ParamInHeader')) { - my $value = $attribute->get_value($call); - $request->headers->header( $attribute->header_name => $value ); - } - elsif ($attribute->does('Paws::API::Attribute::Trait::ParamInHeaders')) { - my $map = $attribute->get_value($call)->Map; - my $prefix = $attribute->header_prefix; - for my $header (keys %{$map}) { - my $header_name = $prefix . $header; - $request->headers->header( $header_name => $map->{$header} ); + elsif ( + $attribute->does('Paws::API::Attribute::Trait::ParamInHeaders') ) + { + my $map = $attribute->get_value($call)->Map; + my $prefix = $attribute->header_prefix; + for my $header ( keys %{$map} ) { + my $header_name = $prefix . $header; + $request->headers->header( $header_name => $map->{$header} ); + } } - } } - } +} - # URI escaping adapted from URI::Escape - #c.f. http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.1 - # perl 5.6 ready UTF-8 encoding adapted from JSON::PP - our %escapes = map { chr($_) => sprintf("%%%02X", $_) } 0..255; - our $unsafe_char = qr/[^A-Za-z0-9\-\._~]/; +# URI escaping adapted from URI::Escape +#c.f. http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.1 +# perl 5.6 ready UTF-8 encoding adapted from JSON::PP +our %escapes = map { chr($_) => sprintf( "%%%02X", $_ ) } 0 .. 255; +our $unsafe_char = qr/[^A-Za-z0-9\-\._~]/; - sub _uri_escape { - my ($self, $str) = @_; +sub _uri_escape { + my ( $self, $str ) = @_; utf8::encode($str); $str =~ s/($unsafe_char)/$escapes{$1}/ge; $str =~ s/ /+/go; return $str; - } +} + +sub _to_xml_attributes { + my ( $self, $value ) = @_; + return "" + unless ( ref($value) and $value->can('_xml_attributes') ); - sub _to_xml { - my ($self, $value) = @_; + my $attributes = $value->_xml_attributes(); + my $xml_attributes = + ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' . join( + '', + map { + sprintf ' %s="%s"', + $value->meta->get_attribute($_)->xml_attribute_name(), $value->$_ + } @{$attributes} + ); + return $xml_attributes; + +} + +sub _to_xml { + my ( $self, $value ) = @_; my $xml = ''; - foreach my $attribute ($value->meta->get_all_attributes) { - my $att_name = $attribute->name; - next if (not $attribute->has_value($value)); - if (Moose::Util::find_meta($attribute->type_constraint->name)) { - if ($attribute->does('NameInRequest')) { - my $location = $attribute->request_name; - $xml .= sprintf '<%s>%s', $location, $self->_to_xml($attribute->get_value($value)), $location; - } else { - $xml .= sprintf '<%s>%s', $att_name, $self->_to_xml($attribute->get_value($value)), $att_name; - } - } elsif ($attribute->type_constraint eq 'ArrayRef[Str|Undef]') { - my $location = $attribute->request_name; - $xml .= "<${att_name}>" . ( join '', map { sprintf '<%s>%s', $location, $_, $location } @{ $attribute->get_value($value) } ) . ""; - } elsif ($attribute->type_constraint =~ m/^ArrayRef\[(.*?\:\:.*)\]/) { #assume it's an array of Paws API objects - my $location = $attribute->does('NameInRequest') ? $attribute->request_name : $att_name; - $xml .= ( join '', map { sprintf '<%s>%s', $location, $self->_to_xml($_), $location } @{ $attribute->get_value($value) } ); - } else { - if ($attribute->does('NameInRequest')) { - my $location = $attribute->request_name; - $xml .= sprintf '<%s>%s', $location, $attribute->get_value($value), $location; - } else { - $xml .= sprintf '<%s>%s', $att_name, $attribute->get_value($value), $att_name; + foreach my $attribute ( sort { $a->name cmp $b->name } + $value->meta->get_all_attributes ) + { + my $att_name = $attribute->name; + next if ( not $attribute->has_value($value) ); + next if ( $attribute->does('XMLAtribute') ); + if ( Moose::Util::find_meta( $attribute->type_constraint->name ) ) { + if ( $attribute->does('NameInRequest') ) { + my $location = $attribute->request_name; + $xml .= sprintf '<%s%s>%s', $location, + $self->_to_xml_attributes( $attribute->get_value($value) ), + $self->_to_xml( $attribute->get_value($value) ), $location; + } + else { + + $xml .= sprintf '<%s%s>%s', $att_name, + $self->_to_xml_attributes( $attribute->get_value($value) ), + $self->_to_xml( $attribute->get_value($value) ), $att_name; + } } - } - } - return $xml; - } + elsif ( $attribute->type_constraint eq 'ArrayRef[Str|Undef]' ) { + + my $location = 'member'; + $location = $attribute->request_name + if ($attribute->can('request_name')); + + my $temp_xml .= ( + join '', + map { sprintf '<%s>%s', $location, $_, $location } + @{ $attribute->get_value($value) } + ); + + $temp_xml = "<$att_name>" . $temp_xml . "" + unless ( $attribute->does('Flatten') ); + + $xml .= $temp_xml; - sub _to_xml_body { - my ($self, $call) = @_; - my $xml = ''; - foreach my $attribute ($call->meta->get_all_attributes) { - if ($attribute->has_value($call) and - not $attribute->does('Paws::API::Attribute::Trait::ParamInHeader') and - not $attribute->does('Paws::API::Attribute::Trait::ParamInQuery') and - not $attribute->does('Paws::API::Attribute::Trait::ParamInURI') and - not $attribute->does('Paws::API::Attribute::Trait::ParamInBody') and - not $attribute->type_constraint eq 'Paws::S3::Metadata' - ) { - my $attribute_value = $attribute->get_value($call); - if ( ref $attribute_value ) { - my $location = $attribute->does('NameInRequest') ? $attribute->request_name : $attribute->name; - $xml .= sprintf '<%s>%s', $location, $self->_to_xml($attribute_value), $location; + } + elsif ( $attribute->type_constraint =~ m/^ArrayRef\[(.*?\:\:.*)\]/ ) + { #assume it's an array of Paws API objects + + + if ( $attribute->does('ListNameInRequest') ) { + my $location = $attribute->request_name(); + my $list_name = $attribute->list_request_name(); + my $temp_xml = ( + join '', + map { + sprintf '<%s%s>%s', $location, + $self->_to_xml_attributes( + $attribute->get_value($_) ), $self->_to_xml($_), + $location + } @{ $attribute->get_value($value) } + ); + + $temp_xml = "<$list_name>$temp_xml" + if ( $location ne $list_name ); + $xml .= $temp_xml; + } + else { + my $location = 'member'; + $location = $attribute->request_name + if $attribute->does('NameInRequest'); + $xml .= ( + join '', + map { + sprintf '<%s%s>%s', $location, + $self->_to_xml_attributes( + $attribute->get_value($_) ), $self->_to_xml($_), + $location + } @{ $attribute->get_value($value) } + ); + $xml = "<$att_name>$xml" + if ( ($attribute->does('NameInRequest') + and $location ne $attribute->request_name + and !$attribute->does('Flatten')) or !$attribute->does('NameInRequest') ); + } } else { - $xml .= $attribute_value; + + if ( $attribute->does('NameInRequest') ) { + my $location = $attribute->request_name; + $xml .= sprintf '<%s%s>%s', $location, + $self->_to_xml_attributes( $attribute->get_value($value) ), + $attribute->get_value($value), $location; + } + else { + $xml .= sprintf '<%s%s>%s', $att_name, + $self->_to_xml_attributes( $attribute->get_value($value) ), + $attribute->get_value($value), $att_name; + } } - } } - - return undef if (not $xml); return $xml; - } +} - sub prepare_request_for_call { - my ($self, $call) = @_; +sub _to_xml_body { + my ( $self, $call ) = @_; - my $request; - if ($self->isa('Paws::S3')){ - require Paws::Net::S3APIRequest; - $request = Paws::Net::S3APIRequest->new(); - } else { - $request = Paws::Net::APIRequest->new(); - } + my $xml = ''; + my $xml_extra = ''; + foreach my $attribute ( sort { $a->name cmp $b->name } + $call->meta->get_all_attributes ) + { + if ( $attribute->has_value($call) + and + not $attribute->does('Paws::API::Attribute::Trait::ParamInHeader') + and + not $attribute->does('Paws::API::Attribute::Trait::ParamInQuery') + and not $attribute->does('Paws::API::Attribute::Trait::ParamInURI') + and not $attribute->does('Paws::API::Attribute::Trait::ParamInBody') + and not $attribute->type_constraint eq 'Paws::S3::Metadata' ) + { + + my $attribute_value = $attribute->get_value($call); + if ( ref $attribute_value ) { + my $location = + $attribute->does('NameInRequest') + ? $attribute->request_name + : $attribute->name; + if ( $attribute->does('Flatten') ) { + $xml .= $self->_to_xml($attribute_value); + } + elsif ( $call->can('_namspace_uri') ) { + $xml .= sprintf '<%s xmlns="%s">%s', $location, + $call->_namspace_uri(), $self->_to_xml($attribute_value), + $location; + } + elsif (ref($attribute_value) eq 'ARRAY'){ + my $location = $attribute->name; + my $list_name = $attribute->name; + + $location = $attribute->request_name + if ( $attribute->can('request_name')); + my $temp_xml = ( + join '', + map { + sprintf '<%s>%s', $location, + , ref($_) ? $self->_to_xml($_) : $_, + $location + } @{ $attribute_value } + ); + $temp_xml = "<$list_name>$temp_xml" + if ( $location ne $list_name ); + $xml .= $temp_xml; + } + else { + $xml .= sprintf '<%s>%s', $location, + $self->_to_xml($attribute_value), $location; + } + } + elsif (!$attribute->does('Paws::API::Attribute::Trait::IsLocal')) { + $xml_extra .= sprintf '<%s>%s',$attribute->name,$attribute_value,$attribute->name; + } - my $uri = $self->_call_uri($call); #in RestXmlCaller - my $qparams = { $uri->query_form }; - foreach my $attribute ($call->meta->get_all_attributes) { - my $att_name = $attribute->name; - if ($attribute->does('Paws::API::Attribute::Trait::ParamInQuery')) { - $qparams->{ $attribute->query_name } = $call->$att_name if (defined $call->$att_name); - } + } + } + if ($call->can('_location')){ + my $location = $call->_location(); + $xml .= $xml_extra; + if ($call->can('_xmlNamespace')){ + $xml = sprintf '<%s xmlns="%s">%s',$location,$call->_xmlNamespace(),$xml,$location; + } + else { + $xml = sprintf '<%s>%s',$location,$xml,$location; + } + } + + return undef if ( not $xml ); + return $xml; +} + +sub prepare_request_for_call { + my ( $self, $call ) = @_; + my $request; + if ( $self->isa('Paws::S3') ) { + require Paws::Net::S3APIRequest; + $request = Paws::Net::S3APIRequest->new(); + } + else { + $request = Paws::Net::APIRequest->new(); } - $uri->query_form(%$qparams); - $request->uri($uri->as_string); + my $uri = $self->_call_uri($call); #in RestXmlCaller - my $url = $self->_api_endpoint . $uri; #in Paws::API::EndPointResolver + my $qparams = { $uri->query_form }; - #TODO: I'm not sure if any of the REST style APIs want things as query parameters - $request->parameters({ $self->_to_querycaller_params($call) }); + $uri->query_form(%$qparams); + $request->uri( $uri->as_string ); + my $url = $self->_api_endpoint . $uri; #in Paws::API::EndPointResolver + #TODO: I'm not sure if any of the REST style APIs want things as query parameters + # + # + $request->parameters( { $self->_to_querycaller_params($call) } ); $request->url($url); - $request->method($call->_api_method); - - if (my $xml_body = $self->_to_xml_body($call)){ - $request->content($xml_body); + $request->method( $call->_api_method ); + if ( my $xml_body = $self->_to_xml_body($call) ) { + $request->content($xml_body); + $request->header( 'content-type' => 'application/xml'); #this is an XML interface so it should have this header } - if ($call->can('_stream_param')) { - my $param_name = $call->_stream_param; - $request->content($call->$param_name); - $request->headers->header( 'content-length' => $request->content_length ); - #$request->headers->header( 'content-type' => $self->content_type ); + if ( $call->can('_stream_param') ) { + my $param_name = $call->_stream_param; + $request->content( $call->$param_name ); + $request->headers->header( + 'content-length' => $request->content_length ); } - $self->_to_header_params($request, $call); - - $self->sign($request); + $self->_to_header_params( $request, $call ); - return $request; - } + if (ref($self) eq "Paws::S3Control"){ #calls out to S3Control need the Account ID + $self->sign($request,$call->AccountId()); + } + else { + $self->sign($request); + } + return $request; +} 1; diff --git a/lib/Paws/Net/S3V4Signature.pm b/lib/Paws/Net/S3V4Signature.pm index dd618bf5f3..0115b80ef9 100644 --- a/lib/Paws/Net/S3V4Signature.pm +++ b/lib/Paws/Net/S3V4Signature.pm @@ -5,8 +5,9 @@ package Paws::Net::S3V4Signature; use Net::Amazon::Signature::V4; #requires 'region'; requires 'service'; + use utf8; use POSIX qw(strftime); - +use Data::Dumper; sub BUILD { my $self = shift; @@ -19,24 +20,36 @@ package Paws::Net::S3V4Signature; # It's much better to have them throw when $paws->service('...') is called # as this is the point where the user had specified "incorrect" information, # instead of the problem happening in the first method call. - $self->endpoint; + # Update 12/27/2019 JPS + # Seems that the API calls S3Control, need to have the account_id in them + # I added that in here; Will + $self->endpoint; $self->_region_for_signature; } sub sign { - my ($self, $request) = @_; + my ($self, $request,$account_id) = @_; $request->header( Date => $request->header('X-Amz-Date') // strftime( '%Y%m%dT%H%M%SZ', gmtime ) ); - $request->header( - 'Host' => $self->endpoint->default_port == $self->endpoint->port - ? $self->endpoint->host - : $self->endpoint->host_port); - if ($self->session_token) { + #$request->header( 'X-Amz-Date' => strftime( '%Y%m%dT%H%M%SZ', gmtime ) ); + # +# $request->header( 'content-type' => 'application/xml'); +#$request->header( 'X-Amz-Date' =>"20191225T194607Z"); + my $url = $request->url(); + $url =~ s/s3-control/$account_id\.s3-control/g; + $request->url($url); + $request->header( + 'host' => $self->endpoint->default_port == $self->endpoint->port + ? $account_id.".".$self->endpoint->host + : $account_id.".".$self->endpoint->host_port); + + if ($self->session_token) { $request->header( 'X-Amz-Security-Token' => $self->session_token ); } + my $name = $self->can('signing_name') ? $self->signing_name : $self->service; my $sig = Net::Amazon::Signature::V4->new( $self->access_key, $self->secret_key, $self->_region_for_signature, $name ); $sig->sign( $request ); - } +} 1; diff --git a/t/05_service_calls.t b/t/05_service_calls.t index 78953420f8..dd80b5908e 100644 --- a/t/05_service_calls.t +++ b/t/05_service_calls.t @@ -516,6 +516,7 @@ like($request->url, qr|distribution/A999AAA999AAA/invalidation|, 'URL has the di is_deeply( $ref, { + 'xmlns' => 'http://cloudfront.amazonaws.com/doc/2019-03-26/', #we actully want this as it is valid XML Paths => { Items => { Path => [ '/object1', '/object2', '/object3' ] }, Quantity => '3' diff --git a/t/09_requests.t b/t/09_requests.t new file mode 100644 index 0000000000..b17ede2228 --- /dev/null +++ b/t/09_requests.t @@ -0,0 +1,134 @@ +#!/usr/bin/env perl + +use lib 't/lib'; + +use strict; +use warnings; +use v5.10; +use Test::More; +use Test::Exception; +use FileCaller; +use TestFromYaml; +use Paws; + +my $debug = $ENV{DEBUG_TESTS} || 0; +my $aws = Paws->new( config => { credentials => 'Test::CustomCredentials' } ); + +use Data::Dumper; + +my @files = @ARGV; +if ( not @files ) { + push @files, sort glob("t/09_requests/*.request"); +} +else { + @files = grep { $_ =~ m/\.request$/ } @files; +} + +BAIL_OUT("No test cases to execute") if ( not @files ); + +foreach my $file (@files) { + test_file($file); +} + +done_testing; + +sub test_file { + my ($file) = @_; + my $test_def_file = "$file.test.yml"; + my ( $test, $opts ); + eval { $test = TestFromYaml->new( file => $test_def_file ); }; + die "YAML error: $@ in file $test_def_file" + if ($@); + eval { $opts = YAML::LoadFile($file); }; + die "YAML error: $@ in file $file" + if ($@); + + SKIP: { + skip "$test_def_file is lacking service or call entry", 1 + if ( not $test->service or not $test->method ); + local $TODO = "$test_def_file is TODO: " . $test->todo_reason + if ( $test->is_todo ); + + my $service = $aws->service( + $test->service, + region => 'fake_region', + caller => FileCaller->new( + response_file => $file, + request_only => 1, + ) + ); + + my $call_method = $test->method; + my $call_class = $service->meta->name . '::' . $call_method; + my $res; + + my $passed = lives_ok { + $res = $service->$call_method( %{$opts} ); + } + "Call " . $test->service . '->' . $test->method . " from $file"; + + if ( not $passed or $TODO ) { + ok( 0, +"Can't test method access because something went horribly wrong in the call to $call_method" + ); + next; + } + + next if ( not $test->has_tests ); + + foreach my $t ( @{ $test->tests } ) { + my $got; + my $path; + if ( defined $t->{path} ) { + + $path = $t->{path}; + if ( $path eq 'url' ) { + my $url = $res->url; + ok( + index( $url, $t->{expected} ) != -1, + "Have " . $t->{expected} . " in the URL" + ); + } + elsif ( $path eq 'uri' ) { + my $uri = $res->uri; + ok( + index( $uri, $t->{expected} ) != -1, + "Have " . $t->{expected} . " in the URI" + ); + } + else { + eval { + + + if ( exists( $t->{key} ) ) { + my $hash = $res->$path; + $got = $hash->{ $t->{key} } + if ( exists( $hash->{ $t->{key} } ) ); + $path = "Param->key: " . $t->{key}; + } + else { + $got = $res->$path; + } + }; + if ($@) { + my $message = $@; + chomp $message; + ok( 0, "Exception accessing $t->{path}: $message" ); + } + if ( not defined $got and not defined $t->{expected} ) { + ok( 1, "Got undef on $path from request" ); + } + else { + cmp_ok( $got, $t->{op}, $t->{expected}, + "Got $path $t->{op} from request" ); + } + } + + } + else { + die +"Didn't know how to get a request to compare to. Check that test has path or dpath entry"; + } + } + } +} diff --git a/t/09_requests/cloudfront-createcloudfrontoriginaccessidentity.request b/t/09_requests/cloudfront-createcloudfrontoriginaccessidentity.request new file mode 100644 index 0000000000..9b0f7d213f --- /dev/null +++ b/t/09_requests/cloudfront-createcloudfrontoriginaccessidentity.request @@ -0,0 +1,4 @@ +--- +CloudFrontOriginAccessIdentityConfig: + CallerReference: some test here + Comment: This is Mr Poopy Buthole calling diff --git a/t/09_requests/cloudfront-createcloudfrontoriginaccessidentity.request.test.yml b/t/09_requests/cloudfront-createcloudfrontoriginaccessidentity.request.test.yml new file mode 100644 index 0000000000..1fd07746b3 --- /dev/null +++ b/t/09_requests/cloudfront-createcloudfrontoriginaccessidentity.request.test.yml @@ -0,0 +1,43 @@ +--- +call: CreateCloudFrontOriginAccessIdentity +service: CloudFront +tests: + - expected: 'some test hereThis is Mr Poopy Buthole calling' + op: eq + path: content + - expected: POST + op: eq + path: method + - expected: ABMqyJX/BZ4JXVVHIyI5gA== + key: content-md5 + op: eq + path: headers + - expected: application/xml + key: content-type + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: 8402f8013dcf6ce4f4e7d24ad48194e066c08e72c2ad2f186b2625edaa864ae9 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: some test here + key: CloudFrontOriginAccessIdentityConfig.CallerReference + op: eq + path: parameters + - expected: This is Mr Poopy Buthole calling + key: CloudFrontOriginAccessIdentityConfig.Comment + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/origin-access-identity/cloudfront + op: eq + path: url + - expected: /2019-03-26/origin-access-identity/cloudfront + op: eq + path: url + - expected: /2019-03-26/origin-access-identity/cloudfront + op: eq + path: uri diff --git a/t/09_requests/cloudfront-createdistribution.request b/t/09_requests/cloudfront-createdistribution.request new file mode 100644 index 0000000000..1982fb14b5 --- /dev/null +++ b/t/09_requests/cloudfront-createdistribution.request @@ -0,0 +1,73 @@ +--- +DistributionConfig: + Aliases: + Quantity: 0 + CacheBehaviors: + Quantity: 0 + CallerReference: cli-example + Comment: '' + CustomErrorResponses: + Quantity: 0 + DefaultCacheBehavior: + AllowedMethods: + CachedMethods: + Items: + - HEAD + - GET + Quantity: 2 + Items: + - HEAD + - GET + Quantity: 2 + Compress: 0 + DefaultTTL: 86400 + FieldLevelEncryptionId: '' + ForwardedValues: + Cookies: + Forward: none + Headers: + Quantity: 0 + QueryString: 0 + QueryStringCacheKeys: + Quantity: 0 + LambdaFunctionAssociations: + Quantity: 0 + MaxTTL: 31536000 + MinTTL: 0 + SmoothStreaming: 0 + TargetOriginId: pawsexamplebucket.s3.amazonaws.com-cli-example + TrustedSigners: + Enabled: 0 + Quantity: 0 + ViewerProtocolPolicy: allow-all + DefaultRootObject: index.html + Enabled: 1 + HttpVersion: http2 + IsIPV6Enabled: 1 + Logging: + Bucket: '' + Enabled: 0 + IncludeCookies: 0 + Prefix: '' + OriginGroups: + Quantity: 0 + Origins: + Items: + - CustomHeaders: + Quantity: 0 + DomainName: pawsexamplebucket.s3.amazonaws.com + Id: pawsexamplebucket.s3.amazonaws.com-cli-example + OriginPath: '' + S3OriginConfig: + OriginAccessIdentity: '' + Quantity: 1 + PriceClass: PriceClass_All + Restrictions: + GeoRestriction: + Quantity: 0 + RestrictionType: none + ViewerCertificate: + CertificateSource: cloudfront + CloudFrontDefaultCertificate: 1 + MinimumProtocolVersion: TLSv1 + WebACLId: '' diff --git a/t/09_requests/cloudfront-createdistribution.request.test.yml b/t/09_requests/cloudfront-createdistribution.request.test.yml new file mode 100644 index 0000000000..6fc1bb76b8 --- /dev/null +++ b/t/09_requests/cloudfront-createdistribution.request.test.yml @@ -0,0 +1,227 @@ +--- +call: CreateDistribution +service: CloudFront +tests: + - expected: '00cli-example0HEADGET2HEADGET2086400none00003153600000pawsexamplebucket.s3.amazonaws.com-cli-example00allow-allindex.html1http210000pawsexamplebucket.s3.amazonaws.compawsexamplebucket.s3.amazonaws.com-cli-example1PriceClass_All0nonecloudfront1TLSv1' + op: eq + path: content + - expected: POST + op: eq + path: method + - expected: 5WkLCjkH3lEK/fz66uwBMg== + key: content-md5 + op: eq + path: headers + - expected: application/xml + key: content-type + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: 783573bab0aba8b78ceadb3bad526883bb3a66946f995dbca6c5dfc208c4c75a + key: x-amz-content-sha256 + op: eq + path: headers + - expected: 0 + key: DistributionConfig.Aliases.Quantity + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.CacheBehaviors.Quantity + op: eq + path: parameters + - expected: cli-example + key: DistributionConfig.CallerReference + op: eq + path: parameters + - expected: '' + key: DistributionConfig.Comment + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.CustomErrorResponses.Quantity + op: eq + path: parameters + - expected: HEAD + key: DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.member.1 + op: eq + path: parameters + - expected: GET + key: DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.member.2 + op: eq + path: parameters + - expected: 2 + key: DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Quantity + op: eq + path: parameters + - expected: HEAD + key: DistributionConfig.DefaultCacheBehavior.AllowedMethods.Items.member.1 + op: eq + path: parameters + - expected: GET + key: DistributionConfig.DefaultCacheBehavior.AllowedMethods.Items.member.2 + op: eq + path: parameters + - expected: 2 + key: DistributionConfig.DefaultCacheBehavior.AllowedMethods.Quantity + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.DefaultCacheBehavior.Compress + op: eq + path: parameters + - expected: 86400 + key: DistributionConfig.DefaultCacheBehavior.DefaultTTL + op: eq + path: parameters + - expected: '' + key: DistributionConfig.DefaultCacheBehavior.FieldLevelEncryptionId + op: eq + path: parameters + - expected: none + key: DistributionConfig.DefaultCacheBehavior.ForwardedValues.Cookies.Forward + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.DefaultCacheBehavior.ForwardedValues.Headers.Quantity + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.DefaultCacheBehavior.ForwardedValues.QueryString + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.DefaultCacheBehavior.ForwardedValues.QueryStringCacheKeys.Quantity + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.DefaultCacheBehavior.LambdaFunctionAssociations.Quantity + op: eq + path: parameters + - expected: 31536000 + key: DistributionConfig.DefaultCacheBehavior.MaxTTL + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.DefaultCacheBehavior.MinTTL + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.DefaultCacheBehavior.SmoothStreaming + op: eq + path: parameters + - expected: pawsexamplebucket.s3.amazonaws.com-cli-example + key: DistributionConfig.DefaultCacheBehavior.TargetOriginId + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.DefaultCacheBehavior.TrustedSigners.Enabled + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.DefaultCacheBehavior.TrustedSigners.Quantity + op: eq + path: parameters + - expected: allow-all + key: DistributionConfig.DefaultCacheBehavior.ViewerProtocolPolicy + op: eq + path: parameters + - expected: index.html + key: DistributionConfig.DefaultRootObject + op: eq + path: parameters + - expected: 1 + key: DistributionConfig.Enabled + op: eq + path: parameters + - expected: http2 + key: DistributionConfig.HttpVersion + op: eq + path: parameters + - expected: 1 + key: DistributionConfig.IsIPV6Enabled + op: eq + path: parameters + - expected: '' + key: DistributionConfig.Logging.Bucket + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.Logging.Enabled + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.Logging.IncludeCookies + op: eq + path: parameters + - expected: '' + key: DistributionConfig.Logging.Prefix + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.OriginGroups.Quantity + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.Origins.Items.member.1.CustomHeaders.Quantity + op: eq + path: parameters + - expected: pawsexamplebucket.s3.amazonaws.com + key: DistributionConfig.Origins.Items.member.1.DomainName + op: eq + path: parameters + - expected: pawsexamplebucket.s3.amazonaws.com-cli-example + key: DistributionConfig.Origins.Items.member.1.Id + op: eq + path: parameters + - expected: '' + key: DistributionConfig.Origins.Items.member.1.OriginPath + op: eq + path: parameters + - expected: '' + key: DistributionConfig.Origins.Items.member.1.S3OriginConfig.OriginAccessIdentity + op: eq + path: parameters + - expected: 1 + key: DistributionConfig.Origins.Quantity + op: eq + path: parameters + - expected: PriceClass_All + key: DistributionConfig.PriceClass + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.Restrictions.GeoRestriction.Quantity + op: eq + path: parameters + - expected: none + key: DistributionConfig.Restrictions.GeoRestriction.RestrictionType + op: eq + path: parameters + - expected: cloudfront + key: DistributionConfig.ViewerCertificate.CertificateSource + op: eq + path: parameters + - expected: 1 + key: DistributionConfig.ViewerCertificate.CloudFrontDefaultCertificate + op: eq + path: parameters + - expected: TLSv1 + key: DistributionConfig.ViewerCertificate.MinimumProtocolVersion + op: eq + path: parameters + - expected: '' + key: DistributionConfig.WebACLId + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/distribution + op: eq + path: url + - expected: /2019-03-26/distribution + op: eq + path: url + - expected: /2019-03-26/distribution + op: eq + path: uri diff --git a/t/09_requests/cloudfront-createdistributionwithtags.1.request b/t/09_requests/cloudfront-createdistributionwithtags.1.request new file mode 100644 index 0000000000..ae7b436a65 --- /dev/null +++ b/t/09_requests/cloudfront-createdistributionwithtags.1.request @@ -0,0 +1,82 @@ +--- +DistributionConfigWithTags: + DistributionConfig: + Aliases: + Quantity: 0 + CacheBehaviors: + Quantity: 0 + CallerReference: def-example + Comment: '' + CustomErrorResponses: + Quantity: 0 + DefaultCacheBehavior: + AllowedMethods: + CachedMethods: + Items: + - HEAD + - GET + Quantity: 2 + Items: + - HEAD + - GET + Quantity: 2 + Compress: 0 + DefaultTTL: 86400 + FieldLevelEncryptionId: '' + ForwardedValues: + Cookies: + Forward: none + Headers: + Quantity: 0 + QueryString: 0 + QueryStringCacheKeys: + Quantity: 0 + LambdaFunctionAssociations: + Quantity: 0 + MaxTTL: 31536000 + MinTTL: 0 + SmoothStreaming: 0 + TargetOriginId: pawsexamplebucket.s3.amazonaws.com-def-example + TrustedSigners: + Enabled: 0 + Quantity: 0 + ViewerProtocolPolicy: allow-all + DefaultRootObject: index2.html + Enabled: 0 + HttpVersion: http2 + IsIPV6Enabled: 1 + Logging: + Bucket: '' + Enabled: 0 + IncludeCookies: 0 + Prefix: '' + OriginGroups: + Quantity: 0 + Origins: + Items: + - CustomHeaders: + Quantity: 0 + DomainName: pawsexamplebucket.s3.amazonaws.com + Id: pawsexamplebucket.s3.amazonaws.com-def-example + OriginPath: '' + S3OriginConfig: + OriginAccessIdentity: '' + Quantity: 1 + PriceClass: PriceClass_All + Restrictions: + GeoRestriction: + Quantity: 0 + RestrictionType: none + ViewerCertificate: + CertificateSource: cloudfront + CloudFrontDefaultCertificate: 1 + MinimumProtocolVersion: TLSv1 + WebACLId: '' + Tags: + Items: + - Key: Key 1 + Value: Value 1 + - Key: Key 2 + Value: Value 2 + - Key: Key 3 + Value: Value 3 diff --git a/t/09_requests/cloudfront-createdistributionwithtags.1.request.test.yml b/t/09_requests/cloudfront-createdistributionwithtags.1.request.test.yml new file mode 100644 index 0000000000..f6e083f4df --- /dev/null +++ b/t/09_requests/cloudfront-createdistributionwithtags.1.request.test.yml @@ -0,0 +1,254 @@ +--- +call: CreateDistributionWithTags +service: CloudFront +tests: + - expected: '00def-example0HEADGET2HEADGET2086400none00003153600000pawsexamplebucket.s3.amazonaws.com-def-example00allow-allindex2.html0http210000pawsexamplebucket.s3.amazonaws.compawsexamplebucket.s3.amazonaws.com-def-example1PriceClass_All0nonecloudfront1TLSv1Key 1Value 1Key 2Value 2Key 3Value 3' + op: eq + path: content + - expected: POST + op: eq + path: method + - expected: hRPaOhd7YNMXeoRmxuJ8Mw== + key: content-md5 + op: eq + path: headers + - expected: application/xml + key: content-type + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: 85ecb93e240162db4adac82295d172a3e8c9d55fc0254364d69174b85c60d3bb + key: x-amz-content-sha256 + op: eq + path: headers + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.Aliases.Quantity + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.CacheBehaviors.Quantity + op: eq + path: parameters + - expected: def-example + key: DistributionConfigWithTags.DistributionConfig.CallerReference + op: eq + path: parameters + - expected: '' + key: DistributionConfigWithTags.DistributionConfig.Comment + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.CustomErrorResponses.Quantity + op: eq + path: parameters + - expected: HEAD + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.member.1 + op: eq + path: parameters + - expected: GET + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.member.2 + op: eq + path: parameters + - expected: 2 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Quantity + op: eq + path: parameters + - expected: HEAD + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Items.member.1 + op: eq + path: parameters + - expected: GET + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Items.member.2 + op: eq + path: parameters + - expected: 2 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Quantity + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.Compress + op: eq + path: parameters + - expected: 86400 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.DefaultTTL + op: eq + path: parameters + - expected: '' + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.FieldLevelEncryptionId + op: eq + path: parameters + - expected: none + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Cookies.Forward + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Headers.Quantity + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.ForwardedValues.QueryString + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.ForwardedValues.QueryStringCacheKeys.Quantity + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.LambdaFunctionAssociations.Quantity + op: eq + path: parameters + - expected: 31536000 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.MaxTTL + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.MinTTL + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.SmoothStreaming + op: eq + path: parameters + - expected: pawsexamplebucket.s3.amazonaws.com-def-example + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.TargetOriginId + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.TrustedSigners.Enabled + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.TrustedSigners.Quantity + op: eq + path: parameters + - expected: allow-all + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.ViewerProtocolPolicy + op: eq + path: parameters + - expected: index2.html + key: DistributionConfigWithTags.DistributionConfig.DefaultRootObject + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.Enabled + op: eq + path: parameters + - expected: http2 + key: DistributionConfigWithTags.DistributionConfig.HttpVersion + op: eq + path: parameters + - expected: 1 + key: DistributionConfigWithTags.DistributionConfig.IsIPV6Enabled + op: eq + path: parameters + - expected: '' + key: DistributionConfigWithTags.DistributionConfig.Logging.Bucket + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.Logging.Enabled + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.Logging.IncludeCookies + op: eq + path: parameters + - expected: '' + key: DistributionConfigWithTags.DistributionConfig.Logging.Prefix + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.OriginGroups.Quantity + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.Origins.Items.member.1.CustomHeaders.Quantity + op: eq + path: parameters + - expected: pawsexamplebucket.s3.amazonaws.com + key: DistributionConfigWithTags.DistributionConfig.Origins.Items.member.1.DomainName + op: eq + path: parameters + - expected: pawsexamplebucket.s3.amazonaws.com-def-example + key: DistributionConfigWithTags.DistributionConfig.Origins.Items.member.1.Id + op: eq + path: parameters + - expected: '' + key: DistributionConfigWithTags.DistributionConfig.Origins.Items.member.1.OriginPath + op: eq + path: parameters + - expected: '' + key: DistributionConfigWithTags.DistributionConfig.Origins.Items.member.1.S3OriginConfig.OriginAccessIdentity + op: eq + path: parameters + - expected: 1 + key: DistributionConfigWithTags.DistributionConfig.Origins.Quantity + op: eq + path: parameters + - expected: PriceClass_All + key: DistributionConfigWithTags.DistributionConfig.PriceClass + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.Restrictions.GeoRestriction.Quantity + op: eq + path: parameters + - expected: none + key: DistributionConfigWithTags.DistributionConfig.Restrictions.GeoRestriction.RestrictionType + op: eq + path: parameters + - expected: cloudfront + key: DistributionConfigWithTags.DistributionConfig.ViewerCertificate.CertificateSource + op: eq + path: parameters + - expected: 1 + key: DistributionConfigWithTags.DistributionConfig.ViewerCertificate.CloudFrontDefaultCertificate + op: eq + path: parameters + - expected: TLSv1 + key: DistributionConfigWithTags.DistributionConfig.ViewerCertificate.MinimumProtocolVersion + op: eq + path: parameters + - expected: '' + key: DistributionConfigWithTags.DistributionConfig.WebACLId + op: eq + path: parameters + - expected: Key 1 + key: DistributionConfigWithTags.Tags.Items.member.1.Key + op: eq + path: parameters + - expected: Value 1 + key: DistributionConfigWithTags.Tags.Items.member.1.Value + op: eq + path: parameters + - expected: Key 2 + key: DistributionConfigWithTags.Tags.Items.member.2.Key + op: eq + path: parameters + - expected: Value 2 + key: DistributionConfigWithTags.Tags.Items.member.2.Value + op: eq + path: parameters + - expected: Key 3 + key: DistributionConfigWithTags.Tags.Items.member.3.Key + op: eq + path: parameters + - expected: Value 3 + key: DistributionConfigWithTags.Tags.Items.member.3.Value + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/distribution + op: eq + path: url + - expected: /2019-03-26/distribution + op: eq + path: url + - expected: /2019-03-26/distribution + op: eq + path: uri + - expected: WithTags + op: eq + path: uri diff --git a/t/09_requests/cloudfront-createdistributionwithtags.request b/t/09_requests/cloudfront-createdistributionwithtags.request new file mode 100644 index 0000000000..9360d4b71d --- /dev/null +++ b/t/09_requests/cloudfront-createdistributionwithtags.request @@ -0,0 +1,78 @@ +--- +DistributionConfigWithTags: + DistributionConfig: + Aliases: + Quantity: 0 + CacheBehaviors: + Quantity: 0 + CallerReference: abc-example + Comment: '' + CustomErrorResponses: + Quantity: 0 + DefaultCacheBehavior: + AllowedMethods: + CachedMethods: + Items: + - HEAD + - GET + Quantity: 2 + Items: + - HEAD + - GET + Quantity: 2 + Compress: 0 + DefaultTTL: 86400 + FieldLevelEncryptionId: '' + ForwardedValues: + Cookies: + Forward: none + Headers: + Quantity: 0 + QueryString: 0 + QueryStringCacheKeys: + Quantity: 0 + LambdaFunctionAssociations: + Quantity: 0 + MaxTTL: 31536000 + MinTTL: 0 + SmoothStreaming: 0 + TargetOriginId: pawsexamplebucket.s3.amazonaws.com-abc-example + TrustedSigners: + Enabled: 0 + Quantity: 0 + ViewerProtocolPolicy: allow-all + DefaultRootObject: index2.html + Enabled: 0 + HttpVersion: http2 + IsIPV6Enabled: 1 + Logging: + Bucket: '' + Enabled: 0 + IncludeCookies: 0 + Prefix: '' + OriginGroups: + Quantity: 0 + Origins: + Items: + - CustomHeaders: + Quantity: 0 + DomainName: pawsexamplebucket.s3.amazonaws.com + Id: pawsexamplebucket.s3.amazonaws.com-abc-example + OriginPath: '' + S3OriginConfig: + OriginAccessIdentity: '' + Quantity: 1 + PriceClass: PriceClass_All + Restrictions: + GeoRestriction: + Quantity: 0 + RestrictionType: none + ViewerCertificate: + CertificateSource: cloudfront + CloudFrontDefaultCertificate: 1 + MinimumProtocolVersion: TLSv1 + WebACLId: '' + Tags: + Items: + - Key: Key 1 + Value: Value 1 diff --git a/t/09_requests/cloudfront-createdistributionwithtags.request.test.yml b/t/09_requests/cloudfront-createdistributionwithtags.request.test.yml new file mode 100644 index 0000000000..538d34c9f1 --- /dev/null +++ b/t/09_requests/cloudfront-createdistributionwithtags.request.test.yml @@ -0,0 +1,238 @@ +--- +call: CreateDistributionWithTags +service: CloudFront +tests: + - expected: '00abc-example0HEADGET2HEADGET2086400none00003153600000pawsexamplebucket.s3.amazonaws.com-abc-example00allow-allindex2.html0http210000pawsexamplebucket.s3.amazonaws.compawsexamplebucket.s3.amazonaws.com-abc-example1PriceClass_All0nonecloudfront1TLSv1Key 1Value 1' + op: eq + path: content + - expected: POST + op: eq + path: method + - expected: P69rF+Qq6hJHYIDZBLbTtw== + key: content-md5 + op: eq + path: headers + - expected: application/xml + key: content-type + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: ca3ce2c8b185fa82f3921699de5eacf291f7b187643739aa9850391849a06540 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.Aliases.Quantity + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.CacheBehaviors.Quantity + op: eq + path: parameters + - expected: abc-example + key: DistributionConfigWithTags.DistributionConfig.CallerReference + op: eq + path: parameters + - expected: '' + key: DistributionConfigWithTags.DistributionConfig.Comment + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.CustomErrorResponses.Quantity + op: eq + path: parameters + - expected: HEAD + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.member.1 + op: eq + path: parameters + - expected: GET + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.member.2 + op: eq + path: parameters + - expected: 2 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Quantity + op: eq + path: parameters + - expected: HEAD + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Items.member.1 + op: eq + path: parameters + - expected: GET + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Items.member.2 + op: eq + path: parameters + - expected: 2 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Quantity + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.Compress + op: eq + path: parameters + - expected: 86400 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.DefaultTTL + op: eq + path: parameters + - expected: '' + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.FieldLevelEncryptionId + op: eq + path: parameters + - expected: none + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Cookies.Forward + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Headers.Quantity + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.ForwardedValues.QueryString + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.ForwardedValues.QueryStringCacheKeys.Quantity + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.LambdaFunctionAssociations.Quantity + op: eq + path: parameters + - expected: 31536000 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.MaxTTL + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.MinTTL + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.SmoothStreaming + op: eq + path: parameters + - expected: pawsexamplebucket.s3.amazonaws.com-abc-example + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.TargetOriginId + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.TrustedSigners.Enabled + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.TrustedSigners.Quantity + op: eq + path: parameters + - expected: allow-all + key: DistributionConfigWithTags.DistributionConfig.DefaultCacheBehavior.ViewerProtocolPolicy + op: eq + path: parameters + - expected: index2.html + key: DistributionConfigWithTags.DistributionConfig.DefaultRootObject + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.Enabled + op: eq + path: parameters + - expected: http2 + key: DistributionConfigWithTags.DistributionConfig.HttpVersion + op: eq + path: parameters + - expected: 1 + key: DistributionConfigWithTags.DistributionConfig.IsIPV6Enabled + op: eq + path: parameters + - expected: '' + key: DistributionConfigWithTags.DistributionConfig.Logging.Bucket + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.Logging.Enabled + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.Logging.IncludeCookies + op: eq + path: parameters + - expected: '' + key: DistributionConfigWithTags.DistributionConfig.Logging.Prefix + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.OriginGroups.Quantity + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.Origins.Items.member.1.CustomHeaders.Quantity + op: eq + path: parameters + - expected: pawsexamplebucket.s3.amazonaws.com + key: DistributionConfigWithTags.DistributionConfig.Origins.Items.member.1.DomainName + op: eq + path: parameters + - expected: pawsexamplebucket.s3.amazonaws.com-abc-example + key: DistributionConfigWithTags.DistributionConfig.Origins.Items.member.1.Id + op: eq + path: parameters + - expected: '' + key: DistributionConfigWithTags.DistributionConfig.Origins.Items.member.1.OriginPath + op: eq + path: parameters + - expected: '' + key: DistributionConfigWithTags.DistributionConfig.Origins.Items.member.1.S3OriginConfig.OriginAccessIdentity + op: eq + path: parameters + - expected: 1 + key: DistributionConfigWithTags.DistributionConfig.Origins.Quantity + op: eq + path: parameters + - expected: PriceClass_All + key: DistributionConfigWithTags.DistributionConfig.PriceClass + op: eq + path: parameters + - expected: 0 + key: DistributionConfigWithTags.DistributionConfig.Restrictions.GeoRestriction.Quantity + op: eq + path: parameters + - expected: none + key: DistributionConfigWithTags.DistributionConfig.Restrictions.GeoRestriction.RestrictionType + op: eq + path: parameters + - expected: cloudfront + key: DistributionConfigWithTags.DistributionConfig.ViewerCertificate.CertificateSource + op: eq + path: parameters + - expected: 1 + key: DistributionConfigWithTags.DistributionConfig.ViewerCertificate.CloudFrontDefaultCertificate + op: eq + path: parameters + - expected: TLSv1 + key: DistributionConfigWithTags.DistributionConfig.ViewerCertificate.MinimumProtocolVersion + op: eq + path: parameters + - expected: '' + key: DistributionConfigWithTags.DistributionConfig.WebACLId + op: eq + path: parameters + - expected: Key 1 + key: DistributionConfigWithTags.Tags.Items.member.1.Key + op: eq + path: parameters + - expected: Value 1 + key: DistributionConfigWithTags.Tags.Items.member.1.Value + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/distribution + op: eq + path: url + - expected: /2019-03-26/distribution + op: eq + path: url + - expected: /2019-03-26/distribution + op: eq + path: uri + - expected: WithTags + op: eq + path: uri diff --git a/t/09_requests/cloudfront-createfieldlevelencryptionconfig.request b/t/09_requests/cloudfront-createfieldlevelencryptionconfig.request new file mode 100644 index 0000000000..b7c1344097 --- /dev/null +++ b/t/09_requests/cloudfront-createfieldlevelencryptionconfig.request @@ -0,0 +1,19 @@ +--- +FieldLevelEncryptionConfig: + CallerReference: 01-01-2020:00001 + Comment: No Gerry you can't come! + ContentTypeProfileConfig: + ContentTypeProfiles: + Items: + - ContentType: application/x-www-form-urlencoded + Format: URLEncoded + ProfileId: P14TNUMMKLEPXX + Quantity: 1 + ForwardWhenContentTypeIsUnknown: 1 + QueryArgProfileConfig: + ForwardWhenQueryArgProfileIsUnknown: 1 + QueryArgProfiles: + Items: + - ProfileId: P14TNUMMKLEPXX + QueryArg: no_conig + Quantity: 1 diff --git a/t/09_requests/cloudfront-createfieldlevelencryptionconfig.request.test.yml b/t/09_requests/cloudfront-createfieldlevelencryptionconfig.request.test.yml new file mode 100644 index 0000000000..3e24f4f091 --- /dev/null +++ b/t/09_requests/cloudfront-createfieldlevelencryptionconfig.request.test.yml @@ -0,0 +1,79 @@ +--- +call: CreateFieldLevelEncryptionConfig +service: CloudFront +tests: + - expected: "01-01-2020:00001No Gerry you can't come!application/x-www-form-urlencodedURLEncodedP14TNUMMKLEPXX111P14TNUMMKLEPXXno_conig1" + op: eq + path: content + - expected: POST + op: eq + path: method + - expected: 4FeeLheVb6tu4LvD+IVT6w== + key: content-md5 + op: eq + path: headers + - expected: application/xml + key: content-type + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: d573c6f7e9bd993c385d68abee956ac370af722df295bf5e94d3fbf62290caef + key: x-amz-content-sha256 + op: eq + path: headers + - expected: 01-01-2020:00001 + key: FieldLevelEncryptionConfig.CallerReference + op: eq + path: parameters + - expected: No Gerry you can't come! + key: FieldLevelEncryptionConfig.Comment + op: eq + path: parameters + - expected: application/x-www-form-urlencoded + key: FieldLevelEncryptionConfig.ContentTypeProfileConfig.ContentTypeProfiles.Items.member.1.ContentType + op: eq + path: parameters + - expected: URLEncoded + key: FieldLevelEncryptionConfig.ContentTypeProfileConfig.ContentTypeProfiles.Items.member.1.Format + op: eq + path: parameters + - expected: P14TNUMMKLEPXX + key: FieldLevelEncryptionConfig.ContentTypeProfileConfig.ContentTypeProfiles.Items.member.1.ProfileId + op: eq + path: parameters + - expected: 1 + key: FieldLevelEncryptionConfig.ContentTypeProfileConfig.ContentTypeProfiles.Quantity + op: eq + path: parameters + - expected: 1 + key: FieldLevelEncryptionConfig.ContentTypeProfileConfig.ForwardWhenContentTypeIsUnknown + op: eq + path: parameters + - expected: 1 + key: FieldLevelEncryptionConfig.QueryArgProfileConfig.ForwardWhenQueryArgProfileIsUnknown + op: eq + path: parameters + - expected: P14TNUMMKLEPXX + key: FieldLevelEncryptionConfig.QueryArgProfileConfig.QueryArgProfiles.Items.member.1.ProfileId + op: eq + path: parameters + - expected: no_conig + key: FieldLevelEncryptionConfig.QueryArgProfileConfig.QueryArgProfiles.Items.member.1.QueryArg + op: eq + path: parameters + - expected: 1 + key: FieldLevelEncryptionConfig.QueryArgProfileConfig.QueryArgProfiles.Quantity + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/field-level-encryption + op: eq + path: url + - expected: /2019-03-26/field-level-encryption + op: eq + path: url + - expected: /2019-03-26/field-level-encryption + op: eq + path: uri diff --git a/t/09_requests/cloudfront-createfieldlevelencryptionprofile.request b/t/09_requests/cloudfront-createfieldlevelencryptionprofile.request new file mode 100644 index 0000000000..53c2d16e0e --- /dev/null +++ b/t/09_requests/cloudfront-createfieldlevelencryptionprofile.request @@ -0,0 +1,15 @@ +--- +FieldLevelEncryptionProfileConfig: + CallerReference: 2020-01-01-20:01 + Comment: Rick was here + EncryptionEntities: + Items: + - FieldPatterns: + Items: + - None* + - some* + Quantity: 2 + ProviderId: OpenSSL + PublicKeyId: K3ODSO6SYTI4ZG + Quantity: 1 + Name: PawsCloudConfig diff --git a/t/09_requests/cloudfront-createfieldlevelencryptionprofile.request.test.yml b/t/09_requests/cloudfront-createfieldlevelencryptionprofile.request.test.yml new file mode 100644 index 0000000000..a593a530dc --- /dev/null +++ b/t/09_requests/cloudfront-createfieldlevelencryptionprofile.request.test.yml @@ -0,0 +1,71 @@ +--- +call: CreateFieldLevelEncryptionProfile +service: CloudFront +tests: + - expected: '2020-01-01-20:01Rick was hereNone*some*2OpenSSLK3ODSO6SYTI4ZG1PawsCloudConfig' + op: eq + path: content + - expected: POST + op: eq + path: method + - expected: 5mxQeMC3XrptCUq/syw+hw== + key: content-md5 + op: eq + path: headers + - expected: application/xml + key: content-type + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: 977a3f294267f25658d4f5ab22f0ef55720fc61ee37319d12ebb1bd470be084c + key: x-amz-content-sha256 + op: eq + path: headers + - expected: 2020-01-01-20:01 + key: FieldLevelEncryptionProfileConfig.CallerReference + op: eq + path: parameters + - expected: Rick was here + key: FieldLevelEncryptionProfileConfig.Comment + op: eq + path: parameters + - expected: None* + key: FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.member.1.FieldPatterns.Items.member.1 + op: eq + path: parameters + - expected: some* + key: FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.member.1.FieldPatterns.Items.member.2 + op: eq + path: parameters + - expected: 2 + key: FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.member.1.FieldPatterns.Quantity + op: eq + path: parameters + - expected: OpenSSL + key: FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.member.1.ProviderId + op: eq + path: parameters + - expected: K3ODSO6SYTI4ZG + key: FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.member.1.PublicKeyId + op: eq + path: parameters + - expected: 1 + key: FieldLevelEncryptionProfileConfig.EncryptionEntities.Quantity + op: eq + path: parameters + - expected: PawsCloudConfig + key: FieldLevelEncryptionProfileConfig.Name + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/field-level-encryption-profile + op: eq + path: url + - expected: /2019-03-26/field-level-encryption-profile + op: eq + path: url + - expected: /2019-03-26/field-level-encryption-profile + op: eq + path: uri diff --git a/t/09_requests/cloudfront-createinvalidation.request b/t/09_requests/cloudfront-createinvalidation.request new file mode 100644 index 0000000000..705279321d --- /dev/null +++ b/t/09_requests/cloudfront-createinvalidation.request @@ -0,0 +1,8 @@ +--- +DistributionId: E2F696NMEQJ5SH +InvalidationBatch: + CallerReference: 2020-01010-001 + Paths: + Items: + - /images/*.bmp + Quantity: 1 diff --git a/t/09_requests/cloudfront-createinvalidation.request.test.yml b/t/09_requests/cloudfront-createinvalidation.request.test.yml new file mode 100644 index 0000000000..2f047b96d0 --- /dev/null +++ b/t/09_requests/cloudfront-createinvalidation.request.test.yml @@ -0,0 +1,51 @@ +--- +call: CreateInvalidation +service: CloudFront +tests: + - expected: '2020-01010-001/images/*.bmp1' + op: eq + path: content + - expected: POST + op: eq + path: method + - expected: jBG0nqQxZrkgBc0wMtxG6w== + key: content-md5 + op: eq + path: headers + - expected: application/xml + key: content-type + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: a658200865b6ac804dacb14b67af4a722b5b61339c01908a459545f6c9f2426a + key: x-amz-content-sha256 + op: eq + path: headers + - expected: E2F696NMEQJ5SH + key: DistributionId + op: eq + path: parameters + - expected: 2020-01010-001 + key: InvalidationBatch.CallerReference + op: eq + path: parameters + - expected: /images/*.bmp + key: InvalidationBatch.Paths.Items.member.1 + op: eq + path: parameters + - expected: 1 + key: InvalidationBatch.Paths.Quantity + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/distribution/E2F696NMEQJ5SH/invalidation + op: eq + path: url + - expected: /2019-03-26/distribution/E2F696NMEQJ5SH/invalidation + op: eq + path: url + - expected: /2019-03-26/distribution/E2F696NMEQJ5SH/invalidation + op: eq + path: uri diff --git a/t/09_requests/cloudfront-createpublickey.request b/t/09_requests/cloudfront-createpublickey.request new file mode 100644 index 0000000000..df8c8333ee --- /dev/null +++ b/t/09_requests/cloudfront-createpublickey.request @@ -0,0 +1,15 @@ +--- +PublicKeyConfig: + CallerReference: 01-01-2020-000001 + Comment: This is a test key + EncodedKey: |- + -----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp5X8pCq9EllW/vd8dYc2 + oCl58nAuSoYTfEdzR/XQGLKugBqwSSHtfyG10bAsNjS6UnqfK3vG7QSo9zgiCvCn + KUF4J9mCEzUMCkiKcqZn169YheeMKCF04Q2xmdIMlw1FA/VGZ3HhC49hsIzAKlqC + q/3n3nEdb4Gf4J3KvY+KW+YcZJZQQG4QzqeUG/01MHs47RzhA9xFRJDvSXf4EGTT + eg6IAbeOlGDxiQ0d25PqZ9y+LVpa6pVy86qHnvkzbMHE2yGCiQKIuC60D4AJS/dx + 2TLLOAI8w0zm3aSvd1ktNZZMgNlnUkJFEMMlq3H7edzkb2NDNvGQ07cwJRU9h4Wt + bwIDAQAB + -----END PUBLIC KEY----- + Name: TestKeyPaws diff --git a/t/09_requests/cloudfront-createpublickey.request.test.yml b/t/09_requests/cloudfront-createpublickey.request.test.yml new file mode 100644 index 0000000000..3662f78a81 --- /dev/null +++ b/t/09_requests/cloudfront-createpublickey.request.test.yml @@ -0,0 +1,69 @@ +--- +call: CreatePublicKey +service: CloudFront +tests: + - expected: |- + 01-01-2020-000001This is a test key-----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp5X8pCq9EllW/vd8dYc2 + oCl58nAuSoYTfEdzR/XQGLKugBqwSSHtfyG10bAsNjS6UnqfK3vG7QSo9zgiCvCn + KUF4J9mCEzUMCkiKcqZn169YheeMKCF04Q2xmdIMlw1FA/VGZ3HhC49hsIzAKlqC + q/3n3nEdb4Gf4J3KvY+KW+YcZJZQQG4QzqeUG/01MHs47RzhA9xFRJDvSXf4EGTT + eg6IAbeOlGDxiQ0d25PqZ9y+LVpa6pVy86qHnvkzbMHE2yGCiQKIuC60D4AJS/dx + 2TLLOAI8w0zm3aSvd1ktNZZMgNlnUkJFEMMlq3H7edzkb2NDNvGQ07cwJRU9h4Wt + bwIDAQAB + -----END PUBLIC KEY-----TestKeyPaws + op: eq + path: content + - expected: POST + op: eq + path: method + - expected: qDrYrK6ck3xWl6xX4X5bFQ== + key: content-md5 + op: eq + path: headers + - expected: application/xml + key: content-type + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: d291ee3922790a6a9d0e27a62eac9ca99d97ab8cc702818767743995fdc9213c + key: x-amz-content-sha256 + op: eq + path: headers + - expected: 01-01-2020-000001 + key: PublicKeyConfig.CallerReference + op: eq + path: parameters + - expected: This is a test key + key: PublicKeyConfig.Comment + op: eq + path: parameters + - expected: |- + -----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp5X8pCq9EllW/vd8dYc2 + oCl58nAuSoYTfEdzR/XQGLKugBqwSSHtfyG10bAsNjS6UnqfK3vG7QSo9zgiCvCn + KUF4J9mCEzUMCkiKcqZn169YheeMKCF04Q2xmdIMlw1FA/VGZ3HhC49hsIzAKlqC + q/3n3nEdb4Gf4J3KvY+KW+YcZJZQQG4QzqeUG/01MHs47RzhA9xFRJDvSXf4EGTT + eg6IAbeOlGDxiQ0d25PqZ9y+LVpa6pVy86qHnvkzbMHE2yGCiQKIuC60D4AJS/dx + 2TLLOAI8w0zm3aSvd1ktNZZMgNlnUkJFEMMlq3H7edzkb2NDNvGQ07cwJRU9h4Wt + bwIDAQAB + -----END PUBLIC KEY----- + key: PublicKeyConfig.EncodedKey + op: eq + path: parameters + - expected: TestKeyPaws + key: PublicKeyConfig.Name + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/public-key + op: eq + path: url + - expected: /2019-03-26/public-key + op: eq + path: url + - expected: /2019-03-26/public-key + op: eq + path: uri diff --git a/t/09_requests/cloudfront-createstreamingdistribution.request b/t/09_requests/cloudfront-createstreamingdistribution.request new file mode 100644 index 0000000000..e9e4208869 --- /dev/null +++ b/t/09_requests/cloudfront-createstreamingdistribution.request @@ -0,0 +1,20 @@ +--- +StreamingDistributionConfig: + Aliases: + Items: + - Mystring + - Mystring3 + Quantity: 2 + CallerReference: 2020-01-01-2020 + Comment: Way to go Summer + Enabled: 0 + PriceClass: PriceClass_100 + S3Origin: + DomainName: oneoffpaws.s3.amazonaws.com + OriginAccessIdentity: E3D5Y5RWA05QO1 + TrustedSigners: + Enabled: 0 + Items: + - Mystring + - Mystring2 + Quantity: 2 diff --git a/t/09_requests/cloudfront-createstreamingdistribution.request.test.yml b/t/09_requests/cloudfront-createstreamingdistribution.request.test.yml new file mode 100644 index 0000000000..e3419ae2a3 --- /dev/null +++ b/t/09_requests/cloudfront-createstreamingdistribution.request.test.yml @@ -0,0 +1,87 @@ +--- +call: CreateStreamingDistribution +service: CloudFront +tests: + - expected: 'MystringMystring322020-01-01-2020Way to go Summer0PriceClass_100oneoffpaws.s3.amazonaws.comE3D5Y5RWA05QO10MystringMystring22' + op: eq + path: content + - expected: POST + op: eq + path: method + - expected: m+Gu4LiJQrGTYo/IQPC8oA== + key: content-md5 + op: eq + path: headers + - expected: application/xml + key: content-type + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: 2997b5fc0ed1a3aebbb14dac44e19ce5f4dfad1d442c7bdbc9cefe59a788d9ae + key: x-amz-content-sha256 + op: eq + path: headers + - expected: Mystring + key: StreamingDistributionConfig.Aliases.Items.member.1 + op: eq + path: parameters + - expected: Mystring3 + key: StreamingDistributionConfig.Aliases.Items.member.2 + op: eq + path: parameters + - expected: 2 + key: StreamingDistributionConfig.Aliases.Quantity + op: eq + path: parameters + - expected: 2020-01-01-2020 + key: StreamingDistributionConfig.CallerReference + op: eq + path: parameters + - expected: Way to go Summer + key: StreamingDistributionConfig.Comment + op: eq + path: parameters + - expected: 0 + key: StreamingDistributionConfig.Enabled + op: eq + path: parameters + - expected: PriceClass_100 + key: StreamingDistributionConfig.PriceClass + op: eq + path: parameters + - expected: oneoffpaws.s3.amazonaws.com + key: StreamingDistributionConfig.S3Origin.DomainName + op: eq + path: parameters + - expected: E3D5Y5RWA05QO1 + key: StreamingDistributionConfig.S3Origin.OriginAccessIdentity + op: eq + path: parameters + - expected: 0 + key: StreamingDistributionConfig.TrustedSigners.Enabled + op: eq + path: parameters + - expected: Mystring + key: StreamingDistributionConfig.TrustedSigners.Items.member.1 + op: eq + path: parameters + - expected: Mystring2 + key: StreamingDistributionConfig.TrustedSigners.Items.member.2 + op: eq + path: parameters + - expected: 2 + key: StreamingDistributionConfig.TrustedSigners.Quantity + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/streaming-distribution + op: eq + path: url + - expected: /2019-03-26/streaming-distribution + op: eq + path: url + - expected: /2019-03-26/streaming-distribution + op: eq + path: uri diff --git a/t/09_requests/cloudfront-createstreamingdistributionwithtags.1.request b/t/09_requests/cloudfront-createstreamingdistributionwithtags.1.request new file mode 100644 index 0000000000..2fb892ebd4 --- /dev/null +++ b/t/09_requests/cloudfront-createstreamingdistributionwithtags.1.request @@ -0,0 +1,17 @@ +--- +StreamingDistributionConfigWithTags: + StreamingDistributionConfig: + CallerReference: 2020:010101 + Comment: 'I squanch, your Squanch, Squance' + Enabled: 0 + PriceClass: PriceClass_100 + S3Origin: + DomainName: oneoffpaws.s3.amazonaws.com + OriginAccessIdentity: origin-access-identity/cloudfront/E3D5Y5RWA05QO1 + TrustedSigners: + Enabled: 0 + Quantity: 0 + Tags: + Items: + - Key: MyTagKey1 + Value: MyTagValue1 diff --git a/t/09_requests/cloudfront-createstreamingdistributionwithtags.1.request.test.yml b/t/09_requests/cloudfront-createstreamingdistributionwithtags.1.request.test.yml new file mode 100644 index 0000000000..1440388b5d --- /dev/null +++ b/t/09_requests/cloudfront-createstreamingdistributionwithtags.1.request.test.yml @@ -0,0 +1,78 @@ +--- +call: CreateStreamingDistributionWithTags +service: CloudFront +tests: + - expected: '2020:010101I squanch, your Squanch, Squance0PriceClass_100oneoffpaws.s3.amazonaws.comorigin-access-identity/cloudfront/E3D5Y5RWA05QO100MyTagKey1MyTagValue1' + op: eq + path: content + - expected: POST + op: eq + path: method + - expected: amc/GbeQXpCIWmZqAlDwCA== + key: content-md5 + op: eq + path: headers + - expected: application/xml + key: content-type + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: 4df80348b64e91c5e366ce4e4f5c3888b135630cc4bbceea9fdb67ff9210a66d + key: x-amz-content-sha256 + op: eq + path: headers + - expected: 2020:010101 + key: StreamingDistributionConfigWithTags.StreamingDistributionConfig.CallerReference + op: eq + path: parameters + - expected: 'I squanch, your Squanch, Squance' + key: StreamingDistributionConfigWithTags.StreamingDistributionConfig.Comment + op: eq + path: parameters + - expected: 0 + key: StreamingDistributionConfigWithTags.StreamingDistributionConfig.Enabled + op: eq + path: parameters + - expected: PriceClass_100 + key: StreamingDistributionConfigWithTags.StreamingDistributionConfig.PriceClass + op: eq + path: parameters + - expected: oneoffpaws.s3.amazonaws.com + key: StreamingDistributionConfigWithTags.StreamingDistributionConfig.S3Origin.DomainName + op: eq + path: parameters + - expected: origin-access-identity/cloudfront/E3D5Y5RWA05QO1 + key: StreamingDistributionConfigWithTags.StreamingDistributionConfig.S3Origin.OriginAccessIdentity + op: eq + path: parameters + - expected: 0 + key: StreamingDistributionConfigWithTags.StreamingDistributionConfig.TrustedSigners.Enabled + op: eq + path: parameters + - expected: 0 + key: StreamingDistributionConfigWithTags.StreamingDistributionConfig.TrustedSigners.Quantity + op: eq + path: parameters + - expected: MyTagKey1 + key: StreamingDistributionConfigWithTags.Tags.Items.member.1.Key + op: eq + path: parameters + - expected: MyTagValue1 + key: StreamingDistributionConfigWithTags.Tags.Items.member.1.Value + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/streaming-distribution + op: eq + path: url + - expected: /2019-03-26/streaming-distribution + op: eq + path: url + - expected: /2019-03-26/streaming-distribution + op: eq + path: uri + - expected: WithTags + op: eq + path: uri diff --git a/t/09_requests/cloudfront-createstreamingdistributionwithtags.request b/t/09_requests/cloudfront-createstreamingdistributionwithtags.request new file mode 100644 index 0000000000..7307929091 --- /dev/null +++ b/t/09_requests/cloudfront-createstreamingdistributionwithtags.request @@ -0,0 +1,23 @@ +--- +StreamingDistributionConfigWithTags: + StreamingDistributionConfig: + CallerReference: 2020:010101 + Comment: 'I squanch, your Squanch, Squance' + Enabled: 0 + PriceClass: PriceClass_100 + S3Origin: + DomainName: oneoffpaws.s3.amazonaws.com + OriginAccessIdentity: origin-access-identity/cloudfront/E3D5Y5RWA05QO1 + TrustedSigners: + Enabled: 0 + Quantity: 0 + Tags: + Items: + - Key: MyTagKey1 + Value: MyTagValue1 + - Key: MyTagKey2 + Value: MyTagValue2 + - Key: MyTagKey3 + Value: MyTagValue3 + - Key: MyTagKey4 + Value: MyTagValue4 diff --git a/t/09_requests/cloudfront-createstreamingdistributionwithtags.request.test.yml b/t/09_requests/cloudfront-createstreamingdistributionwithtags.request.test.yml new file mode 100644 index 0000000000..58b5bd86c8 --- /dev/null +++ b/t/09_requests/cloudfront-createstreamingdistributionwithtags.request.test.yml @@ -0,0 +1,102 @@ +--- +call: CreateStreamingDistributionWithTags +service: CloudFront +tests: + - expected: '2020:010101I squanch, your Squanch, Squance0PriceClass_100oneoffpaws.s3.amazonaws.comorigin-access-identity/cloudfront/E3D5Y5RWA05QO100MyTagKey1MyTagValue1MyTagKey2MyTagValue2MyTagKey3MyTagValue3MyTagKey4MyTagValue4' + op: eq + path: content + - expected: POST + op: eq + path: method + - expected: tSxWpE8gGY834rRe92gmbw== + key: content-md5 + op: eq + path: headers + - expected: application/xml + key: content-type + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e8747d2c2e51be8dbacc77dbb2fb561f29d5107bec6178e879602e9c818f0102 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: 2020:010101 + key: StreamingDistributionConfigWithTags.StreamingDistributionConfig.CallerReference + op: eq + path: parameters + - expected: 'I squanch, your Squanch, Squance' + key: StreamingDistributionConfigWithTags.StreamingDistributionConfig.Comment + op: eq + path: parameters + - expected: 0 + key: StreamingDistributionConfigWithTags.StreamingDistributionConfig.Enabled + op: eq + path: parameters + - expected: PriceClass_100 + key: StreamingDistributionConfigWithTags.StreamingDistributionConfig.PriceClass + op: eq + path: parameters + - expected: oneoffpaws.s3.amazonaws.com + key: StreamingDistributionConfigWithTags.StreamingDistributionConfig.S3Origin.DomainName + op: eq + path: parameters + - expected: origin-access-identity/cloudfront/E3D5Y5RWA05QO1 + key: StreamingDistributionConfigWithTags.StreamingDistributionConfig.S3Origin.OriginAccessIdentity + op: eq + path: parameters + - expected: 0 + key: StreamingDistributionConfigWithTags.StreamingDistributionConfig.TrustedSigners.Enabled + op: eq + path: parameters + - expected: 0 + key: StreamingDistributionConfigWithTags.StreamingDistributionConfig.TrustedSigners.Quantity + op: eq + path: parameters + - expected: MyTagKey1 + key: StreamingDistributionConfigWithTags.Tags.Items.member.1.Key + op: eq + path: parameters + - expected: MyTagValue1 + key: StreamingDistributionConfigWithTags.Tags.Items.member.1.Value + op: eq + path: parameters + - expected: MyTagKey2 + key: StreamingDistributionConfigWithTags.Tags.Items.member.2.Key + op: eq + path: parameters + - expected: MyTagValue2 + key: StreamingDistributionConfigWithTags.Tags.Items.member.2.Value + op: eq + path: parameters + - expected: MyTagKey3 + key: StreamingDistributionConfigWithTags.Tags.Items.member.3.Key + op: eq + path: parameters + - expected: MyTagValue3 + key: StreamingDistributionConfigWithTags.Tags.Items.member.3.Value + op: eq + path: parameters + - expected: MyTagKey4 + key: StreamingDistributionConfigWithTags.Tags.Items.member.4.Key + op: eq + path: parameters + - expected: MyTagValue4 + key: StreamingDistributionConfigWithTags.Tags.Items.member.4.Value + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/streaming-distribution + op: eq + path: url + - expected: /2019-03-26/streaming-distribution + op: eq + path: url + - expected: /2019-03-26/streaming-distribution + op: eq + path: uri + - expected: WithTags + op: eq + path: uri diff --git a/t/09_requests/cloudfront-deletecloudfrontoriginaccessidentity.request b/t/09_requests/cloudfront-deletecloudfrontoriginaccessidentity.request new file mode 100644 index 0000000000..4c0f8c0b33 --- /dev/null +++ b/t/09_requests/cloudfront-deletecloudfrontoriginaccessidentity.request @@ -0,0 +1,3 @@ +--- +Id: EY07SKBZ90C5A +IfMatch: E1DHMR4TNGBY5N diff --git a/t/09_requests/cloudfront-deletecloudfrontoriginaccessidentity.request.test.yml b/t/09_requests/cloudfront-deletecloudfrontoriginaccessidentity.request.test.yml new file mode 100644 index 0000000000..2bd83a7129 --- /dev/null +++ b/t/09_requests/cloudfront-deletecloudfrontoriginaccessidentity.request.test.yml @@ -0,0 +1,43 @@ +--- +call: DeleteCloudFrontOriginAccessIdentity +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: DELETE + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: E1DHMR4TNGBY5N + key: if-match + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: EY07SKBZ90C5A + key: Id + op: eq + path: parameters + - expected: E1DHMR4TNGBY5N + key: IfMatch + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/origin-access-identity/cloudfront/EY07SKBZ90C5A + op: eq + path: url + - expected: /2019-03-26/origin-access-identity/cloudfront/EY07SKBZ90C5A + op: eq + path: url + - expected: /2019-03-26/origin-access-identity/cloudfront/EY07SKBZ90C5A + op: eq + path: uri diff --git a/t/09_requests/cloudfront-deletedistribution.request b/t/09_requests/cloudfront-deletedistribution.request new file mode 100644 index 0000000000..88dcbb2ff8 --- /dev/null +++ b/t/09_requests/cloudfront-deletedistribution.request @@ -0,0 +1,3 @@ +--- +Id: EJ143D8LZET8Z +IfMatch: E12DPG1ZRAJ1SE diff --git a/t/09_requests/cloudfront-deletedistribution.request.test.yml b/t/09_requests/cloudfront-deletedistribution.request.test.yml new file mode 100644 index 0000000000..3e79157e04 --- /dev/null +++ b/t/09_requests/cloudfront-deletedistribution.request.test.yml @@ -0,0 +1,43 @@ +--- +call: DeleteDistribution +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: DELETE + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: E12DPG1ZRAJ1SE + key: if-match + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: EJ143D8LZET8Z + key: Id + op: eq + path: parameters + - expected: E12DPG1ZRAJ1SE + key: IfMatch + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/distribution/EJ143D8LZET8Z + op: eq + path: url + - expected: /2019-03-26/distribution/EJ143D8LZET8Z + op: eq + path: url + - expected: /2019-03-26/distribution/EJ143D8LZET8Z + op: eq + path: uri diff --git a/t/09_requests/cloudfront-deletefieldlevelencryptionconfig.request b/t/09_requests/cloudfront-deletefieldlevelencryptionconfig.request new file mode 100644 index 0000000000..56e692a9d0 --- /dev/null +++ b/t/09_requests/cloudfront-deletefieldlevelencryptionconfig.request @@ -0,0 +1,3 @@ +--- +Id: C26GE31LXDSQZI +IfMatch: E2LIL66SYPFJM2 diff --git a/t/09_requests/cloudfront-deletefieldlevelencryptionconfig.request.test.yml b/t/09_requests/cloudfront-deletefieldlevelencryptionconfig.request.test.yml new file mode 100644 index 0000000000..5cf25e4b2e --- /dev/null +++ b/t/09_requests/cloudfront-deletefieldlevelencryptionconfig.request.test.yml @@ -0,0 +1,43 @@ +--- +call: DeleteFieldLevelEncryptionConfig +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: DELETE + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: E2LIL66SYPFJM2 + key: if-match + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: C26GE31LXDSQZI + key: Id + op: eq + path: parameters + - expected: E2LIL66SYPFJM2 + key: IfMatch + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/field-level-encryption/C26GE31LXDSQZI + op: eq + path: url + - expected: /2019-03-26/field-level-encryption/C26GE31LXDSQZI + op: eq + path: url + - expected: /2019-03-26/field-level-encryption/C26GE31LXDSQZI + op: eq + path: uri diff --git a/t/09_requests/cloudfront-deletefieldlevelencryptionprofile.request b/t/09_requests/cloudfront-deletefieldlevelencryptionprofile.request new file mode 100644 index 0000000000..997af4653e --- /dev/null +++ b/t/09_requests/cloudfront-deletefieldlevelencryptionprofile.request @@ -0,0 +1,3 @@ +--- +Id: P11YIB8QUZ31DB +IfMatch: E3S6I9JUQ89OK9 diff --git a/t/09_requests/cloudfront-deletefieldlevelencryptionprofile.request.test.yml b/t/09_requests/cloudfront-deletefieldlevelencryptionprofile.request.test.yml new file mode 100644 index 0000000000..bfe1f83ca7 --- /dev/null +++ b/t/09_requests/cloudfront-deletefieldlevelencryptionprofile.request.test.yml @@ -0,0 +1,43 @@ +--- +call: DeleteFieldLevelEncryptionProfile +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: DELETE + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: E3S6I9JUQ89OK9 + key: if-match + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: P11YIB8QUZ31DB + key: Id + op: eq + path: parameters + - expected: E3S6I9JUQ89OK9 + key: IfMatch + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/field-level-encryption-profile/P11YIB8QUZ31DB + op: eq + path: url + - expected: /2019-03-26/field-level-encryption-profile/P11YIB8QUZ31DB + op: eq + path: url + - expected: /2019-03-26/field-level-encryption-profile/P11YIB8QUZ31DB + op: eq + path: uri diff --git a/t/09_requests/cloudfront-deletepublickey.request b/t/09_requests/cloudfront-deletepublickey.request new file mode 100644 index 0000000000..3e5eab8a83 --- /dev/null +++ b/t/09_requests/cloudfront-deletepublickey.request @@ -0,0 +1,3 @@ +--- +Id: K18H03HBTFHOUA +IfMatch: E13ZDWLZM6ZVUX diff --git a/t/09_requests/cloudfront-deletepublickey.request.test.yml b/t/09_requests/cloudfront-deletepublickey.request.test.yml new file mode 100644 index 0000000000..7a06cbc0f8 --- /dev/null +++ b/t/09_requests/cloudfront-deletepublickey.request.test.yml @@ -0,0 +1,43 @@ +--- +call: DeletePublicKey +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: DELETE + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: E13ZDWLZM6ZVUX + key: if-match + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: K18H03HBTFHOUA + key: Id + op: eq + path: parameters + - expected: E13ZDWLZM6ZVUX + key: IfMatch + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/public-key/K18H03HBTFHOUA + op: eq + path: url + - expected: /2019-03-26/public-key/K18H03HBTFHOUA + op: eq + path: url + - expected: /2019-03-26/public-key/K18H03HBTFHOUA + op: eq + path: uri diff --git a/t/09_requests/cloudfront-deletestreamingdistribution.request b/t/09_requests/cloudfront-deletestreamingdistribution.request new file mode 100644 index 0000000000..4e2052edea --- /dev/null +++ b/t/09_requests/cloudfront-deletestreamingdistribution.request @@ -0,0 +1,3 @@ +--- +Id: E17937UBVFIW2L +IfMatch: E2BHDP7G1NAL4G diff --git a/t/09_requests/cloudfront-deletestreamingdistribution.request.test.yml b/t/09_requests/cloudfront-deletestreamingdistribution.request.test.yml new file mode 100644 index 0000000000..7122a380bd --- /dev/null +++ b/t/09_requests/cloudfront-deletestreamingdistribution.request.test.yml @@ -0,0 +1,43 @@ +--- +call: DeleteStreamingDistribution +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: DELETE + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: E2BHDP7G1NAL4G + key: if-match + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: E17937UBVFIW2L + key: Id + op: eq + path: parameters + - expected: E2BHDP7G1NAL4G + key: IfMatch + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/streaming-distribution/E17937UBVFIW2L + op: eq + path: url + - expected: /2019-03-26/streaming-distribution/E17937UBVFIW2L + op: eq + path: url + - expected: /2019-03-26/streaming-distribution/E17937UBVFIW2L + op: eq + path: uri diff --git a/t/09_requests/cloudfront-getcloudfrontoriginaccessidentity.request b/t/09_requests/cloudfront-getcloudfrontoriginaccessidentity.request new file mode 100644 index 0000000000..468e863819 --- /dev/null +++ b/t/09_requests/cloudfront-getcloudfrontoriginaccessidentity.request @@ -0,0 +1,2 @@ +--- +Id: E3D5Y5RWA05QO1 diff --git a/t/09_requests/cloudfront-getcloudfrontoriginaccessidentity.request.test.yml b/t/09_requests/cloudfront-getcloudfrontoriginaccessidentity.request.test.yml new file mode 100644 index 0000000000..4fb835b208 --- /dev/null +++ b/t/09_requests/cloudfront-getcloudfrontoriginaccessidentity.request.test.yml @@ -0,0 +1,35 @@ +--- +call: GetCloudFrontOriginAccessIdentity +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: E3D5Y5RWA05QO1 + key: Id + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/origin-access-identity/cloudfront/E3D5Y5RWA05QO1 + op: eq + path: url + - expected: /2019-03-26/origin-access-identity/cloudfront/E3D5Y5RWA05QO1 + op: eq + path: url + - expected: /2019-03-26/origin-access-identity/cloudfront/E3D5Y5RWA05QO1 + op: eq + path: uri diff --git a/t/09_requests/cloudfront-getcloudfrontoriginaccessidentityconfig.request b/t/09_requests/cloudfront-getcloudfrontoriginaccessidentityconfig.request new file mode 100644 index 0000000000..468e863819 --- /dev/null +++ b/t/09_requests/cloudfront-getcloudfrontoriginaccessidentityconfig.request @@ -0,0 +1,2 @@ +--- +Id: E3D5Y5RWA05QO1 diff --git a/t/09_requests/cloudfront-getcloudfrontoriginaccessidentityconfig.request.test.yml b/t/09_requests/cloudfront-getcloudfrontoriginaccessidentityconfig.request.test.yml new file mode 100644 index 0000000000..076b385714 --- /dev/null +++ b/t/09_requests/cloudfront-getcloudfrontoriginaccessidentityconfig.request.test.yml @@ -0,0 +1,35 @@ +--- +call: GetCloudFrontOriginAccessIdentityConfig +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: E3D5Y5RWA05QO1 + key: Id + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/origin-access-identity/cloudfront/E3D5Y5RWA05QO1/config + op: eq + path: url + - expected: /2019-03-26/origin-access-identity/cloudfront/E3D5Y5RWA05QO1/config + op: eq + path: url + - expected: /2019-03-26/origin-access-identity/cloudfront/E3D5Y5RWA05QO1/config + op: eq + path: uri diff --git a/t/09_requests/cloudfront-getdistribution.request b/t/09_requests/cloudfront-getdistribution.request new file mode 100644 index 0000000000..a2be81f571 --- /dev/null +++ b/t/09_requests/cloudfront-getdistribution.request @@ -0,0 +1,2 @@ +--- +Id: EJ143D8LZET8Z diff --git a/t/09_requests/cloudfront-getdistribution.request.test.yml b/t/09_requests/cloudfront-getdistribution.request.test.yml new file mode 100644 index 0000000000..2bcc3d5dfe --- /dev/null +++ b/t/09_requests/cloudfront-getdistribution.request.test.yml @@ -0,0 +1,35 @@ +--- +call: GetDistribution +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: EJ143D8LZET8Z + key: Id + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/distribution/EJ143D8LZET8Z + op: eq + path: url + - expected: /2019-03-26/distribution/EJ143D8LZET8Z + op: eq + path: url + - expected: /2019-03-26/distribution/EJ143D8LZET8Z + op: eq + path: uri diff --git a/t/09_requests/cloudfront-getdistributionconfig.request b/t/09_requests/cloudfront-getdistributionconfig.request new file mode 100644 index 0000000000..b3720aa212 --- /dev/null +++ b/t/09_requests/cloudfront-getdistributionconfig.request @@ -0,0 +1,2 @@ +--- +Id: E2F696NMEQJ5SH diff --git a/t/09_requests/cloudfront-getdistributionconfig.request.test.yml b/t/09_requests/cloudfront-getdistributionconfig.request.test.yml new file mode 100644 index 0000000000..b0cd085c26 --- /dev/null +++ b/t/09_requests/cloudfront-getdistributionconfig.request.test.yml @@ -0,0 +1,35 @@ +--- +call: GetDistributionConfig +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: E2F696NMEQJ5SH + key: Id + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/distribution/E2F696NMEQJ5SH/config + op: eq + path: url + - expected: /2019-03-26/distribution/E2F696NMEQJ5SH/config + op: eq + path: url + - expected: /2019-03-26/distribution/E2F696NMEQJ5SH/config + op: eq + path: uri diff --git a/t/09_requests/cloudfront-getfieldlevelencryptionconfig.request b/t/09_requests/cloudfront-getfieldlevelencryptionconfig.request new file mode 100644 index 0000000000..4951450c07 --- /dev/null +++ b/t/09_requests/cloudfront-getfieldlevelencryptionconfig.request @@ -0,0 +1,2 @@ +--- +Id: C26GE31LXDSQZI diff --git a/t/09_requests/cloudfront-getfieldlevelencryptionconfig.request.test.yml b/t/09_requests/cloudfront-getfieldlevelencryptionconfig.request.test.yml new file mode 100644 index 0000000000..db22b60825 --- /dev/null +++ b/t/09_requests/cloudfront-getfieldlevelencryptionconfig.request.test.yml @@ -0,0 +1,35 @@ +--- +call: GetFieldLevelEncryptionConfig +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: C26GE31LXDSQZI + key: Id + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/field-level-encryption/C26GE31LXDSQZI/config + op: eq + path: url + - expected: /2019-03-26/field-level-encryption/C26GE31LXDSQZI/config + op: eq + path: url + - expected: /2019-03-26/field-level-encryption/C26GE31LXDSQZI/config + op: eq + path: uri diff --git a/t/09_requests/cloudfront-getfieldlevelencryptionprofile.request b/t/09_requests/cloudfront-getfieldlevelencryptionprofile.request new file mode 100644 index 0000000000..e822eb604d --- /dev/null +++ b/t/09_requests/cloudfront-getfieldlevelencryptionprofile.request @@ -0,0 +1,2 @@ +--- +Id: P11YIB8QUZ31DB diff --git a/t/09_requests/cloudfront-getfieldlevelencryptionprofile.request.test.yml b/t/09_requests/cloudfront-getfieldlevelencryptionprofile.request.test.yml new file mode 100644 index 0000000000..2826abb848 --- /dev/null +++ b/t/09_requests/cloudfront-getfieldlevelencryptionprofile.request.test.yml @@ -0,0 +1,35 @@ +--- +call: GetFieldLevelEncryptionProfile +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: P11YIB8QUZ31DB + key: Id + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/field-level-encryption-profile/P11YIB8QUZ31DB + op: eq + path: url + - expected: /2019-03-26/field-level-encryption-profile/P11YIB8QUZ31DB + op: eq + path: url + - expected: /2019-03-26/field-level-encryption-profile/P11YIB8QUZ31DB + op: eq + path: uri diff --git a/t/09_requests/cloudfront-getfieldlevelencryptionprofileconfig.request b/t/09_requests/cloudfront-getfieldlevelencryptionprofileconfig.request new file mode 100644 index 0000000000..64ea40e1e6 --- /dev/null +++ b/t/09_requests/cloudfront-getfieldlevelencryptionprofileconfig.request @@ -0,0 +1,2 @@ +--- +Id: P14TNUMMKLEPXX diff --git a/t/09_requests/cloudfront-getfieldlevelencryptionprofileconfig.request.test.yml b/t/09_requests/cloudfront-getfieldlevelencryptionprofileconfig.request.test.yml new file mode 100644 index 0000000000..58e2d29819 --- /dev/null +++ b/t/09_requests/cloudfront-getfieldlevelencryptionprofileconfig.request.test.yml @@ -0,0 +1,35 @@ +--- +call: GetFieldLevelEncryptionProfileConfig +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: P14TNUMMKLEPXX + key: Id + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/field-level-encryption-profile/P14TNUMMKLEPXX/config + op: eq + path: url + - expected: /2019-03-26/field-level-encryption-profile/P14TNUMMKLEPXX/config + op: eq + path: url + - expected: /2019-03-26/field-level-encryption-profile/P14TNUMMKLEPXX/config + op: eq + path: uri diff --git a/t/09_requests/cloudfront-getinvalidation.request b/t/09_requests/cloudfront-getinvalidation.request new file mode 100644 index 0000000000..41aa3917db --- /dev/null +++ b/t/09_requests/cloudfront-getinvalidation.request @@ -0,0 +1,3 @@ +--- +DistributionId: E2F696NMEQJ5SH +Id: I2IH0KUHCUPI0W diff --git a/t/09_requests/cloudfront-getinvalidation.request.test.yml b/t/09_requests/cloudfront-getinvalidation.request.test.yml new file mode 100644 index 0000000000..9dae4fcae4 --- /dev/null +++ b/t/09_requests/cloudfront-getinvalidation.request.test.yml @@ -0,0 +1,39 @@ +--- +call: GetInvalidation +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: E2F696NMEQJ5SH + key: DistributionId + op: eq + path: parameters + - expected: I2IH0KUHCUPI0W + key: Id + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/distribution/E2F696NMEQJ5SH/invalidation/I2IH0KUHCUPI0W + op: eq + path: url + - expected: /2019-03-26/distribution/E2F696NMEQJ5SH/invalidation/I2IH0KUHCUPI0W + op: eq + path: url + - expected: /2019-03-26/distribution/E2F696NMEQJ5SH/invalidation/I2IH0KUHCUPI0W + op: eq + path: uri diff --git a/t/09_requests/cloudfront-getpublickey.request b/t/09_requests/cloudfront-getpublickey.request new file mode 100644 index 0000000000..8466694b66 --- /dev/null +++ b/t/09_requests/cloudfront-getpublickey.request @@ -0,0 +1,2 @@ +--- +Id: K18H03HBTFHOUA diff --git a/t/09_requests/cloudfront-getpublickey.request.test.yml b/t/09_requests/cloudfront-getpublickey.request.test.yml new file mode 100644 index 0000000000..8658586a27 --- /dev/null +++ b/t/09_requests/cloudfront-getpublickey.request.test.yml @@ -0,0 +1,35 @@ +--- +call: GetPublicKey +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: K18H03HBTFHOUA + key: Id + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/public-key/K18H03HBTFHOUA + op: eq + path: url + - expected: /2019-03-26/public-key/K18H03HBTFHOUA + op: eq + path: url + - expected: /2019-03-26/public-key/K18H03HBTFHOUA + op: eq + path: uri diff --git a/t/09_requests/cloudfront-getpublickeyconfig.request b/t/09_requests/cloudfront-getpublickeyconfig.request new file mode 100644 index 0000000000..4fd97e4fde --- /dev/null +++ b/t/09_requests/cloudfront-getpublickeyconfig.request @@ -0,0 +1,2 @@ +--- +Id: K3ODSO6SYTI4ZG diff --git a/t/09_requests/cloudfront-getpublickeyconfig.request.test.yml b/t/09_requests/cloudfront-getpublickeyconfig.request.test.yml new file mode 100644 index 0000000000..eea60c1105 --- /dev/null +++ b/t/09_requests/cloudfront-getpublickeyconfig.request.test.yml @@ -0,0 +1,35 @@ +--- +call: GetPublicKeyConfig +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: K3ODSO6SYTI4ZG + key: Id + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/public-key/K3ODSO6SYTI4ZG/config + op: eq + path: url + - expected: /2019-03-26/public-key/K3ODSO6SYTI4ZG/config + op: eq + path: url + - expected: /2019-03-26/public-key/K3ODSO6SYTI4ZG/config + op: eq + path: uri diff --git a/t/09_requests/cloudfront-getstreamingdistribution.request b/t/09_requests/cloudfront-getstreamingdistribution.request new file mode 100644 index 0000000000..347f3df779 --- /dev/null +++ b/t/09_requests/cloudfront-getstreamingdistribution.request @@ -0,0 +1,2 @@ +--- +Id: E1MH0EIPT4AYI7 diff --git a/t/09_requests/cloudfront-getstreamingdistribution.request.test.yml b/t/09_requests/cloudfront-getstreamingdistribution.request.test.yml new file mode 100644 index 0000000000..dab4df7abd --- /dev/null +++ b/t/09_requests/cloudfront-getstreamingdistribution.request.test.yml @@ -0,0 +1,35 @@ +--- +call: GetStreamingDistribution +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: E1MH0EIPT4AYI7 + key: Id + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/streaming-distribution/E1MH0EIPT4AYI7 + op: eq + path: url + - expected: /2019-03-26/streaming-distribution/E1MH0EIPT4AYI7 + op: eq + path: url + - expected: /2019-03-26/streaming-distribution/E1MH0EIPT4AYI7 + op: eq + path: uri diff --git a/t/09_requests/cloudfront-getstreamingdistributionconfig.request b/t/09_requests/cloudfront-getstreamingdistributionconfig.request new file mode 100644 index 0000000000..4a4b1ca239 --- /dev/null +++ b/t/09_requests/cloudfront-getstreamingdistributionconfig.request @@ -0,0 +1,2 @@ +--- +Id: E17937UBVFIW2L diff --git a/t/09_requests/cloudfront-getstreamingdistributionconfig.request.test.yml b/t/09_requests/cloudfront-getstreamingdistributionconfig.request.test.yml new file mode 100644 index 0000000000..9e9d549530 --- /dev/null +++ b/t/09_requests/cloudfront-getstreamingdistributionconfig.request.test.yml @@ -0,0 +1,35 @@ +--- +call: GetStreamingDistributionConfig +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: E17937UBVFIW2L + key: Id + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/streaming-distribution/E17937UBVFIW2L/config + op: eq + path: url + - expected: /2019-03-26/streaming-distribution/E17937UBVFIW2L/config + op: eq + path: url + - expected: /2019-03-26/streaming-distribution/E17937UBVFIW2L/config + op: eq + path: uri diff --git a/t/09_requests/cloudfront-listcloudfrontoriginaccessidentities.1.request b/t/09_requests/cloudfront-listcloudfrontoriginaccessidentities.1.request new file mode 100644 index 0000000000..820f10336e --- /dev/null +++ b/t/09_requests/cloudfront-listcloudfrontoriginaccessidentities.1.request @@ -0,0 +1,3 @@ +--- +Marker: '' +MaxItems: 10 diff --git a/t/09_requests/cloudfront-listcloudfrontoriginaccessidentities.1.request.test.yml b/t/09_requests/cloudfront-listcloudfrontoriginaccessidentities.1.request.test.yml new file mode 100644 index 0000000000..b7e3062bf9 --- /dev/null +++ b/t/09_requests/cloudfront-listcloudfrontoriginaccessidentities.1.request.test.yml @@ -0,0 +1,46 @@ +--- +call: ListCloudFrontOriginAccessIdentities +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: '' + key: Marker + op: eq + path: parameters + - expected: 10 + key: MaxItems + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/origin-access-identity/cloudfront + op: eq + path: url + - expected: /2019-03-26/origin-access-identity/cloudfront + op: eq + path: url + - expected: /2019-03-26/origin-access-identity/cloudfront + op: eq + path: uri + - expected: MaxItems=10 + op: eq + path: uri + - expected: Marker= + op: eq + path: uri + diff --git a/t/09_requests/cloudfront-listcloudfrontoriginaccessidentities.request b/t/09_requests/cloudfront-listcloudfrontoriginaccessidentities.request new file mode 100644 index 0000000000..3298d5cc40 --- /dev/null +++ b/t/09_requests/cloudfront-listcloudfrontoriginaccessidentities.request @@ -0,0 +1,3 @@ +--- +Marker: EY07SKBZ90C5A +MaxItems: 10 diff --git a/t/09_requests/cloudfront-listcloudfrontoriginaccessidentities.request.test.yml b/t/09_requests/cloudfront-listcloudfrontoriginaccessidentities.request.test.yml new file mode 100644 index 0000000000..47c89f4500 --- /dev/null +++ b/t/09_requests/cloudfront-listcloudfrontoriginaccessidentities.request.test.yml @@ -0,0 +1,46 @@ +--- +call: ListCloudFrontOriginAccessIdentities +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: EY07SKBZ90C5A + key: Marker + op: eq + path: parameters + - expected: 10 + key: MaxItems + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/origin-access-identity/cloudfront + op: eq + path: url + - expected: /2019-03-26/origin-access-identity/cloudfront + op: eq + path: url + - expected: /2019-03-26/origin-access-identity/cloudfront + op: eq + path: uri + - expected: Marker=EY07SKBZ90C5A + op: eq + path: uri + - expected: MaxItems=10 + op: eq + path: uri + diff --git a/t/09_requests/cloudfront-listdistributions.1.request b/t/09_requests/cloudfront-listdistributions.1.request new file mode 100644 index 0000000000..b430a4237c --- /dev/null +++ b/t/09_requests/cloudfront-listdistributions.1.request @@ -0,0 +1,2 @@ +--- +MaxItems: 10 diff --git a/t/09_requests/cloudfront-listdistributions.1.request.test.yml b/t/09_requests/cloudfront-listdistributions.1.request.test.yml new file mode 100644 index 0000000000..65aac9f971 --- /dev/null +++ b/t/09_requests/cloudfront-listdistributions.1.request.test.yml @@ -0,0 +1,38 @@ +--- +call: ListDistributions +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: 10 + key: MaxItems + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/distribution + op: eq + path: url + - expected: /2019-03-26/distribution + op: eq + path: url + - expected: /2019-03-26/distribution + op: eq + path: uri + - expected: MaxItems=10 + op: eq + path: uri diff --git a/t/09_requests/cloudfront-listdistributions.request b/t/09_requests/cloudfront-listdistributions.request new file mode 100644 index 0000000000..c9d6ace63f --- /dev/null +++ b/t/09_requests/cloudfront-listdistributions.request @@ -0,0 +1,2 @@ +--- +MaxItems: 1 diff --git a/t/09_requests/cloudfront-listdistributions.request.test.yml b/t/09_requests/cloudfront-listdistributions.request.test.yml new file mode 100644 index 0000000000..d4d69ad2aa --- /dev/null +++ b/t/09_requests/cloudfront-listdistributions.request.test.yml @@ -0,0 +1,38 @@ +--- +call: ListDistributions +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: 1 + key: MaxItems + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/distribution + op: eq + path: url + - expected: /2019-03-26/distribution + op: eq + path: url + - expected: /2019-03-26/distribution + op: eq + path: uri + - expected: MaxItems=1 + op: eq + path: uri diff --git a/t/09_requests/cloudfront-listfieldlevelencryptionconfigs.1.request b/t/09_requests/cloudfront-listfieldlevelencryptionconfigs.1.request new file mode 100644 index 0000000000..71adc22907 --- /dev/null +++ b/t/09_requests/cloudfront-listfieldlevelencryptionconfigs.1.request @@ -0,0 +1,3 @@ +--- +Marker: C26GE31LXDSQZI +MaxItems: 4 diff --git a/t/09_requests/cloudfront-listfieldlevelencryptionconfigs.1.request.test.yml b/t/09_requests/cloudfront-listfieldlevelencryptionconfigs.1.request.test.yml new file mode 100644 index 0000000000..79bc289fd2 --- /dev/null +++ b/t/09_requests/cloudfront-listfieldlevelencryptionconfigs.1.request.test.yml @@ -0,0 +1,45 @@ +--- +call: ListFieldLevelEncryptionConfigs +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: C26GE31LXDSQZI + key: Marker + op: eq + path: parameters + - expected: 4 + key: MaxItems + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/field-level-encryption + op: eq + path: url + - expected: /2019-03-26/field-level-encryption + op: eq + path: url + - expected: /2019-03-26/field-level-encryption + op: eq + path: uri + - expected: MaxItems=4 + op: eq + path: uri + - expected: Marker=C26GE31LXDSQZI + op: eq + path: uri diff --git a/t/09_requests/cloudfront-listfieldlevelencryptionconfigs.request b/t/09_requests/cloudfront-listfieldlevelencryptionconfigs.request new file mode 100644 index 0000000000..a62dc822b8 --- /dev/null +++ b/t/09_requests/cloudfront-listfieldlevelencryptionconfigs.request @@ -0,0 +1,2 @@ +--- +MaxItems: 5 diff --git a/t/09_requests/cloudfront-listfieldlevelencryptionconfigs.request.test.yml b/t/09_requests/cloudfront-listfieldlevelencryptionconfigs.request.test.yml new file mode 100644 index 0000000000..19959aad0a --- /dev/null +++ b/t/09_requests/cloudfront-listfieldlevelencryptionconfigs.request.test.yml @@ -0,0 +1,38 @@ +--- +call: ListFieldLevelEncryptionConfigs +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: 5 + key: MaxItems + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/field-level-encryption + op: eq + path: url + - expected: /2019-03-26/field-level-encryption + op: eq + path: url + - expected: /2019-03-26/field-level-encryption + op: eq + path: uri + - expected: MaxItems=5 + op: eq + path: uri diff --git a/t/09_requests/cloudfront-listfieldlevelencryptionprofiles.1.request b/t/09_requests/cloudfront-listfieldlevelencryptionprofiles.1.request new file mode 100644 index 0000000000..2fbf0ffd71 --- /dev/null +++ b/t/09_requests/cloudfront-listfieldlevelencryptionprofiles.1.request @@ -0,0 +1 @@ +--- {} diff --git a/t/09_requests/cloudfront-listfieldlevelencryptionprofiles.1.request.test.yml b/t/09_requests/cloudfront-listfieldlevelencryptionprofiles.1.request.test.yml new file mode 100644 index 0000000000..cfdba55358 --- /dev/null +++ b/t/09_requests/cloudfront-listfieldlevelencryptionprofiles.1.request.test.yml @@ -0,0 +1,31 @@ +--- +call: ListFieldLevelEncryptionProfiles +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: https://cloudfront.amazonaws.com/2019-03-26/field-level-encryption-profile + op: eq + path: url + - expected: /2019-03-26/field-level-encryption-profile + op: eq + path: url + - expected: /2019-03-26/field-level-encryption-profile + op: eq + path: uri diff --git a/t/09_requests/cloudfront-listfieldlevelencryptionprofiles.request b/t/09_requests/cloudfront-listfieldlevelencryptionprofiles.request new file mode 100644 index 0000000000..2fbf0ffd71 --- /dev/null +++ b/t/09_requests/cloudfront-listfieldlevelencryptionprofiles.request @@ -0,0 +1 @@ +--- {} diff --git a/t/09_requests/cloudfront-listfieldlevelencryptionprofiles.request.test.yml b/t/09_requests/cloudfront-listfieldlevelencryptionprofiles.request.test.yml new file mode 100644 index 0000000000..cfdba55358 --- /dev/null +++ b/t/09_requests/cloudfront-listfieldlevelencryptionprofiles.request.test.yml @@ -0,0 +1,31 @@ +--- +call: ListFieldLevelEncryptionProfiles +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: https://cloudfront.amazonaws.com/2019-03-26/field-level-encryption-profile + op: eq + path: url + - expected: /2019-03-26/field-level-encryption-profile + op: eq + path: url + - expected: /2019-03-26/field-level-encryption-profile + op: eq + path: uri diff --git a/t/09_requests/cloudfront-listinvalidations.1.request b/t/09_requests/cloudfront-listinvalidations.1.request new file mode 100644 index 0000000000..24eb25a8c1 --- /dev/null +++ b/t/09_requests/cloudfront-listinvalidations.1.request @@ -0,0 +1,3 @@ +--- +DistributionId: E2F696NMEQJ5SH +MaxItems: 3 diff --git a/t/09_requests/cloudfront-listinvalidations.1.request.test.yml b/t/09_requests/cloudfront-listinvalidations.1.request.test.yml new file mode 100644 index 0000000000..5689f10f32 --- /dev/null +++ b/t/09_requests/cloudfront-listinvalidations.1.request.test.yml @@ -0,0 +1,42 @@ +--- +call: ListInvalidations +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: E2F696NMEQJ5SH + key: DistributionId + op: eq + path: parameters + - expected: 3 + key: MaxItems + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/distribution/E2F696NMEQJ5SH/invalidation + op: eq + path: url + - expected: /2019-03-26/distribution/E2F696NMEQJ5SH/invalidation + op: eq + path: url + - expected: /2019-03-26/distribution/E2F696NMEQJ5SH/invalidation + op: eq + path: uri + - expected: MaxItems=3 + op: eq + path: uri diff --git a/t/09_requests/cloudfront-listinvalidations.request b/t/09_requests/cloudfront-listinvalidations.request new file mode 100644 index 0000000000..41177a0eab --- /dev/null +++ b/t/09_requests/cloudfront-listinvalidations.request @@ -0,0 +1,3 @@ +--- +DistributionId: E2F696NMEQJ5SH +MaxItems: 2 diff --git a/t/09_requests/cloudfront-listinvalidations.request.test.yml b/t/09_requests/cloudfront-listinvalidations.request.test.yml new file mode 100644 index 0000000000..874857c37e --- /dev/null +++ b/t/09_requests/cloudfront-listinvalidations.request.test.yml @@ -0,0 +1,42 @@ +--- +call: ListInvalidations +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: E2F696NMEQJ5SH + key: DistributionId + op: eq + path: parameters + - expected: 2 + key: MaxItems + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/distribution/E2F696NMEQJ5SH/invalidation + op: eq + path: url + - expected: /2019-03-26/distribution/E2F696NMEQJ5SH/invalidation + op: eq + path: url + - expected: /2019-03-26/distribution/E2F696NMEQJ5SH/invalidation + op: eq + path: uri + - expected: MaxItems=2 + op: eq + path: uri diff --git a/t/09_requests/cloudfront-listpublickeys.1.request b/t/09_requests/cloudfront-listpublickeys.1.request new file mode 100644 index 0000000000..8ed787b77f --- /dev/null +++ b/t/09_requests/cloudfront-listpublickeys.1.request @@ -0,0 +1,3 @@ +--- +Marker: K18H03HBTFHOUA +MaxItems: 4 diff --git a/t/09_requests/cloudfront-listpublickeys.1.request.test.yml b/t/09_requests/cloudfront-listpublickeys.1.request.test.yml new file mode 100644 index 0000000000..c55e682f4f --- /dev/null +++ b/t/09_requests/cloudfront-listpublickeys.1.request.test.yml @@ -0,0 +1,45 @@ +--- +call: ListPublicKeys +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: K18H03HBTFHOUA + key: Marker + op: eq + path: parameters + - expected: 4 + key: MaxItems + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/public-key + op: eq + path: url + - expected: /2019-03-26/public-key + op: eq + path: url + - expected: /2019-03-26/public-key + op: eq + path: uri + - expected: MaxItems=4 + op: eq + path: uri + - expected: Marker=K18H03HBTFHOUA + op: eq + path: uri diff --git a/t/09_requests/cloudfront-listpublickeys.request b/t/09_requests/cloudfront-listpublickeys.request new file mode 100644 index 0000000000..fcdf78dfa2 --- /dev/null +++ b/t/09_requests/cloudfront-listpublickeys.request @@ -0,0 +1,2 @@ +--- +MaxItems: 4 diff --git a/t/09_requests/cloudfront-listpublickeys.request.test.yml b/t/09_requests/cloudfront-listpublickeys.request.test.yml new file mode 100644 index 0000000000..5baa7c5601 --- /dev/null +++ b/t/09_requests/cloudfront-listpublickeys.request.test.yml @@ -0,0 +1,38 @@ +--- +call: ListPublicKeys +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: 4 + key: MaxItems + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/public-key + op: eq + path: url + - expected: /2019-03-26/public-key + op: eq + path: url + - expected: /2019-03-26/public-key + op: eq + path: uri + - expected: MaxItems=4 + op: eq + path: uri diff --git a/t/09_requests/cloudfront-liststreamingdistributions.1.request b/t/09_requests/cloudfront-liststreamingdistributions.1.request new file mode 100644 index 0000000000..b430a4237c --- /dev/null +++ b/t/09_requests/cloudfront-liststreamingdistributions.1.request @@ -0,0 +1,2 @@ +--- +MaxItems: 10 diff --git a/t/09_requests/cloudfront-liststreamingdistributions.1.request.test.yml b/t/09_requests/cloudfront-liststreamingdistributions.1.request.test.yml new file mode 100644 index 0000000000..00fdb874cb --- /dev/null +++ b/t/09_requests/cloudfront-liststreamingdistributions.1.request.test.yml @@ -0,0 +1,38 @@ +--- +call: ListStreamingDistributions +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: 10 + key: MaxItems + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/streaming-distribution + op: eq + path: url + - expected: /2019-03-26/streaming-distribution + op: eq + path: url + - expected: /2019-03-26/streaming-distribution + op: eq + path: uri + - expected: MaxItems=10 + op: eq + path: uri diff --git a/t/09_requests/cloudfront-liststreamingdistributions.request b/t/09_requests/cloudfront-liststreamingdistributions.request new file mode 100644 index 0000000000..c9d6ace63f --- /dev/null +++ b/t/09_requests/cloudfront-liststreamingdistributions.request @@ -0,0 +1,2 @@ +--- +MaxItems: 1 diff --git a/t/09_requests/cloudfront-liststreamingdistributions.request.test.yml b/t/09_requests/cloudfront-liststreamingdistributions.request.test.yml new file mode 100644 index 0000000000..6e794b225f --- /dev/null +++ b/t/09_requests/cloudfront-liststreamingdistributions.request.test.yml @@ -0,0 +1,38 @@ +--- +call: ListStreamingDistributions +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: 1 + key: MaxItems + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/streaming-distribution + op: eq + path: url + - expected: /2019-03-26/streaming-distribution + op: eq + path: url + - expected: /2019-03-26/streaming-distribution + op: eq + path: uri + - expected: MaxItems=1 + op: eq + path: uri diff --git a/t/09_requests/cloudfront-listtagsforresource.request b/t/09_requests/cloudfront-listtagsforresource.request new file mode 100644 index 0000000000..b7ba87c8bc --- /dev/null +++ b/t/09_requests/cloudfront-listtagsforresource.request @@ -0,0 +1,2 @@ +--- +Resource: arn:aws:cloudfront::985173205561:distribution/E2F696NMEQJ5SH diff --git a/t/09_requests/cloudfront-listtagsforresource.request.test.yml b/t/09_requests/cloudfront-listtagsforresource.request.test.yml new file mode 100644 index 0000000000..9ddb81ec1e --- /dev/null +++ b/t/09_requests/cloudfront-listtagsforresource.request.test.yml @@ -0,0 +1,38 @@ +--- +call: ListTagsForResource +service: CloudFront +tests: + - expected: '' + op: eq + path: content + - expected: GET + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: arn:aws:cloudfront::985173205561:distribution/E2F696NMEQJ5SH + key: Resource + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/tagging + op: eq + path: url + - expected: /2019-03-26/tagging + op: eq + path: url + - expected: /2019-03-26/tagging + op: eq + path: uri + - expected: Resource=arn%3Aaws%3Acloudfront%3A%3A985173205561%3Adistribution%2FE2F696NMEQJ5SH + op: eq + path: uri diff --git a/t/09_requests/cloudfront-tagresource.1.request b/t/09_requests/cloudfront-tagresource.1.request new file mode 100644 index 0000000000..385c418af1 --- /dev/null +++ b/t/09_requests/cloudfront-tagresource.1.request @@ -0,0 +1,10 @@ +--- +Resource: arn:aws:cloudfront::985173205561:distribution/E2F696NMEQJ5SH +Tags: + Items: + - Key: Tag2 + Value: Value 2 + - Key: Tag3 + Value: Value 3 + - Key: Tag4 + Value: Value 4 diff --git a/t/09_requests/cloudfront-tagresource.1.request.test.yml b/t/09_requests/cloudfront-tagresource.1.request.test.yml new file mode 100644 index 0000000000..74267be5ac --- /dev/null +++ b/t/09_requests/cloudfront-tagresource.1.request.test.yml @@ -0,0 +1,69 @@ +--- +call: TagResource +service: CloudFront +tests: + - expected: 'Tag2Value 2Tag3Value 3Tag4Value 4' + op: eq + path: content + - expected: POST + op: eq + path: method + - expected: hecBipd3/ZJbvZeD7zyeHg== + key: content-md5 + op: eq + path: headers + - expected: application/xml + key: content-type + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: cbda03f3be8e255177af8d47ee2a64c62c66eedf5e226f3add76604745328e51 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: arn:aws:cloudfront::985173205561:distribution/E2F696NMEQJ5SH + key: Resource + op: eq + path: parameters + - expected: Tag2 + key: Tags.Items.member.1.Key + op: eq + path: parameters + - expected: Value 2 + key: Tags.Items.member.1.Value + op: eq + path: parameters + - expected: Tag3 + key: Tags.Items.member.2.Key + op: eq + path: parameters + - expected: Value 3 + key: Tags.Items.member.2.Value + op: eq + path: parameters + - expected: Tag4 + key: Tags.Items.member.3.Key + op: eq + path: parameters + - expected: Value 4 + key: Tags.Items.member.3.Value + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/tagging + op: eq + path: url + - expected: /2019-03-26/tagging + op: eq + path: url + - expected: /2019-03-26/tagging + op: eq + path: uri + - expected: Resource=arn%3Aaws%3Acloudfront%3A%3A985173205561%3Adistribution%2FE2F696NMEQJ5SH + op: eq + path: uri + - expected: Operation=Tag + op: eq + path: uri diff --git a/t/09_requests/cloudfront-tagresource.request b/t/09_requests/cloudfront-tagresource.request new file mode 100644 index 0000000000..f6b5b15e66 --- /dev/null +++ b/t/09_requests/cloudfront-tagresource.request @@ -0,0 +1,6 @@ +--- +Resource: arn:aws:cloudfront::985173205561:distribution/E2F696NMEQJ5SH +Tags: + Items: + - Key: Tag1 + Value: Value 1 diff --git a/t/09_requests/cloudfront-tagresource.request.test.yml b/t/09_requests/cloudfront-tagresource.request.test.yml new file mode 100644 index 0000000000..a08f0c41e6 --- /dev/null +++ b/t/09_requests/cloudfront-tagresource.request.test.yml @@ -0,0 +1,53 @@ +--- +call: TagResource +service: CloudFront +tests: + - expected: 'Tag1Value 1' + op: eq + path: content + - expected: POST + op: eq + path: method + - expected: cdgPWy0T0riRipR2xEBC7g== + key: content-md5 + op: eq + path: headers + - expected: application/xml + key: content-type + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: e78f0b464228bee6ca23c71fcb82b6e3cdfcb3d049590e593f2c6a02799b7602 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: arn:aws:cloudfront::985173205561:distribution/E2F696NMEQJ5SH + key: Resource + op: eq + path: parameters + - expected: Tag1 + key: Tags.Items.member.1.Key + op: eq + path: parameters + - expected: Value 1 + key: Tags.Items.member.1.Value + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/tagging + op: eq + path: url + - expected: /2019-03-26/tagging + op: eq + path: url + - expected: /2019-03-26/tagging + op: eq + path: uri + - expected: Resource=arn%3Aaws%3Acloudfront%3A%3A985173205561%3Adistribution%2FE2F696NMEQJ5SH + op: eq + path: uri + - expected: Operation=Tag + op: eq + path: uri diff --git a/t/09_requests/cloudfront-untagresource.1.request b/t/09_requests/cloudfront-untagresource.1.request new file mode 100644 index 0000000000..0911acbe6a --- /dev/null +++ b/t/09_requests/cloudfront-untagresource.1.request @@ -0,0 +1,6 @@ +--- +Resource: arn:aws:cloudfront::985173205561:distribution/E2F696NMEQJ5SH +TagKeys: + Items: + - Tag1 + - Tag3 diff --git a/t/09_requests/cloudfront-untagresource.1.request.test.yml b/t/09_requests/cloudfront-untagresource.1.request.test.yml new file mode 100644 index 0000000000..18c802a47d --- /dev/null +++ b/t/09_requests/cloudfront-untagresource.1.request.test.yml @@ -0,0 +1,53 @@ +--- +call: UntagResource +service: CloudFront +tests: + - expected: 'Tag1Tag3' + op: eq + path: content + - expected: POST + op: eq + path: method + - expected: xLeuNuPtQPNQqCSF7Y8Xlg== + key: content-md5 + op: eq + path: headers + - expected: application/xml + key: content-type + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: f8adacf18cd700a443181761e4082331bb792d2c8d3a18745ea086d36505176d + key: x-amz-content-sha256 + op: eq + path: headers + - expected: arn:aws:cloudfront::985173205561:distribution/E2F696NMEQJ5SH + key: Resource + op: eq + path: parameters + - expected: Tag1 + key: TagKeys.Items.member.1 + op: eq + path: parameters + - expected: Tag3 + key: TagKeys.Items.member.2 + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/tagging + op: eq + path: url + - expected: /2019-03-26/tagging + op: eq + path: url + - expected: /2019-03-26/tagging + op: eq + path: uri + - expected: Resource=arn%3Aaws%3Acloudfront%3A%3A985173205561%3Adistribution%2FE2F696NMEQJ5SH + op: eq + path: uri + - expected: Operation=Untag + op: eq + path: uri diff --git a/t/09_requests/cloudfront-untagresource.request b/t/09_requests/cloudfront-untagresource.request new file mode 100644 index 0000000000..f38d9267b3 --- /dev/null +++ b/t/09_requests/cloudfront-untagresource.request @@ -0,0 +1,5 @@ +--- +Resource: arn:aws:cloudfront::985173205561:distribution/E2F696NMEQJ5SH +TagKeys: + Items: + - Tag4 diff --git a/t/09_requests/cloudfront-untagresource.request.test.yml b/t/09_requests/cloudfront-untagresource.request.test.yml new file mode 100644 index 0000000000..96f56e9b5f --- /dev/null +++ b/t/09_requests/cloudfront-untagresource.request.test.yml @@ -0,0 +1,49 @@ +--- +call: UntagResource +service: CloudFront +tests: + - expected: 'Tag4' + op: eq + path: content + - expected: POST + op: eq + path: method + - expected: my8CgSk8OOMlWKREMzs8sA== + key: content-md5 + op: eq + path: headers + - expected: application/xml + key: content-type + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: cd3bd0bc073abef10a7de6cfa3a97fd1e9d2944c9d8a0eb0c96e502a6067dc02 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: arn:aws:cloudfront::985173205561:distribution/E2F696NMEQJ5SH + key: Resource + op: eq + path: parameters + - expected: Tag4 + key: TagKeys.Items.member.1 + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/tagging + op: eq + path: url + - expected: /2019-03-26/tagging + op: eq + path: url + - expected: /2019-03-26/tagging + op: eq + path: uri + - expected: Operation=Untag + op: eq + path: uri + - expected: Resource=arn%3Aaws%3Acloudfront%3A%3A985173205561%3Adistribution%2FE2F696NMEQJ5SH + op: eq + path: uri diff --git a/t/09_requests/cloudfront-updatecloudfrontoriginaccessidentity.request b/t/09_requests/cloudfront-updatecloudfrontoriginaccessidentity.request new file mode 100644 index 0000000000..4f8dcce408 --- /dev/null +++ b/t/09_requests/cloudfront-updatecloudfrontoriginaccessidentity.request @@ -0,0 +1,6 @@ +--- +CloudFrontOriginAccessIdentityConfig: + CallerReference: some test here + Comment: Mr Pooppy buthole did this +Id: E3D5Y5RWA05QO1 +IfMatch: E2J612BD0LRDHQ diff --git a/t/09_requests/cloudfront-updatecloudfrontoriginaccessidentity.request.test.yml b/t/09_requests/cloudfront-updatecloudfrontoriginaccessidentity.request.test.yml new file mode 100644 index 0000000000..ee313ecb42 --- /dev/null +++ b/t/09_requests/cloudfront-updatecloudfrontoriginaccessidentity.request.test.yml @@ -0,0 +1,55 @@ +--- +call: UpdateCloudFrontOriginAccessIdentity +service: CloudFront +tests: + - expected: 'some test hereMr Pooppy buthole did this' + op: eq + path: content + - expected: PUT + op: eq + path: method + - expected: EHdoUtCDkDBFNs3w4AlTIA== + key: content-md5 + op: eq + path: headers + - expected: application/xml + key: content-type + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: E2J612BD0LRDHQ + key: if-match + op: eq + path: headers + - expected: ac652de7ef29ce6fd58d2f640f5c713b4754e7e48950644906453a37f6fcec8a + key: x-amz-content-sha256 + op: eq + path: headers + - expected: some test here + key: CloudFrontOriginAccessIdentityConfig.CallerReference + op: eq + path: parameters + - expected: Mr Pooppy buthole did this + key: CloudFrontOriginAccessIdentityConfig.Comment + op: eq + path: parameters + - expected: E3D5Y5RWA05QO1 + key: Id + op: eq + path: parameters + - expected: E2J612BD0LRDHQ + key: IfMatch + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/origin-access-identity/cloudfront/E3D5Y5RWA05QO1/config + op: eq + path: url + - expected: /2019-03-26/origin-access-identity/cloudfront/E3D5Y5RWA05QO1/config + op: eq + path: url + - expected: /2019-03-26/origin-access-identity/cloudfront/E3D5Y5RWA05QO1/config + op: eq + path: uri diff --git a/t/09_requests/cloudfront-updatedistribution.request b/t/09_requests/cloudfront-updatedistribution.request new file mode 100644 index 0000000000..c6379a2041 --- /dev/null +++ b/t/09_requests/cloudfront-updatedistribution.request @@ -0,0 +1,75 @@ +--- +DistributionConfig: + Aliases: + Quantity: 0 + CacheBehaviors: + Quantity: 0 + CallerReference: cli-example + Comment: '' + CustomErrorResponses: + Quantity: 0 + DefaultCacheBehavior: + AllowedMethods: + CachedMethods: + Items: + - HEAD + - GET + Quantity: 2 + Items: + - HEAD + - GET + Quantity: 2 + Compress: 0 + DefaultTTL: 86400 + FieldLevelEncryptionId: '' + ForwardedValues: + Cookies: + Forward: none + Headers: + Quantity: 0 + QueryString: 0 + QueryStringCacheKeys: + Quantity: 0 + LambdaFunctionAssociations: + Quantity: 0 + MaxTTL: 31536000 + MinTTL: 0 + SmoothStreaming: 0 + TargetOriginId: pawsexamplebucket.s3.amazonaws.com-cli-example + TrustedSigners: + Enabled: 0 + Quantity: 0 + ViewerProtocolPolicy: allow-all + DefaultRootObject: index.html + Enabled: 0 + HttpVersion: http2 + IsIPV6Enabled: 1 + Logging: + Bucket: '' + Enabled: 0 + IncludeCookies: 0 + Prefix: '' + OriginGroups: + Quantity: 0 + Origins: + Items: + - CustomHeaders: + Quantity: 0 + DomainName: pawsexamplebucket.s3.amazonaws.com + Id: pawsexamplebucket.s3.amazonaws.com-cli-example + OriginPath: '' + S3OriginConfig: + OriginAccessIdentity: '' + Quantity: 1 + PriceClass: PriceClass_All + Restrictions: + GeoRestriction: + Quantity: 0 + RestrictionType: none + ViewerCertificate: + CertificateSource: cloudfront + CloudFrontDefaultCertificate: 1 + MinimumProtocolVersion: TLSv1 + WebACLId: '' +Id: EJ143D8LZET8Z +IfMatch: EK97K8QL2NH7G diff --git a/t/09_requests/cloudfront-updatedistribution.request.test.yml b/t/09_requests/cloudfront-updatedistribution.request.test.yml new file mode 100644 index 0000000000..6a535fad0a --- /dev/null +++ b/t/09_requests/cloudfront-updatedistribution.request.test.yml @@ -0,0 +1,239 @@ +--- +call: UpdateDistribution +service: CloudFront +tests: + - expected: '00cli-example0HEADGET2HEADGET2086400none00003153600000pawsexamplebucket.s3.amazonaws.com-cli-example00allow-allindex.html0http210000pawsexamplebucket.s3.amazonaws.compawsexamplebucket.s3.amazonaws.com-cli-example1PriceClass_All0nonecloudfront1TLSv1' + op: eq + path: content + - expected: PUT + op: eq + path: method + - expected: W/RUe3RYI3P2XYa8ia1G2A== + key: content-md5 + op: eq + path: headers + - expected: application/xml + key: content-type + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: EK97K8QL2NH7G + key: if-match + op: eq + path: headers + - expected: 81acb085b31892b2c17ea0639cac5b0929084dc6a8831ae793e59380885a67c0 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: 0 + key: DistributionConfig.Aliases.Quantity + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.CacheBehaviors.Quantity + op: eq + path: parameters + - expected: cli-example + key: DistributionConfig.CallerReference + op: eq + path: parameters + - expected: '' + key: DistributionConfig.Comment + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.CustomErrorResponses.Quantity + op: eq + path: parameters + - expected: HEAD + key: DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.member.1 + op: eq + path: parameters + - expected: GET + key: DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.member.2 + op: eq + path: parameters + - expected: 2 + key: DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Quantity + op: eq + path: parameters + - expected: HEAD + key: DistributionConfig.DefaultCacheBehavior.AllowedMethods.Items.member.1 + op: eq + path: parameters + - expected: GET + key: DistributionConfig.DefaultCacheBehavior.AllowedMethods.Items.member.2 + op: eq + path: parameters + - expected: 2 + key: DistributionConfig.DefaultCacheBehavior.AllowedMethods.Quantity + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.DefaultCacheBehavior.Compress + op: eq + path: parameters + - expected: 86400 + key: DistributionConfig.DefaultCacheBehavior.DefaultTTL + op: eq + path: parameters + - expected: '' + key: DistributionConfig.DefaultCacheBehavior.FieldLevelEncryptionId + op: eq + path: parameters + - expected: none + key: DistributionConfig.DefaultCacheBehavior.ForwardedValues.Cookies.Forward + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.DefaultCacheBehavior.ForwardedValues.Headers.Quantity + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.DefaultCacheBehavior.ForwardedValues.QueryString + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.DefaultCacheBehavior.ForwardedValues.QueryStringCacheKeys.Quantity + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.DefaultCacheBehavior.LambdaFunctionAssociations.Quantity + op: eq + path: parameters + - expected: 31536000 + key: DistributionConfig.DefaultCacheBehavior.MaxTTL + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.DefaultCacheBehavior.MinTTL + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.DefaultCacheBehavior.SmoothStreaming + op: eq + path: parameters + - expected: pawsexamplebucket.s3.amazonaws.com-cli-example + key: DistributionConfig.DefaultCacheBehavior.TargetOriginId + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.DefaultCacheBehavior.TrustedSigners.Enabled + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.DefaultCacheBehavior.TrustedSigners.Quantity + op: eq + path: parameters + - expected: allow-all + key: DistributionConfig.DefaultCacheBehavior.ViewerProtocolPolicy + op: eq + path: parameters + - expected: index.html + key: DistributionConfig.DefaultRootObject + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.Enabled + op: eq + path: parameters + - expected: http2 + key: DistributionConfig.HttpVersion + op: eq + path: parameters + - expected: 1 + key: DistributionConfig.IsIPV6Enabled + op: eq + path: parameters + - expected: '' + key: DistributionConfig.Logging.Bucket + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.Logging.Enabled + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.Logging.IncludeCookies + op: eq + path: parameters + - expected: '' + key: DistributionConfig.Logging.Prefix + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.OriginGroups.Quantity + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.Origins.Items.member.1.CustomHeaders.Quantity + op: eq + path: parameters + - expected: pawsexamplebucket.s3.amazonaws.com + key: DistributionConfig.Origins.Items.member.1.DomainName + op: eq + path: parameters + - expected: pawsexamplebucket.s3.amazonaws.com-cli-example + key: DistributionConfig.Origins.Items.member.1.Id + op: eq + path: parameters + - expected: '' + key: DistributionConfig.Origins.Items.member.1.OriginPath + op: eq + path: parameters + - expected: '' + key: DistributionConfig.Origins.Items.member.1.S3OriginConfig.OriginAccessIdentity + op: eq + path: parameters + - expected: 1 + key: DistributionConfig.Origins.Quantity + op: eq + path: parameters + - expected: PriceClass_All + key: DistributionConfig.PriceClass + op: eq + path: parameters + - expected: 0 + key: DistributionConfig.Restrictions.GeoRestriction.Quantity + op: eq + path: parameters + - expected: none + key: DistributionConfig.Restrictions.GeoRestriction.RestrictionType + op: eq + path: parameters + - expected: cloudfront + key: DistributionConfig.ViewerCertificate.CertificateSource + op: eq + path: parameters + - expected: 1 + key: DistributionConfig.ViewerCertificate.CloudFrontDefaultCertificate + op: eq + path: parameters + - expected: TLSv1 + key: DistributionConfig.ViewerCertificate.MinimumProtocolVersion + op: eq + path: parameters + - expected: '' + key: DistributionConfig.WebACLId + op: eq + path: parameters + - expected: EJ143D8LZET8Z + key: Id + op: eq + path: parameters + - expected: EK97K8QL2NH7G + key: IfMatch + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/distribution/EJ143D8LZET8Z/config + op: eq + path: url + - expected: /2019-03-26/distribution/EJ143D8LZET8Z/config + op: eq + path: url + - expected: /2019-03-26/distribution/EJ143D8LZET8Z/config + op: eq + path: uri diff --git a/t/09_requests/cloudfront-updatefieldlevelencryptionconfig.request b/t/09_requests/cloudfront-updatefieldlevelencryptionconfig.request new file mode 100644 index 0000000000..13df01b316 --- /dev/null +++ b/t/09_requests/cloudfront-updatefieldlevelencryptionconfig.request @@ -0,0 +1,21 @@ +--- +FieldLevelEncryptionConfig: + CallerReference: 01-01-2020:00001 + Comment: Yeah Dad! You take away all the fun + ContentTypeProfileConfig: + ContentTypeProfiles: + Items: + - ContentType: application/x-www-form-urlencoded + Format: URLEncoded + ProfileId: P14TNUMMKLEPXX + Quantity: 1 + ForwardWhenContentTypeIsUnknown: 0 + QueryArgProfileConfig: + ForwardWhenQueryArgProfileIsUnknown: 0 + QueryArgProfiles: + Items: + - ProfileId: P14TNUMMKLEPXX + QueryArg: gee_dad + Quantity: 1 +Id: C26GE31LXDSQZI +IfMatch: E3MYZU38G7JCEI diff --git a/t/09_requests/cloudfront-updatefieldlevelencryptionconfig.request.test.yml b/t/09_requests/cloudfront-updatefieldlevelencryptionconfig.request.test.yml new file mode 100644 index 0000000000..96771da485 --- /dev/null +++ b/t/09_requests/cloudfront-updatefieldlevelencryptionconfig.request.test.yml @@ -0,0 +1,91 @@ +--- +call: UpdateFieldLevelEncryptionConfig +service: CloudFront +tests: + - expected: '01-01-2020:00001Yeah Dad! You take away all the funapplication/x-www-form-urlencodedURLEncodedP14TNUMMKLEPXX100P14TNUMMKLEPXXgee_dad1' + op: eq + path: content + - expected: PUT + op: eq + path: method + - expected: HTdlGG0QlpKKYgW1a35MGw== + key: content-md5 + op: eq + path: headers + - expected: application/xml + key: content-type + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: E3MYZU38G7JCEI + key: if-match + op: eq + path: headers + - expected: ee7e92b7020504e909cedd3ac22225c71baea97886fb5680b412a3dd81dce9e6 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: 01-01-2020:00001 + key: FieldLevelEncryptionConfig.CallerReference + op: eq + path: parameters + - expected: Yeah Dad! You take away all the fun + key: FieldLevelEncryptionConfig.Comment + op: eq + path: parameters + - expected: application/x-www-form-urlencoded + key: FieldLevelEncryptionConfig.ContentTypeProfileConfig.ContentTypeProfiles.Items.member.1.ContentType + op: eq + path: parameters + - expected: URLEncoded + key: FieldLevelEncryptionConfig.ContentTypeProfileConfig.ContentTypeProfiles.Items.member.1.Format + op: eq + path: parameters + - expected: P14TNUMMKLEPXX + key: FieldLevelEncryptionConfig.ContentTypeProfileConfig.ContentTypeProfiles.Items.member.1.ProfileId + op: eq + path: parameters + - expected: 1 + key: FieldLevelEncryptionConfig.ContentTypeProfileConfig.ContentTypeProfiles.Quantity + op: eq + path: parameters + - expected: 0 + key: FieldLevelEncryptionConfig.ContentTypeProfileConfig.ForwardWhenContentTypeIsUnknown + op: eq + path: parameters + - expected: 0 + key: FieldLevelEncryptionConfig.QueryArgProfileConfig.ForwardWhenQueryArgProfileIsUnknown + op: eq + path: parameters + - expected: P14TNUMMKLEPXX + key: FieldLevelEncryptionConfig.QueryArgProfileConfig.QueryArgProfiles.Items.member.1.ProfileId + op: eq + path: parameters + - expected: gee_dad + key: FieldLevelEncryptionConfig.QueryArgProfileConfig.QueryArgProfiles.Items.member.1.QueryArg + op: eq + path: parameters + - expected: 1 + key: FieldLevelEncryptionConfig.QueryArgProfileConfig.QueryArgProfiles.Quantity + op: eq + path: parameters + - expected: C26GE31LXDSQZI + key: Id + op: eq + path: parameters + - expected: E3MYZU38G7JCEI + key: IfMatch + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/field-level-encryption/C26GE31LXDSQZI/config + op: eq + path: url + - expected: /2019-03-26/field-level-encryption/C26GE31LXDSQZI/config + op: eq + path: url + - expected: /2019-03-26/field-level-encryption/C26GE31LXDSQZI/config + op: eq + path: uri diff --git a/t/09_requests/cloudfront-updatefieldlevelencryptionprofile.request b/t/09_requests/cloudfront-updatefieldlevelencryptionprofile.request new file mode 100644 index 0000000000..83b490e540 --- /dev/null +++ b/t/09_requests/cloudfront-updatefieldlevelencryptionprofile.request @@ -0,0 +1,18 @@ +--- +FieldLevelEncryptionProfileConfig: + CallerReference: 2020-01-01-20:21 + Comment: Ha Rick. Mr. Poopy Buthole was here + EncryptionEntities: + Items: + - FieldPatterns: + Items: + - three* + - one* + - Two* + Quantity: 3 + ProviderId: OpenSSL + PublicKeyId: K3ODSO6SYTI4ZG + Quantity: 1 + Name: PawsCloudConfigTwo +Id: P11YIB8QUZ31DB +IfMatch: EONZE0AI4NWCH diff --git a/t/09_requests/cloudfront-updatefieldlevelencryptionprofile.request.test.yml b/t/09_requests/cloudfront-updatefieldlevelencryptionprofile.request.test.yml new file mode 100644 index 0000000000..0bc98d6360 --- /dev/null +++ b/t/09_requests/cloudfront-updatefieldlevelencryptionprofile.request.test.yml @@ -0,0 +1,87 @@ +--- +call: UpdateFieldLevelEncryptionProfile +service: CloudFront +tests: + - expected: '2020-01-01-20:21Ha Rick. Mr. Poopy Buthole was herethree*one*Two*3OpenSSLK3ODSO6SYTI4ZG1PawsCloudConfigTwo' + op: eq + path: content + - expected: PUT + op: eq + path: method + - expected: lDQFc3SLsWW1ewLBmmP8Ww== + key: content-md5 + op: eq + path: headers + - expected: application/xml + key: content-type + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: EONZE0AI4NWCH + key: if-match + op: eq + path: headers + - expected: 623bda198bb672b95e5d9d78e04883dc84dc3d9a6f3ac8c9e307b34ceddb124b + key: x-amz-content-sha256 + op: eq + path: headers + - expected: 2020-01-01-20:21 + key: FieldLevelEncryptionProfileConfig.CallerReference + op: eq + path: parameters + - expected: Ha Rick. Mr. Poopy Buthole was here + key: FieldLevelEncryptionProfileConfig.Comment + op: eq + path: parameters + - expected: three* + key: FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.member.1.FieldPatterns.Items.member.1 + op: eq + path: parameters + - expected: one* + key: FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.member.1.FieldPatterns.Items.member.2 + op: eq + path: parameters + - expected: Two* + key: FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.member.1.FieldPatterns.Items.member.3 + op: eq + path: parameters + - expected: 3 + key: FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.member.1.FieldPatterns.Quantity + op: eq + path: parameters + - expected: OpenSSL + key: FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.member.1.ProviderId + op: eq + path: parameters + - expected: K3ODSO6SYTI4ZG + key: FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.member.1.PublicKeyId + op: eq + path: parameters + - expected: 1 + key: FieldLevelEncryptionProfileConfig.EncryptionEntities.Quantity + op: eq + path: parameters + - expected: PawsCloudConfigTwo + key: FieldLevelEncryptionProfileConfig.Name + op: eq + path: parameters + - expected: P11YIB8QUZ31DB + key: Id + op: eq + path: parameters + - expected: EONZE0AI4NWCH + key: IfMatch + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/field-level-encryption-profile/P11YIB8QUZ31DB/config + op: eq + path: url + - expected: /2019-03-26/field-level-encryption-profile/P11YIB8QUZ31DB/config + op: eq + path: url + - expected: /2019-03-26/field-level-encryption-profile/P11YIB8QUZ31DB/config + op: eq + path: uri diff --git a/t/09_requests/cloudfront-updatepublickey.request b/t/09_requests/cloudfront-updatepublickey.request new file mode 100644 index 0000000000..d764717c6e --- /dev/null +++ b/t/09_requests/cloudfront-updatepublickey.request @@ -0,0 +1,17 @@ +--- +Id: K18H03HBTFHOUA +IfMatch: E3KFZB10NV5FJD +PublicKeyConfig: + CallerReference: 01-01-2020-000001 + Comment: New comment by Mr. Poopy Buthole + EncodedKey: | + -----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp5X8pCq9EllW/vd8dYc2 + oCl58nAuSoYTfEdzR/XQGLKugBqwSSHtfyG10bAsNjS6UnqfK3vG7QSo9zgiCvCn + KUF4J9mCEzUMCkiKcqZn169YheeMKCF04Q2xmdIMlw1FA/VGZ3HhC49hsIzAKlqC + q/3n3nEdb4Gf4J3KvY+KW+YcZJZQQG4QzqeUG/01MHs47RzhA9xFRJDvSXf4EGTT + eg6IAbeOlGDxiQ0d25PqZ9y+LVpa6pVy86qHnvkzbMHE2yGCiQKIuC60D4AJS/dx + 2TLLOAI8w0zm3aSvd1ktNZZMgNlnUkJFEMMlq3H7edzkb2NDNvGQ07cwJRU9h4Wt + bwIDAQAB + -----END PUBLIC KEY----- + Name: TestKeyPaws diff --git a/t/09_requests/cloudfront-updatepublickey.request.test.yml b/t/09_requests/cloudfront-updatepublickey.request.test.yml new file mode 100644 index 0000000000..9610da400f --- /dev/null +++ b/t/09_requests/cloudfront-updatepublickey.request.test.yml @@ -0,0 +1,82 @@ +--- +call: UpdatePublicKey +service: CloudFront +tests: + - expected: |- + 01-01-2020-000001New comment by Mr. Poopy Buthole-----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp5X8pCq9EllW/vd8dYc2 + oCl58nAuSoYTfEdzR/XQGLKugBqwSSHtfyG10bAsNjS6UnqfK3vG7QSo9zgiCvCn + KUF4J9mCEzUMCkiKcqZn169YheeMKCF04Q2xmdIMlw1FA/VGZ3HhC49hsIzAKlqC + q/3n3nEdb4Gf4J3KvY+KW+YcZJZQQG4QzqeUG/01MHs47RzhA9xFRJDvSXf4EGTT + eg6IAbeOlGDxiQ0d25PqZ9y+LVpa6pVy86qHnvkzbMHE2yGCiQKIuC60D4AJS/dx + 2TLLOAI8w0zm3aSvd1ktNZZMgNlnUkJFEMMlq3H7edzkb2NDNvGQ07cwJRU9h4Wt + bwIDAQAB + -----END PUBLIC KEY----- + TestKeyPaws + op: eq + path: content + - expected: PUT + op: eq + path: method + - expected: xz49F9+qtRg1J3rLJdDm1g== + key: content-md5 + op: eq + path: headers + - expected: application/xml + key: content-type + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: E3KFZB10NV5FJD + key: if-match + op: eq + path: headers + - expected: 959544050ae353cea3d22546479848112a7e3f87d830ee3a3b33966c62e4dfbb + key: x-amz-content-sha256 + op: eq + path: headers + - expected: K18H03HBTFHOUA + key: Id + op: eq + path: parameters + - expected: E3KFZB10NV5FJD + key: IfMatch + op: eq + path: parameters + - expected: 01-01-2020-000001 + key: PublicKeyConfig.CallerReference + op: eq + path: parameters + - expected: New comment by Mr. Poopy Buthole + key: PublicKeyConfig.Comment + op: eq + path: parameters + - expected: | + -----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp5X8pCq9EllW/vd8dYc2 + oCl58nAuSoYTfEdzR/XQGLKugBqwSSHtfyG10bAsNjS6UnqfK3vG7QSo9zgiCvCn + KUF4J9mCEzUMCkiKcqZn169YheeMKCF04Q2xmdIMlw1FA/VGZ3HhC49hsIzAKlqC + q/3n3nEdb4Gf4J3KvY+KW+YcZJZQQG4QzqeUG/01MHs47RzhA9xFRJDvSXf4EGTT + eg6IAbeOlGDxiQ0d25PqZ9y+LVpa6pVy86qHnvkzbMHE2yGCiQKIuC60D4AJS/dx + 2TLLOAI8w0zm3aSvd1ktNZZMgNlnUkJFEMMlq3H7edzkb2NDNvGQ07cwJRU9h4Wt + bwIDAQAB + -----END PUBLIC KEY----- + key: PublicKeyConfig.EncodedKey + op: eq + path: parameters + - expected: TestKeyPaws + key: PublicKeyConfig.Name + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/public-key/K18H03HBTFHOUA/config + op: eq + path: url + - expected: /2019-03-26/public-key/K18H03HBTFHOUA/config + op: eq + path: url + - expected: /2019-03-26/public-key/K18H03HBTFHOUA/config + op: eq + path: uri diff --git a/t/09_requests/cloudfront-updatestreamingdistribution.request b/t/09_requests/cloudfront-updatestreamingdistribution.request new file mode 100644 index 0000000000..a0240bb803 --- /dev/null +++ b/t/09_requests/cloudfront-updatestreamingdistribution.request @@ -0,0 +1,20 @@ +--- +Id: E17937UBVFIW2L +IfMatch: EL9J97I2UK4RD +StreamingDistributionConfig: + Aliases: + Quantity: 0 + CallerReference: 2020:010101 + Comment: No Dad this is not right + Enabled: 0 + Logging: + Bucket: '' + Enabled: 0 + Prefix: 0 + PriceClass: PriceClass_100 + S3Origin: + DomainName: oneoffpaws.s3.amazonaws.com + OriginAccessIdentity: origin-access-identity/cloudfront/E3D5Y5RWA05QO1 + TrustedSigners: + Enabled: 0 + Quantity: 0 diff --git a/t/09_requests/cloudfront-updatestreamingdistribution.request.test.yml b/t/09_requests/cloudfront-updatestreamingdistribution.request.test.yml new file mode 100644 index 0000000000..b81f418065 --- /dev/null +++ b/t/09_requests/cloudfront-updatestreamingdistribution.request.test.yml @@ -0,0 +1,95 @@ +--- +call: UpdateStreamingDistribution +service: CloudFront +tests: + - expected: '02020:010101No Dad this is not right000PriceClass_100oneoffpaws.s3.amazonaws.comorigin-access-identity/cloudfront/E3D5Y5RWA05QO100' + op: eq + path: content + - expected: PUT + op: eq + path: method + - expected: Lu5E+F2fMcZ0+6BjUrKdhA== + key: content-md5 + op: eq + path: headers + - expected: application/xml + key: content-type + op: eq + path: headers + - expected: cloudfront.amazonaws.com + key: host + op: eq + path: headers + - expected: EL9J97I2UK4RD + key: if-match + op: eq + path: headers + - expected: fc9e967107b3c9c0390954f022a4efdf01b3c2d5294749697861c1a1bfea1f8c + key: x-amz-content-sha256 + op: eq + path: headers + - expected: E17937UBVFIW2L + key: Id + op: eq + path: parameters + - expected: EL9J97I2UK4RD + key: IfMatch + op: eq + path: parameters + - expected: 0 + key: StreamingDistributionConfig.Aliases.Quantity + op: eq + path: parameters + - expected: 2020:010101 + key: StreamingDistributionConfig.CallerReference + op: eq + path: parameters + - expected: No Dad this is not right + key: StreamingDistributionConfig.Comment + op: eq + path: parameters + - expected: 0 + key: StreamingDistributionConfig.Enabled + op: eq + path: parameters + - expected: '' + key: StreamingDistributionConfig.Logging.Bucket + op: eq + path: parameters + - expected: 0 + key: StreamingDistributionConfig.Logging.Enabled + op: eq + path: parameters + - expected: 0 + key: StreamingDistributionConfig.Logging.Prefix + op: eq + path: parameters + - expected: PriceClass_100 + key: StreamingDistributionConfig.PriceClass + op: eq + path: parameters + - expected: oneoffpaws.s3.amazonaws.com + key: StreamingDistributionConfig.S3Origin.DomainName + op: eq + path: parameters + - expected: origin-access-identity/cloudfront/E3D5Y5RWA05QO1 + key: StreamingDistributionConfig.S3Origin.OriginAccessIdentity + op: eq + path: parameters + - expected: 0 + key: StreamingDistributionConfig.TrustedSigners.Enabled + op: eq + path: parameters + - expected: 0 + key: StreamingDistributionConfig.TrustedSigners.Quantity + op: eq + path: parameters + - expected: https://cloudfront.amazonaws.com/2019-03-26/streaming-distribution/E17937UBVFIW2L/config + op: eq + path: url + - expected: /2019-03-26/streaming-distribution/E17937UBVFIW2L/config + op: eq + path: url + - expected: /2019-03-26/streaming-distribution/E17937UBVFIW2L/config + op: eq + path: uri diff --git a/t/09_requests/s3-abort-multi-part.request b/t/09_requests/s3-abort-multi-part.request new file mode 100644 index 0000000000..688f04f04e --- /dev/null +++ b/t/09_requests/s3-abort-multi-part.request @@ -0,0 +1,5 @@ +--- +Bucket: oneoffpaws +Key: Some Key +UploadId: AN Id +RequestPayer: requester diff --git a/t/09_requests/s3-abort-multi-part.request.test.yml b/t/09_requests/s3-abort-multi-part.request.test.yml new file mode 100644 index 0000000000..533a84d85f --- /dev/null +++ b/t/09_requests/s3-abort-multi-part.request.test.yml @@ -0,0 +1,35 @@ +--- +call: AbortMultipartUpload +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: AN Id + op: eq + path: parameters + key: uploadId + - expected: Some Key + op: eq + path: parameters + key: Key + - expected: requester + op: eq + path: parameters + key: RequestPayer + - expected: DELETE + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws/Some%20Key? + ep: eq + path: url + - expected: uploadId=AN+Id + ep: eq + path: url + - expected: /oneoffpaws/Some%20Key + ep: eq + path: uri + - expected: uploadId=AN+Id + ep: eq + path: uri diff --git a/t/09_requests/s3-complete-multi-part.request b/t/09_requests/s3-complete-multi-part.request new file mode 100644 index 0000000000..744726af68 --- /dev/null +++ b/t/09_requests/s3-complete-multi-part.request @@ -0,0 +1,11 @@ +--- +Bucket: oneoffpaws +Key: Some Key +UploadId: AN Id +RequestPayer: requester +MultipartUpload: + Parts: + - ETag: MyETag + PartNumber: 1 + - ETag: MyETag2 + PartNumber: 3 diff --git a/t/09_requests/s3-complete-multi-part.request.test.yml b/t/09_requests/s3-complete-multi-part.request.test.yml new file mode 100644 index 0000000000..afeb002c39 --- /dev/null +++ b/t/09_requests/s3-complete-multi-part.request.test.yml @@ -0,0 +1,51 @@ +--- +call: CompleteMultipartUpload +service: S3 +tests: + - expected: MyETag1MyETag23 + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: requester + op: eq + path: parameters + key: RequestPayer + - expected: 3 + op: eq + path: parameters + key: MultipartUpload.Parts.Part.2.PartNumber + - expected: Some Key + op: eq + path: parameters + key: Key + - expected: MyETag + op: eq + path: parameters + key: MultipartUpload.Parts.Part.1.ETag + - expected: AN Id + op: eq + path: parameters + key: uploadId + - expected: 1 + op: eq + path: parameters + key: MultipartUpload.Parts.Part.1.PartNumber + - expected: MyETag2 + op: eq + path: parameters + key: MultipartUpload.Parts.Part.2.ETag + - expected: POST + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws/Some%20Key? + p: eq + path: url + - expected: uploadId=AN+Id + ep: eq + path: url + - expected: uploadId=AN+Id + ep: eq + path: uri diff --git a/t/09_requests/s3-copy-object.request b/t/09_requests/s3-copy-object.request new file mode 100644 index 0000000000..a67fc696ec --- /dev/null +++ b/t/09_requests/s3-copy-object.request @@ -0,0 +1,31 @@ +--- +Bucket: oneoffpaws +CopySource: twooffpaws +Key: Some Key +ACL: private +CacheControl: MyCacheControl +ContentDisposition: MyContentDisposition +ContentEncoding: MyContentEncoding +ContentLanguage: MyContentLanguage +ContentType: MyContentType +CopySource: someotherkey +CopySourceIfMatch: ture +CopySourceIfModifiedSince: 1970-01-01T01:00:00 +Expires: 1970-01-01T01:00:00 +GrantFullControl: MyGrantFullControl +GrantRead: MyGrantRead +GrantReadACP: MyGrantReadACP +GrantWriteACP: MyGrantWriteACP +ObjectLockMode: GOVERNANCE +Metadata: + MyMetadataKey: MyMetadataValue +RequestPayer: requester +SSECustomerAlgorithm: MySSECustomerAlgorithm +SSECustomerKey: MySSECustomerKey +SSECustomerKeyMD5: MySSECustomerKeyMD5 +SSEKMSEncryptionContext: MySSEKMSEncryptionContext +SSEKMSKeyId: MySSEKMSKeyId +ServerSideEncryption: AES256 +StorageClass: STANDARD +Tagging: MyTaggingHeader +WebsiteRedirectLocation: MyWebsiteRedirectLocation diff --git a/t/09_requests/s3-copy-object.request.test.yml b/t/09_requests/s3-copy-object.request.test.yml new file mode 100644 index 0000000000..ed9a7e491e --- /dev/null +++ b/t/09_requests/s3-copy-object.request.test.yml @@ -0,0 +1,93 @@ +--- +call: CopyObject +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: twooffpaws + op: eq + key: CopySource + path: parameters + - key: x-amz-server-side-encryption-context + path: headers + op: eq + expected: MySSEKMSEncryptionContext + - key: content-encoding + path: headers + op: eq + expected: MyContentEncoding + - key: x-amz-grant-write-acp + path: headers + op: eq + expected: MyGrantWriteACP + - key: x-amz-server-side-encryption-aws-kms-key-id + path: headers + op: eq + expected: MySSEKMSKeyId + - key: x-amz-storage-class + path: headers + op: eq + expected: STANDARD + - key: x-amz-grant-full-control + path: headers + op: eq + expected: MyGrantFullControl + - key: x-amz-grant-read + path: headers + op: eq + expected: MyGrantRead + - key: x-amz-server-side-encryption-customer-key-md5 + path: headers + op: eq + expected: MySSECustomerKeyMD5 + - key: x-amz-acl + path: headers + op: eq + expected: private + - key: content-type + path: headers + op: eq + expected: MyContentType + - key: x-amz-server-side-encryption-customer-algorithm + path: headers + op: eq + expected: MySSECustomerAlgorithm + - key: x-amz-request-payer + path: headers + op: eq + expected: requester + - key: content-language + path: headers + op: eq + expected: MyContentLanguage + - key: expires + path: headers + op: eq + expected: 1970-01-01T01:00:00 + - key: x-amz-object-lock-mode + path: headers + op: eq + expected: GOVERNANCE + - key: x-amz-grant-read-acp + path: headers + op: eq + expected: MyGrantReadACP + - key: x-amz-server-side-encryption + path: headers + op: eq + expected: AES256 + - key: x-amz-meta-mymetadatakey + path: headers + op: eq + expected: MyMetadataValue + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws/Some%20Key + ep: eq + path: url + - expected: /oneoffpaws/Some%20Key + ep: eq + path: uri diff --git a/t/09_requests/s3-create-bucket.request b/t/09_requests/s3-create-bucket.request new file mode 100644 index 0000000000..2a2d3726d4 --- /dev/null +++ b/t/09_requests/s3-create-bucket.request @@ -0,0 +1,11 @@ +--- +Bucket: oneoffpaws +CreateBucketConfiguration: + LocationConstraint: us-east-1 +ACL: private +GrantFullControl: emailAddress="full_control_1@amazon.com", emailAddress="full_control_2@amazon.com" +GrantRead: emailAddress="read_1@amazon.com", emailAddress="read_2@amazon.com" +GrantReadACP: emailAddress="read_acp_1@amazon.com", emailAddress="read_acp_2@amazon.com" +GrantWrite: emailAddress="write_1@amazon.com", emailAddress="write_2@amazon.com" +GrantWriteACP: emailAddress="write_acp_1@amazon.com", emailAddress="write_acp_2@amazon.com" +ObjectLockEnabledForBucket: 1 diff --git a/t/09_requests/s3-create-bucket.request.test.yml b/t/09_requests/s3-create-bucket.request.test.yml new file mode 100644 index 0000000000..cd318997c1 --- /dev/null +++ b/t/09_requests/s3-create-bucket.request.test.yml @@ -0,0 +1,42 @@ +--- +call: CreateBucket +service: S3 +tests: + - expected: us-east-1 + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: private + op: eq + path: headers + key: x-amz-acl + - expected: emailAddress="full_control_1@amazon.com", emailAddress="full_control_2@amazon.com" + op: eq + path: headers + key: x-amz-grant-full-control + - expected: emailAddress="read_1@amazon.com", emailAddress="read_2@amazon.com" + op: eq + path: headers + key: x-amz-grant-read + - expected: emailAddress="read_acp_1@amazon.com", emailAddress="read_acp_2@amazon.com" + op: eq + path: headers + key: x-amz-grant-read-acp + - expected: emailAddress="write_1@amazon.com", emailAddress="write_2@amazon.com" + op: eq + path: headers + key: x-amz-grant-write + - expected: emailAddress="write_acp_1@amazon.com", emailAddress="write_acp_2@amazon.com" + op: eq + path: headers + key: x-amz-grant-write-acp + - expected: 1 + op: eq + path: headers + key: x-amz-bucket-object-lock-enabled + - expected: PUT + op: eq + path: method diff --git a/t/09_requests/s3-create-multi-part.request b/t/09_requests/s3-create-multi-part.request new file mode 100644 index 0000000000..52264a0cc0 --- /dev/null +++ b/t/09_requests/s3-create-multi-part.request @@ -0,0 +1,29 @@ +--- +Bucket: oneoffpaws +Key: Some Key +ACL: private +CacheControl: MyCacheControl +ContentDisposition: MyContentDisposition +ContentEncoding: MyContentEncoding +ContentLanguage: MyContentLanguage +ContentType: MyContentType +Expires: 1970-01-01T01:00:00 +GrantFullControl: MyGrantFullControl +GrantRead: MyGrantRead +GrantReadACP: MyGrantReadACP +GrantWriteACP: MyGrantWriteACP +Metadata: + MyMetadataKey: MyMetadataValue +ObjectLockLegalHoldStatus: ON +ObjectLockMode: GOVERNANCE +ObjectLockRetainUntilDate: 1970-01-01T01:00:00 +RequestPayer: requester +SSECustomerAlgorithm: MySSECustomerAlgorithm +SSECustomerKey: MySSECustomerKey +SSECustomerKeyMD5: MySSECustomerKeyMD5 +SSEKMSEncryptionContext: MySSEKMSEncryptionContext +SSEKMSKeyId: MySSEKMSKeyId +ServerSideEncryption: AES256 +StorageClass: STANDARD +Tagging: MyTaggingHeader +WebsiteRedirectLocation: MyWebsiteRedirectLocation diff --git a/t/09_requests/s3-create-multi-part.request.test.yml b/t/09_requests/s3-create-multi-part.request.test.yml new file mode 100644 index 0000000000..54c9c8bd85 --- /dev/null +++ b/t/09_requests/s3-create-multi-part.request.test.yml @@ -0,0 +1,95 @@ +--- +call: CreateMultipartUpload +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - key: x-amz-server-side-encryption-context + path: headers + op: eq + expected: MySSEKMSEncryptionContext + - key: content-encoding + path: headers + op: eq + expected: MyContentEncoding + - key: x-amz-grant-write-acp + path: headers + op: eq + expected: MyGrantWriteACP + - key: x-amz-server-side-encryption-aws-kms-key-id + path: headers + op: eq + expected: MySSEKMSKeyId + - key: x-amz-storage-class + path: headers + op: eq + expected: STANDARD + - key: x-amz-grant-full-control + path: headers + op: eq + expected: MyGrantFullControl + - key: x-amz-grant-read + path: headers + op: eq + expected: MyGrantRead + - key: x-amz-server-side-encryption-customer-key-md5 + path: headers + op: eq + expected: MySSECustomerKeyMD5 + - key: x-amz-acl + path: headers + op: eq + expected: private + - key: content-type + path: headers + op: eq + expected: MyContentType + - key: x-amz-server-side-encryption-customer-algorithm + path: headers + op: eq + expected: MySSECustomerAlgorithm + - key: x-amz-request-payer + path: headers + op: eq + expected: requester + - key: content-language + path: headers + op: eq + expected: MyContentLanguage + - key: expires + path: headers + op: eq + expected: 1970-01-01T01:00:00 + - key: x-amz-object-lock-mode + path: headers + op: eq + expected: GOVERNANCE + - key: x-amz-grant-read-acp + path: headers + op: eq + expected: MyGrantReadACP + - key: x-amz-server-side-encryption + path: headers + op: eq + expected: AES256 + - key: x-amz-meta-mymetadatakey + path: headers + op: eq + expected: MyMetadataValue + - expected: POST + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws/Some%20Key? + ep: eq + path: url + - expected: uploads + ep: eq + path: url + - expected: /oneoffpaws/Some%20Key + ep: eq + path: uri + - expected: uploads + ep: eq + path: uri diff --git a/t/09_requests/s3-delete-bucket-bucket-analytics-configurations.request b/t/09_requests/s3-delete-bucket-bucket-analytics-configurations.request new file mode 100644 index 0000000000..17c319e3e3 --- /dev/null +++ b/t/09_requests/s3-delete-bucket-bucket-analytics-configurations.request @@ -0,0 +1,4 @@ +--- + Id: test1333 + Bucket: oneoffpaws + diff --git a/t/09_requests/s3-delete-bucket-bucket-analytics-configurations.request.test.yml b/t/09_requests/s3-delete-bucket-bucket-analytics-configurations.request.test.yml new file mode 100644 index 0000000000..a2d525a0e9 --- /dev/null +++ b/t/09_requests/s3-delete-bucket-bucket-analytics-configurations.request.test.yml @@ -0,0 +1,31 @@ +--- +call: DeleteBucketAnalyticsConfiguration +service: S3 +tests: + - expected: '' + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: test1333 + op: eq + path: parameters + key: id + - expected: DELETE + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: id=test1333 + path: url + - expected: analytics= + path: url + - expected: /oneoffpaws? + path: uri + - expected: id=test1333 + path: uri + - expected: analytics= + path: uri + diff --git a/t/09_requests/s3-delete-bucket-cors.request b/t/09_requests/s3-delete-bucket-cors.request new file mode 100644 index 0000000000..181e780d7e --- /dev/null +++ b/t/09_requests/s3-delete-bucket-cors.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-delete-bucket-cors.request.test.yml b/t/09_requests/s3-delete-bucket-cors.request.test.yml new file mode 100644 index 0000000000..e5bae09955 --- /dev/null +++ b/t/09_requests/s3-delete-bucket-cors.request.test.yml @@ -0,0 +1,20 @@ +--- +call: DeleteBucketCors +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: DELETE + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: cors + path: url + - expected: /oneoffpaws? + path: uri + - expected: cors + path: uri + diff --git a/t/09_requests/s3-delete-bucket-encryption.request b/t/09_requests/s3-delete-bucket-encryption.request new file mode 100644 index 0000000000..44f816655d --- /dev/null +++ b/t/09_requests/s3-delete-bucket-encryption.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-delete-bucket-encryption.request.test.yml b/t/09_requests/s3-delete-bucket-encryption.request.test.yml new file mode 100644 index 0000000000..0a5afbe4af --- /dev/null +++ b/t/09_requests/s3-delete-bucket-encryption.request.test.yml @@ -0,0 +1,20 @@ +--- +call: DeleteBucketEncryption +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: DELETE + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: encryption + path: url + - expected: /oneoffpaws + path: uri + - expected: encryption + path: url + diff --git a/t/09_requests/s3-delete-bucket-inventory-configuration.request b/t/09_requests/s3-delete-bucket-inventory-configuration.request new file mode 100644 index 0000000000..d0f041409d --- /dev/null +++ b/t/09_requests/s3-delete-bucket-inventory-configuration.request @@ -0,0 +1,3 @@ +--- +Bucket: oneoffpaws +Id: tyehshsyye diff --git a/t/09_requests/s3-delete-bucket-inventory-configuration.request.test.yml b/t/09_requests/s3-delete-bucket-inventory-configuration.request.test.yml new file mode 100644 index 0000000000..22b680186c --- /dev/null +++ b/t/09_requests/s3-delete-bucket-inventory-configuration.request.test.yml @@ -0,0 +1,33 @@ +--- +call: DeleteBucketInventoryConfiguration +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: tyehshsyye + op: eq + path: parameters + key: id + - expected: DELETE + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + op: eq + - expected: inventory + path: url + op: eq + - expected: /oneoffpaws + path: uri + op: eq + - expected: inventory + path: url + op: eq + - expected: id=tyehshsyye + path: url + op: eq + - expected: id=tyehshsyye + path: url + op: eq diff --git a/t/09_requests/s3-delete-bucket-lifecycle-configuration.request b/t/09_requests/s3-delete-bucket-lifecycle-configuration.request new file mode 100644 index 0000000000..181e780d7e --- /dev/null +++ b/t/09_requests/s3-delete-bucket-lifecycle-configuration.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-delete-bucket-lifecycle-configuration.request.test.yml b/t/09_requests/s3-delete-bucket-lifecycle-configuration.request.test.yml new file mode 100644 index 0000000000..42c3385090 --- /dev/null +++ b/t/09_requests/s3-delete-bucket-lifecycle-configuration.request.test.yml @@ -0,0 +1,19 @@ +--- +call: DeleteBucketLifecycle +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: DELETE + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: lifecycle + path: url + - expected: lifecycle + path: uri + - expected: /oneoffpaws? + path: uri diff --git a/t/09_requests/s3-delete-bucket-metrics-configuration.request b/t/09_requests/s3-delete-bucket-metrics-configuration.request new file mode 100644 index 0000000000..c41897a652 --- /dev/null +++ b/t/09_requests/s3-delete-bucket-metrics-configuration.request @@ -0,0 +1,3 @@ +--- +Bucket: oneoffpaws +Id: ImportantBlueDocuments diff --git a/t/09_requests/s3-delete-bucket-metrics-configuration.request.test.yml b/t/09_requests/s3-delete-bucket-metrics-configuration.request.test.yml new file mode 100644 index 0000000000..dcf4a1920b --- /dev/null +++ b/t/09_requests/s3-delete-bucket-metrics-configuration.request.test.yml @@ -0,0 +1,27 @@ +--- +call: DeleteBucketMetricsConfiguration +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: ImportantBlueDocuments + op: eq + path: parameters + key: Id + - expected: DELETE + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: metrics + path: url + - expected: id=ImportantBlueDocuments + path: url + - expected: metrics= + path: uri + - expected: id=ImportantBlueDocuments + path: uri + - expected: /oneoffpaws? + path: uri diff --git a/t/09_requests/s3-delete-bucket-policy.request b/t/09_requests/s3-delete-bucket-policy.request new file mode 100644 index 0000000000..181e780d7e --- /dev/null +++ b/t/09_requests/s3-delete-bucket-policy.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-delete-bucket-policy.request.test.yml b/t/09_requests/s3-delete-bucket-policy.request.test.yml new file mode 100644 index 0000000000..0c7802cedd --- /dev/null +++ b/t/09_requests/s3-delete-bucket-policy.request.test.yml @@ -0,0 +1,22 @@ +--- +call: DeleteBucketPolicy +service: S3 +tests: + - expected: '' + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: DELETE + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: policy + path: url + - expected: /oneoffpaws? + path: uri + - expected: policy + path: uri diff --git a/t/09_requests/s3-delete-bucket-public-access-block.request b/t/09_requests/s3-delete-bucket-public-access-block.request new file mode 100644 index 0000000000..181e780d7e --- /dev/null +++ b/t/09_requests/s3-delete-bucket-public-access-block.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-delete-bucket-public-access-block.request.test.yml b/t/09_requests/s3-delete-bucket-public-access-block.request.test.yml new file mode 100644 index 0000000000..4b24820922 --- /dev/null +++ b/t/09_requests/s3-delete-bucket-public-access-block.request.test.yml @@ -0,0 +1,23 @@ +--- +call: DeletePublicAccessBlock +service: S3 +tests: + - expected: '' + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: DELETE + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: publicAccessBlock + path: url + - expected: /oneoffpaws?publicAccessBlock + path: uri + - expected: publicAccessBlock + path: uri + diff --git a/t/09_requests/s3-delete-bucket-replication.request b/t/09_requests/s3-delete-bucket-replication.request new file mode 100644 index 0000000000..44f816655d --- /dev/null +++ b/t/09_requests/s3-delete-bucket-replication.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-delete-bucket-replication.request.test.yml b/t/09_requests/s3-delete-bucket-replication.request.test.yml new file mode 100644 index 0000000000..1dcc1f5162 --- /dev/null +++ b/t/09_requests/s3-delete-bucket-replication.request.test.yml @@ -0,0 +1,20 @@ +--- +call: DeleteBucketReplication +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: DELETE + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: replication + path: url + - expected: /oneoffpaws + path: uri + - expected: replication + path: url + diff --git a/t/09_requests/s3-delete-bucket-tagging.request b/t/09_requests/s3-delete-bucket-tagging.request new file mode 100644 index 0000000000..181e780d7e --- /dev/null +++ b/t/09_requests/s3-delete-bucket-tagging.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-delete-bucket-tagging.request.test.yml b/t/09_requests/s3-delete-bucket-tagging.request.test.yml new file mode 100644 index 0000000000..f7e4d0f7cc --- /dev/null +++ b/t/09_requests/s3-delete-bucket-tagging.request.test.yml @@ -0,0 +1,38 @@ +--- +call: DeleteBucketTagging +service: S3 +tests: + - expected: '' + op: eq + path: content + - expected: DELETE + op: eq + path: method + - expected: 1B2M2Y8AsgTpgAmY7PhCfg== + key: content-md5 + op: eq + path: headers + - expected: s3.fake_region.amazonaws.com + key: host + op: eq + path: headers + - expected: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + key: x-amz-content-sha256 + op: eq + path: headers + - expected: oneoffpaws + key: Bucket + op: eq + path: parameters + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws + op: eq + path: url + - expected: /oneoffpaws + op: eq + path: url + - expected: /oneoffpaws + op: eq + path: uri + - expected: tagging + op: eq + path: uri diff --git a/t/09_requests/s3-delete-bucket-website.request b/t/09_requests/s3-delete-bucket-website.request new file mode 100644 index 0000000000..44f816655d --- /dev/null +++ b/t/09_requests/s3-delete-bucket-website.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-delete-bucket-website.request.test.yml b/t/09_requests/s3-delete-bucket-website.request.test.yml new file mode 100644 index 0000000000..6d3015b033 --- /dev/null +++ b/t/09_requests/s3-delete-bucket-website.request.test.yml @@ -0,0 +1,20 @@ +--- +call: DeleteBucketWebsite +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: DELETE + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: website + path: url + - expected: /oneoffpaws + path: uri + - expected: website + path: url + diff --git a/t/09_requests/s3-delete-bucket.request b/t/09_requests/s3-delete-bucket.request new file mode 100644 index 0000000000..181e780d7e --- /dev/null +++ b/t/09_requests/s3-delete-bucket.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-delete-bucket.request.test.yml b/t/09_requests/s3-delete-bucket.request.test.yml new file mode 100644 index 0000000000..c9d297b0c7 --- /dev/null +++ b/t/09_requests/s3-delete-bucket.request.test.yml @@ -0,0 +1,12 @@ +--- +call: DeleteBucket +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: /oneoffpaws + path: uri + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws + path: url diff --git a/t/09_requests/s3-delete-object-tagging.request b/t/09_requests/s3-delete-object-tagging.request new file mode 100644 index 0000000000..db0890809c --- /dev/null +++ b/t/09_requests/s3-delete-object-tagging.request @@ -0,0 +1,3 @@ +--- +Bucket: oneoffpaws +Key: lhf/insp/attachments/assigned/condition_1_1033233_275731_69069.jpg diff --git a/t/09_requests/s3-delete-object-tagging.request.test.yml b/t/09_requests/s3-delete-object-tagging.request.test.yml new file mode 100644 index 0000000000..09259a81d6 --- /dev/null +++ b/t/09_requests/s3-delete-object-tagging.request.test.yml @@ -0,0 +1,23 @@ +--- +call: DeleteObjectTagging +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: lhf/insp/attachments/assigned/condition_1_1033233_275731_69069.jpg + op: eq + path: parameters + key: Key + - expected: DELETE + op: eq + path: method + - expected: /oneoffpaws/lhf/insp/attachments/assigned/condition_1_1033233_275731_69069.jpg? + path: uri + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws/lhf/insp/attachments/assigned/condition_1_1033233_275731_69069.jpg? + path: url + - expected: tagging + path: uri + - expected: tagging + path: url diff --git a/t/09_requests/s3-delete-object.request b/t/09_requests/s3-delete-object.request new file mode 100644 index 0000000000..799bc79d83 --- /dev/null +++ b/t/09_requests/s3-delete-object.request @@ -0,0 +1,6 @@ +--- +Bucket: oneoffpaws +Key: one/to/delete/image.jpg +VersionId: my version id +MFA: MyMFA +RequestPayer: requester diff --git a/t/09_requests/s3-delete-object.request.test.yml b/t/09_requests/s3-delete-object.request.test.yml new file mode 100644 index 0000000000..a3fe3640f4 --- /dev/null +++ b/t/09_requests/s3-delete-object.request.test.yml @@ -0,0 +1,40 @@ +--- +call: DeleteObject +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - key: Key + expected: one/to/delete/image.jpg + op: eq + path: parameters + - expected: my version id + op: eq + path: parameters + key: versionId + - key: RequestPayer + expected: requester + op: eq + path: parameters + - key: MFA + expected: MyMFA + op: eq + path: parameters + - expected: DELETE + op: eq + path: method + - expected: versionId=my+version+id + path: url + op: eq + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws/one/to/delete/image.jpg + path: url + op: eq + - expected: versionId=my+version+id + path: uri + op: eq + - expected: /oneoffpaws/one/to/delete/image.jpg + path: url + op: eq + diff --git a/t/09_requests/s3-delete-objects.request b/t/09_requests/s3-delete-objects.request new file mode 100644 index 0000000000..4ca1316ee5 --- /dev/null +++ b/t/09_requests/s3-delete-objects.request @@ -0,0 +1,12 @@ +--- +Bucket: oneoffpaws +MFA: MyMFA +RequestPayer: requester +BypassGovernanceRetention: 1 +Delete: + Objects: + - Key: MyObjectKey + VersionId: MyObjectVersionId + - Key: MyObjectKey1 + VersionId: MyObjectVersionId1 + Quiet: 1 diff --git a/t/09_requests/s3-delete-objects.request.test.yml b/t/09_requests/s3-delete-objects.request.test.yml new file mode 100644 index 0000000000..54dab67c6e --- /dev/null +++ b/t/09_requests/s3-delete-objects.request.test.yml @@ -0,0 +1,56 @@ +--- +call: DeleteObjects +service: S3 +tests: + - expected: MyObjectKeyMyObjectVersionIdMyObjectKey1MyObjectVersionId11 + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - key: Delete.Objects.Object.1.Key + expected: MyObjectKey + op: eq + path: parameters + - expected: requester + op: eq + path: parameters + key: RequestPayer + - key: BypassGovernanceRetention + expected: 1 + op: eq + path: parameters + - key: Delete.Objects.Object.1.VersionId + expected: MyObjectVersionId + op: eq + path: parameters + - key: MFA + expected: MyMFA + op: eq + path: parameters + - key: Delete.Objects.Object.2.VersionId + expected: MyObjectVersionId1 + op: eq + path: parameters + - key: Delete.Objects.Object.2.Key + expected: MyObjectKey1 + op: eq + path: parameters + - key: Delete.Quiet + expected: 1 + op: eq + path: parameters + - expected: POST + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + op: eq + - expected: delete + path: uri + op: eq + - expected: /oneoffpaws? + path: uri + op: eq + diff --git a/t/09_requests/s3-get-bucket-accelerate-configuration.request b/t/09_requests/s3-get-bucket-accelerate-configuration.request new file mode 100644 index 0000000000..181e780d7e --- /dev/null +++ b/t/09_requests/s3-get-bucket-accelerate-configuration.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-get-bucket-accelerate-configuration.request.test.yml b/t/09_requests/s3-get-bucket-accelerate-configuration.request.test.yml new file mode 100644 index 0000000000..55aff0ee68 --- /dev/null +++ b/t/09_requests/s3-get-bucket-accelerate-configuration.request.test.yml @@ -0,0 +1,22 @@ +--- +call: GetBucketAccelerateConfiguration +service: S3 +tests: + - expected: '' + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws?accelerate + path: url + - expected: /oneoffpaws? + op: eq + path: uri + - expected: accelerate + op: eq + path: uri diff --git a/t/09_requests/s3-get-bucket-acl.request b/t/09_requests/s3-get-bucket-acl.request new file mode 100644 index 0000000000..44f816655d --- /dev/null +++ b/t/09_requests/s3-get-bucket-acl.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-get-bucket-acl.request.test.yml b/t/09_requests/s3-get-bucket-acl.request.test.yml new file mode 100644 index 0000000000..d327ddcc3e --- /dev/null +++ b/t/09_requests/s3-get-bucket-acl.request.test.yml @@ -0,0 +1,18 @@ +--- +call: GetBucketAcl +service: S3 +tests: + - expected: '' + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws + path: url + - expected: /oneoffpaws + path: uri diff --git a/t/09_requests/s3-get-bucket-bucket-analytics-configurations.request b/t/09_requests/s3-get-bucket-bucket-analytics-configurations.request new file mode 100644 index 0000000000..33d248d7c6 --- /dev/null +++ b/t/09_requests/s3-get-bucket-bucket-analytics-configurations.request @@ -0,0 +1,4 @@ +--- +Id: test1333 +Bucket: oneoffpaws + diff --git a/t/09_requests/s3-get-bucket-bucket-analytics-configurations.request.test.yml b/t/09_requests/s3-get-bucket-bucket-analytics-configurations.request.test.yml new file mode 100644 index 0000000000..73e00e2ac0 --- /dev/null +++ b/t/09_requests/s3-get-bucket-bucket-analytics-configurations.request.test.yml @@ -0,0 +1,31 @@ +--- +call: GetBucketAnalyticsConfiguration +service: S3 +tests: + - expected: '' + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: test1333 + op: eq + path: parameters + key: id + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: id=test1333 + path: url + - expected: analytics= + path: url + - expected: /oneoffpaws? + path: uri + - expected: id=test1333 + path: uri + - expected: analytics= + path: uri + diff --git a/t/09_requests/s3-get-bucket-cors.request b/t/09_requests/s3-get-bucket-cors.request new file mode 100644 index 0000000000..181e780d7e --- /dev/null +++ b/t/09_requests/s3-get-bucket-cors.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-get-bucket-cors.request.test.yml b/t/09_requests/s3-get-bucket-cors.request.test.yml new file mode 100644 index 0000000000..a7f63b2b11 --- /dev/null +++ b/t/09_requests/s3-get-bucket-cors.request.test.yml @@ -0,0 +1,23 @@ +--- +call: GetBucketCors +service: S3 +tests: + - expected: '' + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: cors + path: url + - expected: /oneoffpaws? + path: uri + - expected: cors + path: uri + diff --git a/t/09_requests/s3-get-bucket-encryption.request b/t/09_requests/s3-get-bucket-encryption.request new file mode 100644 index 0000000000..44f816655d --- /dev/null +++ b/t/09_requests/s3-get-bucket-encryption.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-get-bucket-encryption.request.test.yml b/t/09_requests/s3-get-bucket-encryption.request.test.yml new file mode 100644 index 0000000000..cc655bc4e6 --- /dev/null +++ b/t/09_requests/s3-get-bucket-encryption.request.test.yml @@ -0,0 +1,20 @@ +--- +call: GetBucketEncryption +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: encryption + path: url + - expected: /oneoffpaws + path: uri + - expected: encryption + path: url + diff --git a/t/09_requests/s3-get-bucket-inventory-configuration.request b/t/09_requests/s3-get-bucket-inventory-configuration.request new file mode 100644 index 0000000000..5bf929d10e --- /dev/null +++ b/t/09_requests/s3-get-bucket-inventory-configuration.request @@ -0,0 +1,3 @@ +--- +Bucket: oneoffpaws +Id: Test_Inventory diff --git a/t/09_requests/s3-get-bucket-inventory-configuration.request.test.yml b/t/09_requests/s3-get-bucket-inventory-configuration.request.test.yml new file mode 100644 index 0000000000..8042710f20 --- /dev/null +++ b/t/09_requests/s3-get-bucket-inventory-configuration.request.test.yml @@ -0,0 +1,27 @@ +--- +call: GetBucketInventoryConfiguration +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: Test_Inventory + op: eq + path: parameters + key: id + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: id=Test_Inventory + path: url + - expected: inventory= + path: url + - expected: /oneoffpaws? + path: uri + - expected: id=Test_Inventory + path: uri + - expected: inventory= + path: uri diff --git a/t/09_requests/s3-get-bucket-lifecycle-configuration.request b/t/09_requests/s3-get-bucket-lifecycle-configuration.request new file mode 100644 index 0000000000..181e780d7e --- /dev/null +++ b/t/09_requests/s3-get-bucket-lifecycle-configuration.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-get-bucket-lifecycle-configuration.request.test.yml b/t/09_requests/s3-get-bucket-lifecycle-configuration.request.test.yml new file mode 100644 index 0000000000..aebc492674 --- /dev/null +++ b/t/09_requests/s3-get-bucket-lifecycle-configuration.request.test.yml @@ -0,0 +1,19 @@ +--- +call: GetBucketLifecycleConfiguration +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: lifecycle + path: url + - expected: lifecycle + path: uri + - expected: /oneoffpaws? + path: uri diff --git a/t/09_requests/s3-get-bucket-location.request b/t/09_requests/s3-get-bucket-location.request new file mode 100644 index 0000000000..181e780d7e --- /dev/null +++ b/t/09_requests/s3-get-bucket-location.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-get-bucket-location.request.test.yml b/t/09_requests/s3-get-bucket-location.request.test.yml new file mode 100644 index 0000000000..dfa39bad5d --- /dev/null +++ b/t/09_requests/s3-get-bucket-location.request.test.yml @@ -0,0 +1,19 @@ +--- +call: GetBucketLocation +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: location + path: url + - expected: /oneoffpaws? + path: uri + - expected: location + path: uri diff --git a/t/09_requests/s3-get-bucket-logging.request b/t/09_requests/s3-get-bucket-logging.request new file mode 100644 index 0000000000..44f816655d --- /dev/null +++ b/t/09_requests/s3-get-bucket-logging.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-get-bucket-logging.request.test.yml b/t/09_requests/s3-get-bucket-logging.request.test.yml new file mode 100644 index 0000000000..24ad6f46c2 --- /dev/null +++ b/t/09_requests/s3-get-bucket-logging.request.test.yml @@ -0,0 +1,22 @@ +--- +call: GetBucketLogging +service: S3 +tests: + - expected: '' + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws + path: url + - expected: logging + path: url + - expected: /oneoffpaws? + path: uri + - expected: logging + path: uri diff --git a/t/09_requests/s3-get-bucket-metrics-configuration.request b/t/09_requests/s3-get-bucket-metrics-configuration.request new file mode 100644 index 0000000000..28b4083de9 --- /dev/null +++ b/t/09_requests/s3-get-bucket-metrics-configuration.request @@ -0,0 +1,3 @@ +--- +Bucket: oneoffpaws +Id: somconfig diff --git a/t/09_requests/s3-get-bucket-metrics-configuration.request.test.yml b/t/09_requests/s3-get-bucket-metrics-configuration.request.test.yml new file mode 100644 index 0000000000..88b53b1f0d --- /dev/null +++ b/t/09_requests/s3-get-bucket-metrics-configuration.request.test.yml @@ -0,0 +1,27 @@ +--- +call: GetBucketMetricsConfiguration +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: somconfig + op: eq + path: parameters + key: id + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: metrics= + path: url + - expected: id=somconfig + path: url + - expected: id=somconfig + path: uri + - expected: metrics= + path: uri + - expected: /oneoffpaws? + path: uri diff --git a/t/09_requests/s3-get-bucket-notification-configuration.request b/t/09_requests/s3-get-bucket-notification-configuration.request new file mode 100644 index 0000000000..181e780d7e --- /dev/null +++ b/t/09_requests/s3-get-bucket-notification-configuration.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-get-bucket-notification-configuration.request.test.yml b/t/09_requests/s3-get-bucket-notification-configuration.request.test.yml new file mode 100644 index 0000000000..a46035d70b --- /dev/null +++ b/t/09_requests/s3-get-bucket-notification-configuration.request.test.yml @@ -0,0 +1,19 @@ +--- +call: GetBucketNotificationConfiguration +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: notification + path: uri + - expected: notification + path: uri + - expected: /oneoffpaws? + path: uri diff --git a/t/09_requests/s3-get-bucket-policy-status.request b/t/09_requests/s3-get-bucket-policy-status.request new file mode 100644 index 0000000000..181e780d7e --- /dev/null +++ b/t/09_requests/s3-get-bucket-policy-status.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-get-bucket-policy-status.request.test.yml b/t/09_requests/s3-get-bucket-policy-status.request.test.yml new file mode 100644 index 0000000000..7aaf1ad52c --- /dev/null +++ b/t/09_requests/s3-get-bucket-policy-status.request.test.yml @@ -0,0 +1,19 @@ +--- +call: GetBucketPolicyStatus +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: policyStatus + path: uri + - expected: policyStatus + path: uri + - expected: /oneoffpaws? + path: uri diff --git a/t/09_requests/s3-get-bucket-policy.request b/t/09_requests/s3-get-bucket-policy.request new file mode 100644 index 0000000000..181e780d7e --- /dev/null +++ b/t/09_requests/s3-get-bucket-policy.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-get-bucket-policy.request.test.yml b/t/09_requests/s3-get-bucket-policy.request.test.yml new file mode 100644 index 0000000000..8efeb845be --- /dev/null +++ b/t/09_requests/s3-get-bucket-policy.request.test.yml @@ -0,0 +1,22 @@ +--- +call: GetBucketPolicy +service: S3 +tests: + - expected: '' + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: policy + path: url + - expected: /oneoffpaws? + path: uri + - expected: policy + path: uri diff --git a/t/09_requests/s3-get-bucket-public-access-block.request b/t/09_requests/s3-get-bucket-public-access-block.request new file mode 100644 index 0000000000..181e780d7e --- /dev/null +++ b/t/09_requests/s3-get-bucket-public-access-block.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-get-bucket-public-access-block.request.test.yml b/t/09_requests/s3-get-bucket-public-access-block.request.test.yml new file mode 100644 index 0000000000..81d6c45c5b --- /dev/null +++ b/t/09_requests/s3-get-bucket-public-access-block.request.test.yml @@ -0,0 +1,23 @@ +--- +call: GetPublicAccessBlock +service: S3 +tests: + - expected: '' + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: publicAccessBlock + path: url + - expected: /oneoffpaws? + path: uri + - expected: publicAccessBlock + path: uri + diff --git a/t/09_requests/s3-get-bucket-replication.request b/t/09_requests/s3-get-bucket-replication.request new file mode 100644 index 0000000000..44f816655d --- /dev/null +++ b/t/09_requests/s3-get-bucket-replication.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-get-bucket-replication.request.test.yml b/t/09_requests/s3-get-bucket-replication.request.test.yml new file mode 100644 index 0000000000..c9ae1ae91b --- /dev/null +++ b/t/09_requests/s3-get-bucket-replication.request.test.yml @@ -0,0 +1,20 @@ +--- +call: GetBucketReplication +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: replication + path: url + - expected: /oneoffpaws + path: uri + - expected: replication + path: url + diff --git a/t/09_requests/s3-get-bucket-request-payment.request b/t/09_requests/s3-get-bucket-request-payment.request new file mode 100644 index 0000000000..181e780d7e --- /dev/null +++ b/t/09_requests/s3-get-bucket-request-payment.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-get-bucket-request-payment.request.test.yml b/t/09_requests/s3-get-bucket-request-payment.request.test.yml new file mode 100644 index 0000000000..7dc6aaf640 --- /dev/null +++ b/t/09_requests/s3-get-bucket-request-payment.request.test.yml @@ -0,0 +1,19 @@ +--- +call: GetBucketRequestPayment +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: requestPayment + path: uri + - expected: requestPayment + path: uri + - expected: /oneoffpaws? + path: uri diff --git a/t/09_requests/s3-get-bucket-tagging.request b/t/09_requests/s3-get-bucket-tagging.request new file mode 100644 index 0000000000..181e780d7e --- /dev/null +++ b/t/09_requests/s3-get-bucket-tagging.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-get-bucket-tagging.request.test.yml b/t/09_requests/s3-get-bucket-tagging.request.test.yml new file mode 100644 index 0000000000..5f98becd6c --- /dev/null +++ b/t/09_requests/s3-get-bucket-tagging.request.test.yml @@ -0,0 +1,19 @@ +--- +call: GetBucketTagging +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: GET + op: eq + path: method + - expected: /oneoffpaws? + path: uri + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: tagging + path: uri + - expected: tagging + path: url diff --git a/t/09_requests/s3-get-bucket-versioning.request b/t/09_requests/s3-get-bucket-versioning.request new file mode 100644 index 0000000000..181e780d7e --- /dev/null +++ b/t/09_requests/s3-get-bucket-versioning.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-get-bucket-versioning.request.test.yml b/t/09_requests/s3-get-bucket-versioning.request.test.yml new file mode 100644 index 0000000000..9f4eb62aae --- /dev/null +++ b/t/09_requests/s3-get-bucket-versioning.request.test.yml @@ -0,0 +1,19 @@ +--- +call: GetBucketVersioning +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: versioning + path: uri + - expected: versioning + path: uri + - expected: /oneoffpaws? + path: uri diff --git a/t/09_requests/s3-get-bucket-website.request b/t/09_requests/s3-get-bucket-website.request new file mode 100644 index 0000000000..44f816655d --- /dev/null +++ b/t/09_requests/s3-get-bucket-website.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-get-bucket-website.request.test.yml b/t/09_requests/s3-get-bucket-website.request.test.yml new file mode 100644 index 0000000000..4649d1cc77 --- /dev/null +++ b/t/09_requests/s3-get-bucket-website.request.test.yml @@ -0,0 +1,20 @@ +--- +call: GetBucketWebsite +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: website + path: url + - expected: /oneoffpaws + path: uri + - expected: website + path: url + diff --git a/t/09_requests/s3-get-head-bucket.request b/t/09_requests/s3-get-head-bucket.request new file mode 100644 index 0000000000..44f816655d --- /dev/null +++ b/t/09_requests/s3-get-head-bucket.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-get-head-bucket.request.test.yml b/t/09_requests/s3-get-head-bucket.request.test.yml new file mode 100644 index 0000000000..ebcf701af9 --- /dev/null +++ b/t/09_requests/s3-get-head-bucket.request.test.yml @@ -0,0 +1,17 @@ +--- +call: HeadBucket +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: HEAD + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws + path: url + op: eq + - expected: /oneoffpaws + path: uri + op: eq diff --git a/t/09_requests/s3-get-head-object.request b/t/09_requests/s3-get-head-object.request new file mode 100644 index 0000000000..313f97a151 --- /dev/null +++ b/t/09_requests/s3-get-head-object.request @@ -0,0 +1,3 @@ +--- +Bucket: oneoffpaws +Key: one/to/delete/image.jpg diff --git a/t/09_requests/s3-get-head-object.request.test.yml b/t/09_requests/s3-get-head-object.request.test.yml new file mode 100644 index 0000000000..00085cef35 --- /dev/null +++ b/t/09_requests/s3-get-head-object.request.test.yml @@ -0,0 +1,21 @@ +--- +call: HeadObject +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - key: Key + expected: one/to/delete/image.jpg + op: eq + path: parameters + - expected: HEAD + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws/one/to/delete/image.jpg + path: url + op: eq + - expected: /oneoffpaws/one/to/delete/image.jpg + path: uri + op: eq diff --git a/t/09_requests/s3-get-list-buckets.request b/t/09_requests/s3-get-list-buckets.request new file mode 100644 index 0000000000..ed97d539c0 --- /dev/null +++ b/t/09_requests/s3-get-list-buckets.request @@ -0,0 +1 @@ +--- diff --git a/t/09_requests/s3-get-list-buckets.request.test.yml b/t/09_requests/s3-get-list-buckets.request.test.yml new file mode 100644 index 0000000000..ba19a6a937 --- /dev/null +++ b/t/09_requests/s3-get-list-buckets.request.test.yml @@ -0,0 +1,13 @@ +--- +call: ListBuckets +service: S3 +tests: + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com + path: url + op: eq + - expected: / + path: uri + op: eq diff --git a/t/09_requests/s3-get-object-acl.request b/t/09_requests/s3-get-object-acl.request new file mode 100644 index 0000000000..313f97a151 --- /dev/null +++ b/t/09_requests/s3-get-object-acl.request @@ -0,0 +1,3 @@ +--- +Bucket: oneoffpaws +Key: one/to/delete/image.jpg diff --git a/t/09_requests/s3-get-object-acl.request.test.yml b/t/09_requests/s3-get-object-acl.request.test.yml new file mode 100644 index 0000000000..42d027edf4 --- /dev/null +++ b/t/09_requests/s3-get-object-acl.request.test.yml @@ -0,0 +1,28 @@ +--- +call: GetObjectAcl +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - key: Key + expected: one/to/delete/image.jpg + op: eq + path: parameters + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws/one/to/delete/image.jpg + path: url + op: eq + - expected: /oneoffpaws/one/to/delete/image.jpg? + path: uri + op: eq + - expected: acl + path: url + op: eq + - expected: acl + path: uri + op: eq + diff --git a/t/09_requests/s3-get-object-legal-hold.request b/t/09_requests/s3-get-object-legal-hold.request new file mode 100644 index 0000000000..313f97a151 --- /dev/null +++ b/t/09_requests/s3-get-object-legal-hold.request @@ -0,0 +1,3 @@ +--- +Bucket: oneoffpaws +Key: one/to/delete/image.jpg diff --git a/t/09_requests/s3-get-object-legal-hold.request.test.yml b/t/09_requests/s3-get-object-legal-hold.request.test.yml new file mode 100644 index 0000000000..68416eabf4 --- /dev/null +++ b/t/09_requests/s3-get-object-legal-hold.request.test.yml @@ -0,0 +1,28 @@ +--- +call: GetObjectLegalHold +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - key: Key + expected: one/to/delete/image.jpg + op: eq + path: parameters + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws/one/to/delete/image.jpg + path: url + op: eq + - expected: /oneoffpaws/one/to/delete/image.jpg? + path: uri + op: eq + - expected: legal-hold + path: url + op: eq + - expected: legal-hold + path: uri + op: eq + diff --git a/t/09_requests/s3-get-object-lock-configuration.request b/t/09_requests/s3-get-object-lock-configuration.request new file mode 100644 index 0000000000..44f816655d --- /dev/null +++ b/t/09_requests/s3-get-object-lock-configuration.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-get-object-lock-configuration.request.test.yml b/t/09_requests/s3-get-object-lock-configuration.request.test.yml new file mode 100644 index 0000000000..86e22ffdf0 --- /dev/null +++ b/t/09_requests/s3-get-object-lock-configuration.request.test.yml @@ -0,0 +1,24 @@ +--- +call: GetObjectLockConfiguration +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + op: eq + - expected: /oneoffpaws? + path: uri + op: eq + - expected: object-lock + path: url + op: eq + - expected: object-lock + path: uri + op: eq + diff --git a/t/09_requests/s3-get-object-retention.request b/t/09_requests/s3-get-object-retention.request new file mode 100644 index 0000000000..313f97a151 --- /dev/null +++ b/t/09_requests/s3-get-object-retention.request @@ -0,0 +1,3 @@ +--- +Bucket: oneoffpaws +Key: one/to/delete/image.jpg diff --git a/t/09_requests/s3-get-object-retention.request.test.yml b/t/09_requests/s3-get-object-retention.request.test.yml new file mode 100644 index 0000000000..0598b612c7 --- /dev/null +++ b/t/09_requests/s3-get-object-retention.request.test.yml @@ -0,0 +1,28 @@ +--- +call: GetObjectRetention +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - key: Key + expected: one/to/delete/image.jpg + op: eq + path: parameters + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws/one/to/delete/image.jpg + path: url + op: eq + - expected: /oneoffpaws/one/to/delete/image.jpg? + path: uri + op: eq + - expected: retention + path: url + op: eq + - expected: retention + path: uri + op: eq + diff --git a/t/09_requests/s3-get-object-tagging.request b/t/09_requests/s3-get-object-tagging.request new file mode 100644 index 0000000000..db0890809c --- /dev/null +++ b/t/09_requests/s3-get-object-tagging.request @@ -0,0 +1,3 @@ +--- +Bucket: oneoffpaws +Key: lhf/insp/attachments/assigned/condition_1_1033233_275731_69069.jpg diff --git a/t/09_requests/s3-get-object-tagging.request.test.yml b/t/09_requests/s3-get-object-tagging.request.test.yml new file mode 100644 index 0000000000..1197871136 --- /dev/null +++ b/t/09_requests/s3-get-object-tagging.request.test.yml @@ -0,0 +1,23 @@ +--- +call: GetObjectTagging +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: lhf/insp/attachments/assigned/condition_1_1033233_275731_69069.jpg + op: eq + path: parameters + key: Key + - expected: GET + op: eq + path: method + - expected: /oneoffpaws/lhf/insp/attachments/assigned/condition_1_1033233_275731_69069.jpg + path: uri + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws/lhf/insp/attachments/assigned/condition_1_1033233_275731_69069.jpg + path: url + - expected: tagging + path: uri + - expected: tagging + path: url diff --git a/t/09_requests/s3-get-object-torrent.request b/t/09_requests/s3-get-object-torrent.request new file mode 100644 index 0000000000..313f97a151 --- /dev/null +++ b/t/09_requests/s3-get-object-torrent.request @@ -0,0 +1,3 @@ +--- +Bucket: oneoffpaws +Key: one/to/delete/image.jpg diff --git a/t/09_requests/s3-get-object-torrent.request.test.yml b/t/09_requests/s3-get-object-torrent.request.test.yml new file mode 100644 index 0000000000..0af5aee7c2 --- /dev/null +++ b/t/09_requests/s3-get-object-torrent.request.test.yml @@ -0,0 +1,28 @@ +--- +call: GetObjectTorrent +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - key: Key + expected: one/to/delete/image.jpg + op: eq + path: parameters + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws/one/to/delete/image.jpg + path: url + op: eq + - expected: /oneoffpaws/one/to/delete/image.jpg? + path: uri + op: eq + - expected: torrent + path: url + op: eq + - expected: torrent + path: uri + op: eq + diff --git a/t/09_requests/s3-get-object.request b/t/09_requests/s3-get-object.request new file mode 100644 index 0000000000..313f97a151 --- /dev/null +++ b/t/09_requests/s3-get-object.request @@ -0,0 +1,3 @@ +--- +Bucket: oneoffpaws +Key: one/to/delete/image.jpg diff --git a/t/09_requests/s3-get-object.request.test.yml b/t/09_requests/s3-get-object.request.test.yml new file mode 100644 index 0000000000..c25b8dcff0 --- /dev/null +++ b/t/09_requests/s3-get-object.request.test.yml @@ -0,0 +1,22 @@ +--- +call: GetObject +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - key: Key + expected: one/to/delete/image.jpg + op: eq + path: parameters + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws/one/to/delete/image.jpg + path: url + op: eq + - expected: /oneoffpaws/one/to/delete/image.jpg + path: url + op: eq + diff --git a/t/09_requests/s3-list-bucket-bucket-analytics-configurations.request b/t/09_requests/s3-list-bucket-bucket-analytics-configurations.request new file mode 100644 index 0000000000..181e780d7e --- /dev/null +++ b/t/09_requests/s3-list-bucket-bucket-analytics-configurations.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-list-bucket-bucket-analytics-configurations.request.test.yml b/t/09_requests/s3-list-bucket-bucket-analytics-configurations.request.test.yml new file mode 100644 index 0000000000..54d5a5ccfa --- /dev/null +++ b/t/09_requests/s3-list-bucket-bucket-analytics-configurations.request.test.yml @@ -0,0 +1,19 @@ +--- +call: ListBucketAnalyticsConfigurations +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: analytics + path: url + - expected: /oneoffpaws? + path: uri + - expected: analytics + path: uri diff --git a/t/09_requests/s3-list-bucket-inventory-configuration.request b/t/09_requests/s3-list-bucket-inventory-configuration.request new file mode 100644 index 0000000000..181e780d7e --- /dev/null +++ b/t/09_requests/s3-list-bucket-inventory-configuration.request @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-list-bucket-inventory-configuration.request.test.yml b/t/09_requests/s3-list-bucket-inventory-configuration.request.test.yml new file mode 100644 index 0000000000..d4173a70dd --- /dev/null +++ b/t/09_requests/s3-list-bucket-inventory-configuration.request.test.yml @@ -0,0 +1,19 @@ +--- +call: ListBucketInventoryConfigurations +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: inventory + path: url + - expected: /oneoffpaws? + path: uri + - expected: inventory + path: uri diff --git a/t/09_requests/s3-list-bucket-metrics-configuration b/t/09_requests/s3-list-bucket-metrics-configuration new file mode 100644 index 0000000000..181e780d7e --- /dev/null +++ b/t/09_requests/s3-list-bucket-metrics-configuration @@ -0,0 +1,2 @@ +--- +Bucket: oneoffpaws diff --git a/t/09_requests/s3-list-bucket-metrics-configuration.test.yml b/t/09_requests/s3-list-bucket-metrics-configuration.test.yml new file mode 100644 index 0000000000..47374f82c5 --- /dev/null +++ b/t/09_requests/s3-list-bucket-metrics-configuration.test.yml @@ -0,0 +1,19 @@ +--- +call: ListBucketMetricsConfigurations +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: metrics + path: url + - expected: /oneoffpaws? + path: uri + - expected: metrics + path: uri diff --git a/t/09_requests/s3-list-multi-parts.request b/t/09_requests/s3-list-multi-parts.request new file mode 100644 index 0000000000..9dd7f67038 --- /dev/null +++ b/t/09_requests/s3-list-multi-parts.request @@ -0,0 +1,8 @@ +--- +Bucket: oneoffpaws +Delimiter: MyDelimiter +EncodingType: url +KeyMarker: MyKeyMarker +MaxUploads: 1 +Prefix: MyPrefix +UploadIdMarker: MyUploadIdMarker diff --git a/t/09_requests/s3-list-multi-parts.request.test.yml b/t/09_requests/s3-list-multi-parts.request.test.yml new file mode 100644 index 0000000000..c1d3669076 --- /dev/null +++ b/t/09_requests/s3-list-multi-parts.request.test.yml @@ -0,0 +1,80 @@ +--- +call: ListMultipartUploads +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: MyUploadIdMarker + op: eq + path: parameters + key: upload-id-marker + - expected: 1 + op: eq + path: parameters + key: max-uploads + - expected: url + op: eq + path: parameters + key: encoding-type + - expected: MyDelimiter + op: eq + path: parameters + key: delimiter + - expected: MyPrefix + op: eq + path: parameters + key: prefix + - expected: MyKeyMarker + op: eq + path: parameters + key: key-marker + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + ep: eq + path: url + - expected: prefix=MyPrefix + ep: eq + path: url + - expected: uploads + ep: eq + path: url + - expected: delimiter=MyDelimiter + ep: eq + path: url + - expected: encoding-type=url + ep: eq + path: url + - expected: max-uploads=1 + ep: eq + path: url + - expected: upload-id-marker=MyUploadIdMarker + ep: eq + path: url + - expected: key-marker=MyKeyMarker + ep: eq + path: url + - expected: prefix=MyPrefix + ep: eq + path: uri + - expected: uploads + ep: eq + path: uri + - expected: delimiter=MyDelimiter + ep: eq + path: uri + - expected: encoding-type=url + ep: eq + path: uri + - expected: max-uploads=1 + ep: eq + path: uri + - expected: upload-id-marker=MyUploadIdMarker + ep: eq + path: uri + - expected: key-marker=MyKeyMarker + ep: eq + path: uri diff --git a/t/09_requests/s3-list-object-v2-versions.request b/t/09_requests/s3-list-object-v2-versions.request new file mode 100644 index 0000000000..c6876ed8d2 --- /dev/null +++ b/t/09_requests/s3-list-object-v2-versions.request @@ -0,0 +1,10 @@ +--- +Bucket: oneoffpaws +ContinuationToken: Mytoken +Delimiter: MyDelimiter +EncodingType: url +FetchOwner: 1 +RequestPayer: requester +MaxKeys: 1 +Prefix: MyPrefix +StartAfter: MyStartAfter diff --git a/t/09_requests/s3-list-object-v2-versions.request.test.yml b/t/09_requests/s3-list-object-v2-versions.request.test.yml new file mode 100644 index 0000000000..6320f5743d --- /dev/null +++ b/t/09_requests/s3-list-object-v2-versions.request.test.yml @@ -0,0 +1,50 @@ +--- +call: ListObjectsV2 +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: delimiter=MyDelimiter + path: url + - expected: /oneoffpaws? + path: url + - expected: continuation-token=Mytoken + path: url + - expected: start-after=MyStartAfter + path: url + - expected: encoding-type=url + path: url + - expected: prefix=MyPrefix + path: url + - expected: max-keys=1 + path: url + - expected: list-type=2 + path: url + - expected: fetch-owner=1 + path: uri + - expected: delimiter=MyDelimiter + path: uri + - expected: /oneoffpaws? + path: uri + - expected: continuation-token=Mytoken + path: uri + - expected: start-after=MyStartAfter + path: uri + - expected: encoding-type=url + path: uri + - expected: prefix=MyPrefix + path: uri + - expected: max-keys=1 + path: uri + - expected: list-type=2 + path: uri + - expected: fetch-owner=1 + path: uri + diff --git a/t/09_requests/s3-list-object-versions.request b/t/09_requests/s3-list-object-versions.request new file mode 100644 index 0000000000..07f77f14f3 --- /dev/null +++ b/t/09_requests/s3-list-object-versions.request @@ -0,0 +1,8 @@ +--- +Bucket: oneoffpaws +Delimiter: MyDelimiter +EncodingType: url +KeyMarker: MyKeyMarker +MaxKeys: 1 +Prefix: MyPrefix +VersionIdMarker: MyVersionIdMarker diff --git a/t/09_requests/s3-list-object-versions.request.test.yml b/t/09_requests/s3-list-object-versions.request.test.yml new file mode 100644 index 0000000000..5842897243 --- /dev/null +++ b/t/09_requests/s3-list-object-versions.request.test.yml @@ -0,0 +1,45 @@ +--- +call: ListObjectVersions +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: key-marker=MyKeyMarker + path: url + - expected: /oneoffpaws? + path: url + - expected: version-id-marker=MyVersionIdMarker + path: url + - expected: encoding-type=url + path: url + - expected: max-keys=1 + path: url + - expected: versions= + path: url + - expected: delimiter=MyDelimiter + path: url + - expected: prefix=MyPrefix + path: url + - expected: key-marker=MyKeyMarker + path: uri + - expected: /oneoffpaws? + path: uri + - expected: version-id-marker=MyVersionIdMarker + path: uri + - expected: encoding-type=url + path: uri + - expected: max-keys=1 + path: uri + - expected: versions= + path: uri + - expected: delimiter=MyDelimiter + path: uri + - expected: prefix=MyPrefix + path: uri diff --git a/t/09_requests/s3-list-parts.request b/t/09_requests/s3-list-parts.request new file mode 100644 index 0000000000..45f4ee5219 --- /dev/null +++ b/t/09_requests/s3-list-parts.request @@ -0,0 +1,7 @@ +--- +Bucket: oneoffpaws +Key: Some Key +UploadId: AN Id +PartNumberMarker: 1 +RequestPayer: requester + diff --git a/t/09_requests/s3-list-parts.request.test.yml b/t/09_requests/s3-list-parts.request.test.yml new file mode 100644 index 0000000000..a8dc4898bf --- /dev/null +++ b/t/09_requests/s3-list-parts.request.test.yml @@ -0,0 +1,45 @@ +--- +call: ListParts +service: S3 +tests: + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: AN Id + op: eq + path: parameters + key: uploadId + - expected: Some Key + op: eq + path: parameters + key: Key + - expected: requester + op: eq + path: parameters + key: RequestPayer + - expected: 1 + op: eq + path: parameters + key: part-number-marker + - expected: GET + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws/Some%20Key? + ep: eq + path: url + - expected: uploadId=AN+Id + ep: eq + path: url + - expected: /oneoffpaws/Some%20Key + ep: eq + path: uri + - expected: uploadId=AN+Id + ep: eq + path: uri + - expected: uploadId=AN+Id + ep: eq + path: uri + - expected: part-number-marker=1 + ep: eq + path: url diff --git a/t/09_requests/s3-object-restore.request b/t/09_requests/s3-object-restore.request new file mode 100644 index 0000000000..586304111b --- /dev/null +++ b/t/09_requests/s3-object-restore.request @@ -0,0 +1,7 @@ +--- +Bucket: oneoffpaws +Key: lhf/insp/attachments/assigned/condition_1_1033233_275731_69069.jpg +RestoreRequest: + Days: 2 + GlacierJobParameters: + Tier: Standard diff --git a/t/09_requests/s3-object-restore.request.test.yml b/t/09_requests/s3-object-restore.request.test.yml new file mode 100644 index 0000000000..feae40f4e8 --- /dev/null +++ b/t/09_requests/s3-object-restore.request.test.yml @@ -0,0 +1,37 @@ +--- +call: RestoreObject +service: S3 +tests: + - expected: 2Standard + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: 2 + op: eq + path: parameters + key: RestoreRequest.Days + - expected: lhf/insp/attachments/assigned/condition_1_1033233_275731_69069.jpg + op: eq + path: parameters + key: Key + - expected: Standard + op: eq + path: parameters + key: RestoreRequest.GlacierJobParameters.Tier + - path: parameters + key: versionId + key: AccessControlPolicy.Grants.Grant.1.Grantee.DisplayName + - expected: POST + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws/lhf/insp/attachments/assigned/condition_1_1033233_275731_69069.jpg + path: url + - expected: restore + path: url + - expected: /oneoffpaws/lhf/insp/attachments/assigned/condition_1_1033233_275731_69069.jpg + path: uri + - expected: restore + path: uri diff --git a/t/09_requests/s3-put-bucket-accelerate-configuration.request b/t/09_requests/s3-put-bucket-accelerate-configuration.request new file mode 100644 index 0000000000..07aeed5cb8 --- /dev/null +++ b/t/09_requests/s3-put-bucket-accelerate-configuration.request @@ -0,0 +1,4 @@ +--- +Bucket: oneoffpaws +AccelerateConfiguration: + Status: Suspended diff --git a/t/09_requests/s3-put-bucket-accelerate-configuration.request.test.yml b/t/09_requests/s3-put-bucket-accelerate-configuration.request.test.yml new file mode 100644 index 0000000000..65ab30ce52 --- /dev/null +++ b/t/09_requests/s3-put-bucket-accelerate-configuration.request.test.yml @@ -0,0 +1,27 @@ +--- +call: PutBucketAccelerateConfiguration +service: S3 +tests: + - expected: Suspended + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: Suspended + op: eq + path: parameters + key: AccelerateConfiguration.Status + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: accelerate + path: url + - expected: /oneoffpaws? + path: uri + - expected: accelerate + path: uri + diff --git a/t/09_requests/s3-put-bucket-acl.request b/t/09_requests/s3-put-bucket-acl.request new file mode 100644 index 0000000000..d4d65236d6 --- /dev/null +++ b/t/09_requests/s3-put-bucket-acl.request @@ -0,0 +1,12 @@ +--- +Bucket: oneoffpaws +AccessControlPolicy: + Owner: + ID: 852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID + DisplayName: Nothing + Grants: + - Grantee: + Type: CanonicalUser + DisplayName: OwnerDisplayName + ID: 852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID + Permission: FULL_CONTROL diff --git a/t/09_requests/s3-put-bucket-acl.request.test.yml b/t/09_requests/s3-put-bucket-acl.request.test.yml new file mode 100644 index 0000000000..87ed642e29 --- /dev/null +++ b/t/09_requests/s3-put-bucket-acl.request.test.yml @@ -0,0 +1,46 @@ +--- +call: PutBucketAcl +service: S3 +tests: + - expected: OwnerDisplayName852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserIDFULL_CONTROLNothing852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: FULL_CONTROL + op: eq + path: parameters + key: AccessControlPolicy.Grants.Grant.1.Permission + - expected: Nothing + op: eq + path: parameters + key: AccessControlPolicy.Owner.DisplayName + - expected: CanonicalUser + op: eq + path: parameters + key: AccessControlPolicy.Grants.Grant.1.Grantee.Type + - expected: 852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID + op: eq + path: parameters + key: AccessControlPolicy.Grants.Grant.1.Grantee.ID + - expected: 852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID + op: eq + path: parameters + key: AccessControlPolicy.Owner.ID + - expected: OwnerDisplayName + op: eq + path: parameters + key: AccessControlPolicy.Grants.Grant.1.Grantee.DisplayName + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: acl + path: url + - expected: /oneoffpaws? + path: uri + - expected: acl + path: uri diff --git a/t/09_requests/s3-put-bucket-bucket-analytics-configurations.request b/t/09_requests/s3-put-bucket-bucket-analytics-configurations.request new file mode 100644 index 0000000000..2b7d765cfa --- /dev/null +++ b/t/09_requests/s3-put-bucket-bucket-analytics-configurations.request @@ -0,0 +1,13 @@ +--- +AnalyticsConfiguration: + Id: test1333 + StorageClassAnalysis: + DataExport: + Destination: + S3BucketDestination: + Prefix: Test + Format: CSV + Bucket: arn:aws:s3:::cargotel-logs + OutputSchemaVersion: V_1 +Bucket: oneoffpaws +Id: test1333 diff --git a/t/09_requests/s3-put-bucket-bucket-analytics-configurations.request.test.yml b/t/09_requests/s3-put-bucket-bucket-analytics-configurations.request.test.yml new file mode 100644 index 0000000000..1ffc59abda --- /dev/null +++ b/t/09_requests/s3-put-bucket-bucket-analytics-configurations.request.test.yml @@ -0,0 +1,54 @@ +--- +call: PutBucketAnalyticsConfiguration +service: S3 +tests: + - expected: test1333arn:aws:s3:::cargotel-logsCSVTestV_1 + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: test1333 + op: eq + path: parameters + key: AnalyticsConfiguration.Id + - expected: V_1 + op: eq + path: parameters + key: AnalyticsConfiguration.StorageClassAnalysis.DataExport.OutputSchemaVersion + - expected: arn:aws:s3:::cargotel-logs + op: eq + path: parameters + key: AnalyticsConfiguration.StorageClassAnalysis.DataExport.Destination.S3BucketDestination.Bucket + - expected: test1333 + op: eq + path: parameters + key: id + - expected: arn:aws:s3:::cargotel-logs + op: eq + path: parameters + key: AnalyticsConfiguration.StorageClassAnalysis.DataExport.Destination.S3BucketDestination.Bucket + - expected: Test + op: eq + path: parameters + key: AnalyticsConfiguration.StorageClassAnalysis.DataExport.Destination.S3BucketDestination.Prefix + - expected: CSV + op: eq + path: parameters + key: AnalyticsConfiguration.StorageClassAnalysis.DataExport.Destination.S3BucketDestination.Format + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: id=test1333 + path: url + - expected: analytics= + path: url + - expected: /oneoffpaws? + path: uri + - expected: id=test1333 + path: uri + - expected: analytics= + path: uri diff --git a/t/09_requests/s3-put-bucket-cors.request b/t/09_requests/s3-put-bucket-cors.request new file mode 100644 index 0000000000..4eeabe4c7c --- /dev/null +++ b/t/09_requests/s3-put-bucket-cors.request @@ -0,0 +1,15 @@ +--- +Bucket: oneoffpaws +CORSConfiguration: + CORSRules: + - AllowedOrigins: + - http://www.example.com + AllowedMethods: + - PUT + - POST + - DELETE, + - AllowedOrigins: + - http://www.aws.com + AllowedMethods: + - PUT + - POST diff --git a/t/09_requests/s3-put-bucket-cors.request.test.yml b/t/09_requests/s3-put-bucket-cors.request.test.yml new file mode 100644 index 0000000000..4120e6dc17 --- /dev/null +++ b/t/09_requests/s3-put-bucket-cors.request.test.yml @@ -0,0 +1,38 @@ +--- +call: PutBucketCors +service: S3 +tests: + - expected: PUTPOSTDELETE,http://www.example.comPUTPOSThttp://www.aws.com + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: http://www.aws.com + op: eq + path: parameters + key: CORSConfiguration.CORSRules.CORSRule.2.AllowedOrigins.1 + - expected: PUT + op: eq + path: parameters + key: CORSConfiguration.CORSRules.CORSRule.1.AllowedMethods.1 + - expected: POST + op: eq + path: parameters + key: CORSConfiguration.CORSRules.CORSRule.2.AllowedMethods.2 + - expected: POST + op: eq + path: parameters + key: CORSConfiguration.CORSRules.CORSRule.1.AllowedMethods.2 + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: cors + path: url + - expected: /oneoffpaws? + path: uri + - expected: cors + path: uri diff --git a/t/09_requests/s3-put-bucket-encryption.request b/t/09_requests/s3-put-bucket-encryption.request new file mode 100644 index 0000000000..dedc606784 --- /dev/null +++ b/t/09_requests/s3-put-bucket-encryption.request @@ -0,0 +1,7 @@ +--- +Bucket: oneoffpaws +ServerSideEncryptionConfiguration: + Rules: + - ApplyServerSideEncryptionByDefault: + KMSMasterKeyID: xxxxxswsddfsdfsrew + SSEAlgorithm: aws:kms diff --git a/t/09_requests/s3-put-bucket-encryption.request.test.yml b/t/09_requests/s3-put-bucket-encryption.request.test.yml new file mode 100644 index 0000000000..f8a023f438 --- /dev/null +++ b/t/09_requests/s3-put-bucket-encryption.request.test.yml @@ -0,0 +1,22 @@ +--- +call: PutBucketEncryption +service: S3 +tests: + - expected: xxxxxswsddfsdfsrewaws:kms + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: encryption + path: url + - expected: /oneoffpaws? + path: uri + - expected: encryption + path: uri diff --git a/t/09_requests/s3-put-bucket-inventory-configuration.request b/t/09_requests/s3-put-bucket-inventory-configuration.request new file mode 100644 index 0000000000..604c3b1a25 --- /dev/null +++ b/t/09_requests/s3-put-bucket-inventory-configuration.request @@ -0,0 +1,13 @@ +--- +Bucket: oneoffpaws +InventoryConfiguration: + Destination: + S3BucketDestination: + Bucket: arn:aws:s3:oneoffpaws + Format: CSV + IsEnabled: 0 + Id: Test_Inventory + IncludedObjectVersions: Current + Schedule: + Frequency: Weekly +Id: Test_Inventory diff --git a/t/09_requests/s3-put-bucket-inventory-configuration.request.test.yml b/t/09_requests/s3-put-bucket-inventory-configuration.request.test.yml new file mode 100644 index 0000000000..63c2b0a46c --- /dev/null +++ b/t/09_requests/s3-put-bucket-inventory-configuration.request.test.yml @@ -0,0 +1,55 @@ +--- +call: PutBucketInventoryConfiguration +service: S3 +tests: + - expected: arn:aws:s3:oneoffpawsCSVTest_InventoryCurrent0Weekly + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: Test_Inventory + op: eq + path: parameters + key: id + - expected: arn:aws:s3:oneoffpaws + op: eq + path: parameters + key: InventoryConfiguration.Destination.S3BucketDestination.Bucket + - expected: Test_Inventory + op: eq + path: parameters + key: InventoryConfiguration.Id + - expected: 0 + op: eq + path: parameters + key: InventoryConfiguration.IsEnabled + - expected: CSV + op: eq + path: parameters + key: InventoryConfiguration.Destination.S3BucketDestination.Format + - expected: Current + op: eq + path: parameters + key: InventoryConfiguration.IncludedObjectVersions + - expected: Weekly + op: eq + path: parameters + key: InventoryConfiguration.Schedule.Frequency + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: inventory= + path: url + - expected: id=Test_Inventory + path: url + - expected: inventory= + path: uri + - expected: /oneoffpaws? + path: uri + - expected: id=Test_Inventory + path: uri + diff --git a/t/09_requests/s3-put-bucket-lifecycle-configuration.request b/t/09_requests/s3-put-bucket-lifecycle-configuration.request new file mode 100644 index 0000000000..391927b9dc --- /dev/null +++ b/t/09_requests/s3-put-bucket-lifecycle-configuration.request @@ -0,0 +1,18 @@ +--- +Bucket: oneoffpaws +LifecycleConfiguration: + Rules: + - ID: rule1 + Filter: + Prefix: documents + Status: Enabled + Transitions: + - Days: 30 + StorageClass: GLACIER + - ID: rule1 + Filter: + Prefix: documents + Status: Enabled + Transitions: + - Days: 30 + StorageClass: GLACIER diff --git a/t/09_requests/s3-put-bucket-lifecycle-configuration.request.test.yml b/t/09_requests/s3-put-bucket-lifecycle-configuration.request.test.yml new file mode 100644 index 0000000000..84176315c3 --- /dev/null +++ b/t/09_requests/s3-put-bucket-lifecycle-configuration.request.test.yml @@ -0,0 +1,50 @@ +--- +call: PutBucketLifecycleConfiguration +service: S3 +tests: + - expected: documentsrule1Enabled30GLACIERdocumentsrule1Enabled30GLACIER + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: Enabled + op: eq + path: parameters + key: LifecycleConfiguration.Rules.Rule.2.Status + - expected: documents + op: eq + path: parameters + key: LifecycleConfiguration.Rules.Rule.2.Filter.Prefix + - expected: GLACIER + op: eq + path: parameters + key: LifecycleConfiguration.Rules.Rule.2.Transitions.Transition.1.StorageClass + - expected: 30 + op: eq + path: parameters + key: LifecycleConfiguration.Rules.Rule.1.Transitions.Transition.1.Days + - expected: 30 + op: eq + path: parameters + key: LifecycleConfiguration.Rules.Rule.2.Transitions.Transition.1.Days + - expected: Enabled + op: eq + path: parameters + key: LifecycleConfiguration.Rules.Rule.1.Status + - expected: rule1 + op: eq + path: parameters + key: LifecycleConfiguration.Rules.Rule.1.ID + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: lifecycle + path: url + - expected: lifecycle + path: uri + - expected: /oneoffpaws? + path: uri diff --git a/t/09_requests/s3-put-bucket-logging.request b/t/09_requests/s3-put-bucket-logging.request new file mode 100644 index 0000000000..e7aaa76b30 --- /dev/null +++ b/t/09_requests/s3-put-bucket-logging.request @@ -0,0 +1,12 @@ +--- +Bucket: oneoffpaws +BucketLoggingStatus: + LoggingEnabled: + TargetBucket: MyTargetBucket + TargetPrefix: mylog + TargetGrants: + - Grantee: + Type: CanonicalUser + DisplayName: OwnerDisplayName + ID: 852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID + Permission: FULL_CONTROL diff --git a/t/09_requests/s3-put-bucket-logging.request.test.yml b/t/09_requests/s3-put-bucket-logging.request.test.yml new file mode 100644 index 0000000000..e973aeb019 --- /dev/null +++ b/t/09_requests/s3-put-bucket-logging.request.test.yml @@ -0,0 +1,42 @@ +--- +call: PutBucketLogging +service: S3 +tests: + - expected: MyTargetBucketOwnerDisplayName852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserIDFULL_CONTROLmylog + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: OwnerDisplayName + op: eq + path: parameters + key: BucketLoggingStatus.LoggingEnabled.TargetGrants.Grant.1.Grantee.DisplayName + - expected: 852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID + op: eq + path: parameters + key: BucketLoggingStatus.LoggingEnabled.TargetGrants.Grant.1.Grantee.ID + - expected: CanonicalUser + op: eq + path: parameters + key: BucketLoggingStatus.LoggingEnabled.TargetGrants.Grant.1.Grantee.Type + - expected: FULL_CONTROL + op: eq + path: parameters + key: BucketLoggingStatus.LoggingEnabled.TargetGrants.Grant.1.Permission + - expected: mylog + op: eq + path: parameters + key: BucketLoggingStatus.LoggingEnabled.TargetPrefix + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: logging + path: url + - expected: /oneoffpaws? + path: uri + - expected: logging + path: uri diff --git a/t/09_requests/s3-put-bucket-metrics-configuration.request b/t/09_requests/s3-put-bucket-metrics-configuration.request new file mode 100644 index 0000000000..f39b48c8a8 --- /dev/null +++ b/t/09_requests/s3-put-bucket-metrics-configuration.request @@ -0,0 +1,17 @@ +--- +Bucket: oneoffpaws +Id: ImportantBlueDocuments +MetricsConfiguration: + Id: ImportantBlueDocuments + Filter: + And: + Prefix: documents + Tags: + - Key: priority + Value: high + - Key: class + Value: blue + Prefix: MyPrefix + Tag: + Key: priority + Value: high diff --git a/t/09_requests/s3-put-bucket-metrics-configuration.request.test.yml b/t/09_requests/s3-put-bucket-metrics-configuration.request.test.yml new file mode 100644 index 0000000000..9c4b0089cd --- /dev/null +++ b/t/09_requests/s3-put-bucket-metrics-configuration.request.test.yml @@ -0,0 +1,66 @@ +--- +call: PutBucketMetricsConfiguration +service: S3 +tests: + - expected: documentspriorityhighclassblueMyPrefixpriorityhighImportantBlueDocuments + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: ImportantBlueDocuments + op: eq + path: parameters + key: id + - expected: priority + op: eq + path: parameters + key: MetricsConfiguration.Filter.Tag.Key + - expected: class + op: eq + path: parameters + key: MetricsConfiguration.Filter.And.Tags.Tag.2.Key + - expected: priority + op: eq + path: parameters + key: MetricsConfiguration.Filter.And.Tags.Tag.1.Key + - expected: ImportantBlueDocuments + op: eq + path: parameters + key: MetricsConfiguration.Id + - expected: high + op: eq + path: parameters + key: MetricsConfiguration.Filter.And.Tags.Tag.1.Value + - expected: MyPrefix + op: eq + path: parameters + key: MetricsConfiguration.Filter.Prefix + - expected: documents + op: eq + path: parameters + key: MetricsConfiguration.Filter.And.Prefix + - key: MetricsConfiguration.Filter.And.Tags.Tag.2.Value + op: eq + path: parameters + expected: blue + - key: MetricsConfiguration.Filter.Tag.Value + op: eq + path: parameters + expected: high + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: id=ImportantBlueDocuments + path: url + - expected: metrics= + path: url + - expected: metrics= + path: uri + - expected: id=ImportantBlueDocuments + path: uri + - expected: /oneoffpaws? + path: uri diff --git a/t/09_requests/s3-put-bucket-policy.request b/t/09_requests/s3-put-bucket-policy.request new file mode 100644 index 0000000000..f8db39d11a --- /dev/null +++ b/t/09_requests/s3-put-bucket-policy.request @@ -0,0 +1,3 @@ +--- +Bucket: oneoffpaws +Policy: '{"Id": "Policy1572795613217","Version": "2012-10-17","Statement": [{"Sid": "Stmt1234567890","Action": ["*"],"Effect": "Allow","Resource": "arn:aws:s3:::oneoffpaws", "Principal": { "AWS": ["arn:aws:iam::1234567890:user/ghehoiso"]}}]}' diff --git a/t/09_requests/s3-put-bucket-policy.request.test.yml b/t/09_requests/s3-put-bucket-policy.request.test.yml new file mode 100644 index 0000000000..bac40001a5 --- /dev/null +++ b/t/09_requests/s3-put-bucket-policy.request.test.yml @@ -0,0 +1,26 @@ +--- +call: PutBucketPolicy +service: S3 +tests: + - expected: '' + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: '{"Id": "Policy1572795613217","Version": "2012-10-17","Statement": [{"Sid": "Stmt1234567890","Action": ["*"],"Effect": "Allow","Resource": "arn:aws:s3:::oneoffpaws", "Principal": { "AWS": ["arn:aws:iam::1234567890:user/ghehoiso"]}}]}' + op: eq + path: parameters + key: Policy + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: policy + path: url + - expected: /oneoffpaws? + path: uri + - expected: policy + path: uri diff --git a/t/09_requests/s3-put-bucket-public-access-block.request b/t/09_requests/s3-put-bucket-public-access-block.request new file mode 100644 index 0000000000..37177c4dda --- /dev/null +++ b/t/09_requests/s3-put-bucket-public-access-block.request @@ -0,0 +1,7 @@ +--- +Bucket: oneoffpaws +PublicAccessBlockConfiguration: + BlockPublicAcls: 1 + IgnorePublicAcls: 0 + BlockPublicPolicy: 0 + RestrictPublicBuckets: 1 diff --git a/t/09_requests/s3-put-bucket-public-access-block.request.test.yml b/t/09_requests/s3-put-bucket-public-access-block.request.test.yml new file mode 100644 index 0000000000..26da0f9a85 --- /dev/null +++ b/t/09_requests/s3-put-bucket-public-access-block.request.test.yml @@ -0,0 +1,43 @@ +--- +call: PutPublicAccessBlock +service: S3 +tests: + - expected: 1001 + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: 0 + op: eq + path: parameters + key: PublicAccessBlockConfiguration.IgnorePublicAcls + - expected: 0 + op: eq + path: parameters + key: PublicAccessBlockConfiguration.BlockPublicPolicy + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: 1 + op: eq + path: parameters + key: PublicAccessBlockConfiguration.BlockPublicAcls + - expected: 1 + op: eq + path: parameters + key: PublicAccessBlockConfiguration.RestrictPublicBuckets + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: publicAccessBlock + path: url + - expected: /oneoffpaws? + path: uri + - expected: publicAccessBlock + path: uri + diff --git a/t/09_requests/s3-put-bucket-replication.request b/t/09_requests/s3-put-bucket-replication.request new file mode 100644 index 0000000000..bb7c31e880 --- /dev/null +++ b/t/09_requests/s3-put-bucket-replication.request @@ -0,0 +1,25 @@ +--- +Bucket: oneoffpaws +ReplicationConfiguration: + Role: arn:aws:iam::1234567890:role/Idera + Rules: + - Destination: + Bucket: arn:aws:s3:oneoffpaws + StorageClass: STANDARD + Priority: 1 + ID: rule1 + Filter: + Prefix: documents + Status: Disabled + DeleteMarkerReplication: + Status: Disabled + - Destination: + Bucket: arn:aws:s3:oneoffpaws + StorageClass: STANDARD + Priority: 2 + ID: rule2 + Filter: + Prefix: documents + Status: Disabled + DeleteMarkerReplication: + Status: Disabled diff --git a/t/09_requests/s3-put-bucket-replication.request.test.yml b/t/09_requests/s3-put-bucket-replication.request.test.yml new file mode 100644 index 0000000000..9dd07ff2e3 --- /dev/null +++ b/t/09_requests/s3-put-bucket-replication.request.test.yml @@ -0,0 +1,50 @@ +--- +call: PutBucketReplication +service: S3 +tests: + - expected: arn:aws:iam::1234567890:role/IderaDisabledarn:aws:s3:oneoffpawsSTANDARDdocumentsrule11DisabledDisabledarn:aws:s3:oneoffpawsSTANDARDdocumentsrule22Disabled + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: STANDARD + op: eq + path: parameters + key: ReplicationConfiguration.Rules.Rule.2.Destination.StorageClass + - expected: arn:aws:s3:oneoffpaws + op: eq + path: parameters + key: ReplicationConfiguration.Rules.Rule.2.Destination.Bucket + - expected: 2 + op: eq + path: parameters + key: ReplicationConfiguration.Rules.Rule.2.Priority + - expected: documents + op: eq + path: parameters + key: ReplicationConfiguration.Rules.Rule.1.Filter.Prefix + - expected: documents + op: eq + path: parameters + key: ReplicationConfiguration.Rules.Rule.2.Filter.Prefix + - expected: rule1 + op: eq + path: parameters + key: ReplicationConfiguration.Rules.Rule.1.ID + - expected: arn:aws:s3:oneoffpaws + op: eq + path: parameters + key: ReplicationConfiguration.Rules.Rule.1.Destination.Bucket + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: replication + path: url + - expected: replication + path: uri + - expected: /oneoffpaws? + path: uri diff --git a/t/09_requests/s3-put-bucket-request-payment.request b/t/09_requests/s3-put-bucket-request-payment.request new file mode 100644 index 0000000000..972bde5b74 --- /dev/null +++ b/t/09_requests/s3-put-bucket-request-payment.request @@ -0,0 +1,4 @@ +--- +Bucket: oneoffpaws +RequestPaymentConfiguration: + Payer: Requester diff --git a/t/09_requests/s3-put-bucket-request-payment.request.test.yml b/t/09_requests/s3-put-bucket-request-payment.request.test.yml new file mode 100644 index 0000000000..b96b0ca28a --- /dev/null +++ b/t/09_requests/s3-put-bucket-request-payment.request.test.yml @@ -0,0 +1,26 @@ +--- +call: PutBucketRequestPayment +service: S3 +tests: + - expected: Requester + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: Requester + op: eq + path: parameters + key: RequestPaymentConfiguration.Payer + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: requestPayment + path: url + - expected: /oneoffpaws? + path: uri + - expected: requestPayment + path: uri diff --git a/t/09_requests/s3-put-bucket-tagging.request b/t/09_requests/s3-put-bucket-tagging.request new file mode 100644 index 0000000000..bf268f5d5d --- /dev/null +++ b/t/09_requests/s3-put-bucket-tagging.request @@ -0,0 +1,8 @@ +--- +Bucket: oneoffpaws +Tagging: + TagSet: + - Key: Akey + Value: a value + - Key: bkey + Value: b value diff --git a/t/09_requests/s3-put-bucket-tagging.request.test.yml b/t/09_requests/s3-put-bucket-tagging.request.test.yml new file mode 100644 index 0000000000..78942e6a4b --- /dev/null +++ b/t/09_requests/s3-put-bucket-tagging.request.test.yml @@ -0,0 +1,38 @@ +--- +call: PutBucketTagging +service: S3 +tests: + - expected: Akeya valuebkeyb value + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: a value + op: eq + path: parameters + key: Tagging.TagSet.Tag.1.Value + - expected: Akey + op: eq + path: parameters + key: Tagging.TagSet.Tag.1.Key + - expected: b value + op: eq + path: parameters + key: Tagging.TagSet.Tag.2.Value + - expected: bkey + op: eq + path: parameters + key: Tagging.TagSet.Tag.2.Key + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: tagging + path: url + - expected: /oneoffpaws? + path: uri + - expected: tagging + path: uri diff --git a/t/09_requests/s3-put-bucket-versioning.request b/t/09_requests/s3-put-bucket-versioning.request new file mode 100644 index 0000000000..01787ba75d --- /dev/null +++ b/t/09_requests/s3-put-bucket-versioning.request @@ -0,0 +1,7 @@ +--- +Bucket: oneoffpaws +VersioningConfiguration: + MFADelete: Enabled + Status: Enabled +MFA: MyMFA + diff --git a/t/09_requests/s3-put-bucket-versioning.request.test.yml b/t/09_requests/s3-put-bucket-versioning.request.test.yml new file mode 100644 index 0000000000..3ce33499c2 --- /dev/null +++ b/t/09_requests/s3-put-bucket-versioning.request.test.yml @@ -0,0 +1,34 @@ +--- +call: PutBucketVersioning +service: S3 +tests: + - expected: EnabledEnabled + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: MyMFA + op: eq + path: parameters + key: MFA + - expected: Enabled + op: eq + path: parameters + key: VersioningConfiguration.MFADelete + - expected: Enabled + op: eq + path: parameters + key: VersioningConfiguration.Status + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: versioning + path: url + - expected: /oneoffpaws? + path: uri + - expected: versioning + path: uri diff --git a/t/09_requests/s3-put-bucket-website.request b/t/09_requests/s3-put-bucket-website.request new file mode 100644 index 0000000000..482ae4c243 --- /dev/null +++ b/t/09_requests/s3-put-bucket-website.request @@ -0,0 +1,7 @@ +--- +Bucket: oneoffpaws +WebsiteConfiguration: + IndexDocument: + Suffix: index.html + ErrorDocument: + Key: SomeErrorDocument.html diff --git a/t/09_requests/s3-put-bucket-website.request.test.yml b/t/09_requests/s3-put-bucket-website.request.test.yml new file mode 100644 index 0000000000..50945bdde8 --- /dev/null +++ b/t/09_requests/s3-put-bucket-website.request.test.yml @@ -0,0 +1,30 @@ +--- +call: PutBucketWebsite +service: S3 +tests: + - expected: SomeErrorDocument.htmlindex.html + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: SomeErrorDocument.html + op: eq + path: parameters + key: WebsiteConfiguration.ErrorDocument.Key + - expected: index.html + op: eq + path: parameters + key: WebsiteConfiguration.IndexDocument.Suffix + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: website + path: url + - expected: website + path: uri + - expected: /oneoffpaws? + path: uri diff --git a/t/09_requests/s3-put-object-acl.request b/t/09_requests/s3-put-object-acl.request new file mode 100644 index 0000000000..a2578b7587 --- /dev/null +++ b/t/09_requests/s3-put-object-acl.request @@ -0,0 +1,13 @@ +--- +Bucket: oneoffpaws +Key: one/to/delete/image.jpg +AccessControlPolicy: + Owner: + ID: 852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID + DisplayName: Nothing + Grants: + - Grantee: + Type: CanonicalUser + DisplayName: OwnerDisplayName + ID: 852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID + Permission: FULL_CONTROL diff --git a/t/09_requests/s3-put-object-acl.request.test.yml b/t/09_requests/s3-put-object-acl.request.test.yml new file mode 100644 index 0000000000..16f0574a00 --- /dev/null +++ b/t/09_requests/s3-put-object-acl.request.test.yml @@ -0,0 +1,54 @@ +--- +call: PutObjectAcl +service: S3 +tests: + - expected: OwnerDisplayName852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserIDFULL_CONTROLNothing852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - key: Key + expected: one/to/delete/image.jpg + op: eq + path: parameters + - expected: FULL_CONTROL + op: eq + path: parameters + key: AccessControlPolicy.Grants.Grant.1.Permission + - expected: Nothing + op: eq + path: parameters + key: AccessControlPolicy.Owner.DisplayName + - expected: CanonicalUser + op: eq + path: parameters + key: AccessControlPolicy.Grants.Grant.1.Grantee.Type + - expected: 852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID + op: eq + path: parameters + key: AccessControlPolicy.Grants.Grant.1.Grantee.ID + - expected: 852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID + op: eq + path: parameters + key: AccessControlPolicy.Owner.ID + - expected: OwnerDisplayName + op: eq + path: parameters + key: AccessControlPolicy.Grants.Grant.1.Grantee.DisplayName + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws/one/to/delete/image.jpg + path: url + op: eq + - expected: /oneoffpaws/one/to/delete/image.jpg? + path: uri + op: eq + - expected: acl + path: url + op: eq + - expected: acl + path: uri + op: eq diff --git a/t/09_requests/s3-put-object-legal-hold.request b/t/09_requests/s3-put-object-legal-hold.request new file mode 100644 index 0000000000..9561dfde0f --- /dev/null +++ b/t/09_requests/s3-put-object-legal-hold.request @@ -0,0 +1,5 @@ +--- +Bucket: oneoffpaws +Key: one/to/delete/image.jpg +LegalHold: + Status: ON diff --git a/t/09_requests/s3-put-object-legal-hold.request.test.yml b/t/09_requests/s3-put-object-legal-hold.request.test.yml new file mode 100644 index 0000000000..0b39e0df18 --- /dev/null +++ b/t/09_requests/s3-put-object-legal-hold.request.test.yml @@ -0,0 +1,35 @@ +--- +call: PutObjectLegalHold +service: S3 +tests: + - expected: ON + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - key: Key + expected: one/to/delete/image.jpg + op: eq + path: parameters + - key: LegalHold.Status + expected: ON + op: eq + path: parameters + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws/one/to/delete/image.jpg + path: url + op: eq + - expected: /oneoffpaws/one/to/delete/image.jpg? + path: uri + op: eq + - expected: legal-hold + path: url + op: eq + - expected: legal-hold + path: uri + op: eq + diff --git a/t/09_requests/s3-put-object-lock-configuation.request b/t/09_requests/s3-put-object-lock-configuation.request new file mode 100644 index 0000000000..fdf63048d1 --- /dev/null +++ b/t/09_requests/s3-put-object-lock-configuation.request @@ -0,0 +1,11 @@ +--- +Bucket: oneoffpaws +ObjectLockConfiguration: + ObjectLockEnabled: Enabled + Rule: + DefaultRetention: + Days: 1 + Mode: GOVERNANCE + Years: 1 +RequestPayer: requester +Token: MyObjectLockToken diff --git a/t/09_requests/s3-put-object-lock-configuation.request.test.yml b/t/09_requests/s3-put-object-lock-configuation.request.test.yml new file mode 100644 index 0000000000..4f9f583251 --- /dev/null +++ b/t/09_requests/s3-put-object-lock-configuation.request.test.yml @@ -0,0 +1,51 @@ +--- +call: PutObjectLockConfiguration +service: S3 +tests: + - expected: Enabled1GOVERNANCE1 + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - key: ObjectLockConfiguration.ObjectLockEnabled + expected: Enabled + op: eq + path: parameters + - key: Token + expected: MyObjectLockToken + op: eq + path: parameters + - key: ObjectLockConfiguration.Rule.DefaultRetention.Days + expected: 1 + op: eq + path: parameters + - key: ObjectLockConfiguration.Rule.DefaultRetention.Years + expected: 1 + op: eq + path: parameters + - key: ObjectLockConfiguration.Rule.DefaultRetention.Mode + expected: GOVERNANCE + op: eq + path: parameters + - key: RequestPayer + expected: requester + op: eq + path: parameters + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws + path: url + op: eq + - expected: /oneoffpaws? + path: uri + op: eq + - expected: object-lock + path: url + op: eq + - expected: object-lock + path: uri + op: eq + diff --git a/t/09_requests/s3-put-object-retention-configuation.request b/t/09_requests/s3-put-object-retention-configuation.request new file mode 100644 index 0000000000..5f8dcc6190 --- /dev/null +++ b/t/09_requests/s3-put-object-retention-configuation.request @@ -0,0 +1,9 @@ +--- +Bucket: oneoffpaws +Key: one/to/delete/image.jpg +BypassGovernanceRetention: 1 +RequestPayer: requester +Retention: + Mode: GOVERNANCE + RetainUntilDate: 1970-01-01T01:00:00 +VersionId: MyObjectVersionId diff --git a/t/09_requests/s3-put-object-retention-configuation.request.test.yml b/t/09_requests/s3-put-object-retention-configuation.request.test.yml new file mode 100644 index 0000000000..fb05a208c9 --- /dev/null +++ b/t/09_requests/s3-put-object-retention-configuation.request.test.yml @@ -0,0 +1,53 @@ +--- +call: PutObjectRetention +service: S3 +tests: + - expected: GOVERNANCE1970-01-01T01:00:00 + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - key: Retention.Mode + expected: GOVERNANCE + op: eq + path: parameters + - key: BypassGovernanceRetention + expected: 1 + op: eq + path: parameters + - key: Retention.RetainUntilDate + expected: 1970-01-01T01:00:00 + op: eq + path: parameters + - key: RequestPayer + expected: requester + op: eq + path: parameters + - key: Key + expected: one/to/delete/image.jpg + op: eq + path: parameters + - key: versionId + expected: MyObjectVersionId + op: eq + path: parameters + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws/one/to/delete/image.jpg? + path: url + op: eq + - expected: /oneoffpaws/one/to/delete/image.jpg? + path: uri + op: eq + - expected: retention + path: url + op: eq + - expected: retention + path: uri + op: eq + - expected: versionId=MyObjectVersionId + path: uri + op: eq diff --git a/t/09_requests/s3-put-object-tagging.request b/t/09_requests/s3-put-object-tagging.request new file mode 100644 index 0000000000..34105887ee --- /dev/null +++ b/t/09_requests/s3-put-object-tagging.request @@ -0,0 +1,9 @@ +--- +Bucket: oneoffpaws +Key: lhf/insp/attachments/assigned/condition_1_1033233_275731_69069.jpg +Tagging: + TagSet: + - Key: Akey + Value: a value + - Key: bkey + Value: b value diff --git a/t/09_requests/s3-put-object-tagging.request.test.yml b/t/09_requests/s3-put-object-tagging.request.test.yml new file mode 100644 index 0000000000..885564ced7 --- /dev/null +++ b/t/09_requests/s3-put-object-tagging.request.test.yml @@ -0,0 +1,46 @@ +--- +call: PutObjectTagging +service: S3 +tests: + - expected: Akeya valuebkeyb value + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: lhf/insp/attachments/assigned/condition_1_1033233_275731_69069.jpg + op: eq + path: parameters + key: Key + - expected: a value + op: eq + path: parameters + key: Tagging.TagSet.Tag.1.Value + - expected: Akey + op: eq + path: parameters + key: Tagging.TagSet.Tag.1.Key + - expected: b value + op: eq + path: parameters + key: Tagging.TagSet.Tag.2.Value + - expected: bkey + op: eq + path: parameters + key: Tagging.TagSet.Tag.2.Key + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws/lhf/insp/attachments/assigned/condition_1_1033233_275731_69069.jpg? + path: url + op: eq + - expected: tagging + path: url + op: eq + - expected: /oneoffpaws/ + path: uri + op: eq + - expected: tagging + path: uri + op: eq diff --git a/t/09_requests/s3-put-pubic-access-block-configuration.request b/t/09_requests/s3-put-pubic-access-block-configuration.request new file mode 100644 index 0000000000..37177c4dda --- /dev/null +++ b/t/09_requests/s3-put-pubic-access-block-configuration.request @@ -0,0 +1,7 @@ +--- +Bucket: oneoffpaws +PublicAccessBlockConfiguration: + BlockPublicAcls: 1 + IgnorePublicAcls: 0 + BlockPublicPolicy: 0 + RestrictPublicBuckets: 1 diff --git a/t/09_requests/s3-put-pubic-access-block-configuration.request.test.yml b/t/09_requests/s3-put-pubic-access-block-configuration.request.test.yml new file mode 100644 index 0000000000..6f15211058 --- /dev/null +++ b/t/09_requests/s3-put-pubic-access-block-configuration.request.test.yml @@ -0,0 +1,38 @@ +--- +call: PutPublicAccessBlock +service: S3 +tests: + - expected: 1001 + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: 1 + op: eq + path: parameters + key: PublicAccessBlockConfiguration.BlockPublicAcls + - expected: 1 + op: eq + path: parameters + key: PublicAccessBlockConfiguration.RestrictPublicBuckets + - expected: 0 + op: eq + path: parameters + key: PublicAccessBlockConfiguration.IgnorePublicAcls + - expected: 0 + op: eq + path: parameters + key: PublicAccessBlockConfiguration.BlockPublicPolicy + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + - expected: publicAccessBlock + path: url + - expected: publicAccessBlock + path: uri + - expected: /oneoffpaws? + path: uri diff --git a/t/09_requests/s3-put-pubic-notification-configuration.request b/t/09_requests/s3-put-pubic-notification-configuration.request new file mode 100644 index 0000000000..ad7f326e0b --- /dev/null +++ b/t/09_requests/s3-put-pubic-notification-configuration.request @@ -0,0 +1,8 @@ +--- +Bucket: oneoffpaws +NotificationConfiguration: + TopicConfigurations: + - TopicArn: arn:aws:sns:us-east-1:356671443308:s3notificationtopic2 + Events: + - s3\:ReducedRedundancyLostObject + Id: My config diff --git a/t/09_requests/s3-put-pubic-notification-configuration.request.test.yml b/t/09_requests/s3-put-pubic-notification-configuration.request.test.yml new file mode 100644 index 0000000000..ba56885181 --- /dev/null +++ b/t/09_requests/s3-put-pubic-notification-configuration.request.test.yml @@ -0,0 +1,38 @@ +--- +call: PutBucketNotificationConfiguration +service: S3 +tests: + - expected: s3\:ReducedRedundancyLostObjectMy configarn:aws:sns:us-east-1:356671443308:s3notificationtopic2 + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - expected: My config + op: eq + path: parameters + key: NotificationConfiguration.TopicConfigurations.TopicConfiguration.1.Id + - expected: s3\:ReducedRedundancyLostObject + op: eq + path: parameters + key: NotificationConfiguration.TopicConfigurations.TopicConfiguration.1.Events.1 + - expected: arn:aws:sns:us-east-1:356671443308:s3notificationtopic2 + op: eq + path: parameters + key: NotificationConfiguration.TopicConfigurations.TopicConfiguration.1.TopicArn + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws? + path: url + op: eq + - expected: notification + path: url + op: eq + - expected: notification + path: uri + op: eq + - expected: /oneoffpaws? + path: uri + op: eq diff --git a/t/09_requests/s3-select-object-content.request b/t/09_requests/s3-select-object-content.request new file mode 100644 index 0000000000..1f07df6823 --- /dev/null +++ b/t/09_requests/s3-select-object-content.request @@ -0,0 +1,14 @@ +--- +Bucket: oneoffpaws +Key: one/to/delete/image.jpg +Expression: MyExpression +ExpressionType: SQL +InputSerialization: + CompressionType: NONE +OutputSerialization: + CSV: + QuoteFields: ASNEEDED + RecordDelimiter: \\n + FieldDelimiter: \, + QuoteCharacter: \' + QuoteEscapeCharacter: \" diff --git a/t/09_requests/s3-select-object-content.request.test.yml b/t/09_requests/s3-select-object-content.request.test.yml new file mode 100644 index 0000000000..04b19b2974 --- /dev/null +++ b/t/09_requests/s3-select-object-content.request.test.yml @@ -0,0 +1,67 @@ +--- +call: SelectObjectContent +service: S3 +tests: + - expected: NONE\,\'\"ASNEEDED\\nMyExpressionSQL + op: eq + path: content + - expected: oneoffpaws + op: eq + path: parameters + key: Bucket + - key: Expression + expected: MyExpression + op: eq + path: parameters + - key: OutputSerialization.CSV.QuoteFields + expected: ASNEEDED + op: eq + path: parameters + - key: OutputSerialization.CSV.FieldDelimiter + expected: \, + op: eq + path: parameters + - key: Key + expected: one/to/delete/image.jpg + op: eq + path: parameters + - key: OutputSerialization.CSV.QuoteEscapeCharacter + expected: \" + op: eq + path: parameters + - key: ExpressionType + expected: SQL + op: eq + path: parameters + - key: OutputSerialization.CSV.QuoteCharacter + expected: \' + op: eq + path: parameters + - key: OutputSerialization.CSV.RecordDelimiter + expected: \\n + op: eq + path: parameters + - key: InputSerialization.CompressionType + expected: NONE + op: eq + path: parameters + - expected: POST + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws/one/to/delete/image.jpg? + path: url + op: eq + - expected: /oneoffpaws/one/to/delete/image.jpg? + path: uri + op: eq + - expected: select + path: url + op: eq + - expected: select + path: uri + op: eq + - expected: select-type=2 + path: uri + op: eq + + diff --git a/t/09_requests/s3-upload-part-copy.request b/t/09_requests/s3-upload-part-copy.request new file mode 100644 index 0000000000..4cf08a0930 --- /dev/null +++ b/t/09_requests/s3-upload-part-copy.request @@ -0,0 +1,6 @@ +--- +Bucket: oneoffpaws +Key: one/to/delete/image_copy.jpg +PartNumber: 1 +UploadId: MyMultipartUploadId +CopySource: one/to/delete/image.jpg diff --git a/t/09_requests/s3-upload-part-copy.request.test.yml b/t/09_requests/s3-upload-part-copy.request.test.yml new file mode 100644 index 0000000000..fd0ef896a4 --- /dev/null +++ b/t/09_requests/s3-upload-part-copy.request.test.yml @@ -0,0 +1,39 @@ +--- +call: UploadPartCopy +service: S3 +tests: + - expected: one/to/delete/image_copy.jpg + op: eq + path: parameters + key: Key + - key: partNumber + expected: 1 + op: eq + path: parameters + - key: CopySource + expected: one/to/delete/image.jpg + op: eq + path: parameters + - key: Bucket + expected: oneoffpaws + op: eq + path: parameters + - key: uploadId + expected: MyMultipartUploadId + op: eq + path: parameters + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws/one/to/delete/image_copy.jpg? + path: url + op: eq + - expected: /oneoffpaws/one/to/delete/image_copy.jpg + path: uri + op: eq + - expected: uploadId=MyMultipartUploadId + path: uri + op: eq + - expected: partNumber=1 + path: uri + op: eq diff --git a/t/09_requests/s3-upload-part.request b/t/09_requests/s3-upload-part.request new file mode 100644 index 0000000000..eefb25a111 --- /dev/null +++ b/t/09_requests/s3-upload-part.request @@ -0,0 +1,6 @@ +--- +Bucket: oneoffpaws +Key: one/to/delete/image.jpg +PartNumber: 1 +UploadId: MyMultipartUploadId +Body: BlobBody diff --git a/t/09_requests/s3-upload-part.request.test.yml b/t/09_requests/s3-upload-part.request.test.yml new file mode 100644 index 0000000000..a4768577cc --- /dev/null +++ b/t/09_requests/s3-upload-part.request.test.yml @@ -0,0 +1,42 @@ +--- +call: UploadPart +service: S3 +tests: + - expected: BlobBody + op: eq + path: content + - expected: MyMultipartUploadId + op: eq + path: parameters + key: uploadId + - key: Key + expected: one/to/delete/image.jpg + op: eq + path: parameters + - key: partNumber + expected: 1 + op: eq + path: parameters + - key: Bucket + expected: oneoffpaws + op: eq + path: parameters + - key: Body + expected: BlobBody + op: eq + path: parameters + - expected: PUT + op: eq + path: method + - expected: https://s3.fake_region.amazonaws.com/oneoffpaws/one/to/delete/image.jpg + path: url + op: eq + - expected: /oneoffpaws/one/to/delete/image.jpg + path: uri + op: eq + - expected: uploadId=MyMultipartUploadId + path: uri + op: eq + - expected: partNumber=1 + path: uri + op: eq diff --git a/t/10_responses/cloudfront-createcloudfrontoriginaccessidentity.response b/t/10_responses/cloudfront-createcloudfrontoriginaccessidentity.response new file mode 100644 index 0000000000..d0ae8add28 --- /dev/null +++ b/t/10_responses/cloudfront-createcloudfrontoriginaccessidentity.response @@ -0,0 +1,20 @@ +--- +content: |- + + E3D5Y5RWA05QO184f47125a87a26ea5ba42f3be65fbefebdb7440d82e7d27907c52c969ac4f6c05ef03046db8cd6f74dab632e70ffcd71some test hereThis is Mr Poopy Buthole calling +headers: + client-date: 'Tue, 07 Jan 2020 20:50:46 GMT' + client-peer: 54.239.29.51:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 478 + content-type: text/xml + date: 'Tue, 07 Jan 2020 20:50:46 GMT' + etag: E2J612BD0LRDHQ + location: https://cloudfront.amazonaws.com/2019-03-26/origin-access-identity/cloudfront/E3D5Y5RWA05QO1 + x-amzn-requestid: 5459351b-bb65-414e-9696-df581ea8b373 +status: 201 diff --git a/t/10_responses/cloudfront-createcloudfrontoriginaccessidentity.response.test.yml b/t/10_responses/cloudfront-createcloudfrontoriginaccessidentity.response.test.yml new file mode 100644 index 0000000000..628565037b --- /dev/null +++ b/t/10_responses/cloudfront-createcloudfrontoriginaccessidentity.response.test.yml @@ -0,0 +1,25 @@ +--- +call: CreateCloudFrontOriginAccessIdentity +service: CloudFront +tests: + - expected: some test here + op: eq + path: CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig.CallerReference + - expected: This is Mr Poopy Buthole calling + op: eq + path: CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig.Comment + - expected: E3D5Y5RWA05QO1 + op: eq + path: CloudFrontOriginAccessIdentity.Id + - expected: 84f47125a87a26ea5ba42f3be65fbefebdb7440d82e7d27907c52c969ac4f6c05ef03046db8cd6f74dab632e70ffcd71 + op: eq + path: CloudFrontOriginAccessIdentity.S3CanonicalUserId + - expected: E2J612BD0LRDHQ + op: eq + path: ETag + - expected: https://cloudfront.amazonaws.com/2019-03-26/origin-access-identity/cloudfront/E3D5Y5RWA05QO1 + op: eq + path: Location + - expected: 5459351b-bb65-414e-9696-df581ea8b373 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-createdistribution.response b/t/10_responses/cloudfront-createdistribution.response new file mode 100644 index 0000000000..f6ee5a552c --- /dev/null +++ b/t/10_responses/cloudfront-createdistribution.response @@ -0,0 +1,21 @@ +--- +content: |- + + EJ143D8LZET8Zarn:aws:cloudfront::985173205561:distribution/EJ143D8LZET8ZInProgress2020-01-10T21:49:42.866Z0d10e955chuoza2.cloudfront.netfalse0cli-example0index.html1pawsexamplebucket.s3.amazonaws.com-cli-examplepawsexamplebucket.s3.amazonaws.com00pawsexamplebucket.s3.amazonaws.com-cli-examplefalsenone00false0allow-all02HEADGET2HEADGETfalse8640031536000false000falsefalsePriceClass_AlltruetrueTLSv1cloudfrontnone0http2true +headers: + client-date: 'Fri, 10 Jan 2020 21:49:43 GMT' + client-peer: 54.239.29.26:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 2764 + content-type: text/xml + date: 'Fri, 10 Jan 2020 21:49:42 GMT' + etag: EK97K8QL2NH7G + location: https://cloudfront.amazonaws.com/2019-03-26/distribution/EJ143D8LZET8Z + vary: Accept-Encoding + x-amzn-requestid: 37be2bc2-7906-4df9-892c-859ef544501a +status: 201 diff --git a/t/10_responses/cloudfront-createdistribution.response.test.yml b/t/10_responses/cloudfront-createdistribution.response.test.yml new file mode 100644 index 0000000000..0221cb3908 --- /dev/null +++ b/t/10_responses/cloudfront-createdistribution.response.test.yml @@ -0,0 +1,187 @@ +--- +call: CreateDistribution +service: CloudFront +tests: + - expected: arn:aws:cloudfront::985173205561:distribution/EJ143D8LZET8Z + op: eq + path: Distribution.ARN + - expected: 0 + op: eq + path: Distribution.ActiveTrustedSigners.Enabled + - expected: 0 + op: eq + path: Distribution.ActiveTrustedSigners.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Aliases.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.CacheBehaviors.Quantity + - expected: cli-example + op: eq + path: Distribution.DistributionConfig.CallerReference + - expected: '' + op: eq + path: Distribution.DistributionConfig.Comment + - expected: 0 + op: eq + path: Distribution.DistributionConfig.CustomErrorResponses.Quantity + - expected: HEAD + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.0 + - expected: GET + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.1 + - expected: 2 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Quantity + - expected: HEAD + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Items.0 + - expected: GET + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Items.1 + - expected: 2 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.Compress + - expected: 86400 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.DefaultTTL + - expected: none + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Cookies.Forward + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Cookies.WhitelistedNames.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Headers.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.QueryString + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.QueryStringCacheKeys.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.LambdaFunctionAssociations.Quantity + - expected: 31536000 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.MaxTTL + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.MinTTL + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.SmoothStreaming + - expected: pawsexamplebucket.s3.amazonaws.com-cli-example + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.TargetOriginId + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.TrustedSigners.Enabled + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.TrustedSigners.Quantity + - expected: allow-all + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ViewerProtocolPolicy + - expected: index.html + op: eq + path: Distribution.DistributionConfig.DefaultRootObject + - expected: 1 + op: eq + path: Distribution.DistributionConfig.Enabled + - expected: http2 + op: eq + path: Distribution.DistributionConfig.HttpVersion + - expected: 1 + op: eq + path: Distribution.DistributionConfig.IsIPV6Enabled + - expected: '' + op: eq + path: Distribution.DistributionConfig.Logging.Bucket + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Logging.Enabled + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Logging.IncludeCookies + - expected: '' + op: eq + path: Distribution.DistributionConfig.Logging.Prefix + - expected: 0 + op: eq + path: Distribution.DistributionConfig.OriginGroups.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomHeaders.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomOriginConfig.HTTPPort + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomOriginConfig.HTTPSPort + - expected: '' + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomOriginConfig.OriginProtocolPolicy + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomOriginConfig.OriginSslProtocols.Quantity + - expected: pawsexamplebucket.s3.amazonaws.com + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.DomainName + - expected: pawsexamplebucket.s3.amazonaws.com-cli-example + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.Id + - expected: '' + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.S3OriginConfig.OriginAccessIdentity + - expected: 1 + op: eq + path: Distribution.DistributionConfig.Origins.Quantity + - expected: PriceClass_All + op: eq + path: Distribution.DistributionConfig.PriceClass + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Restrictions.GeoRestriction.Quantity + - expected: none + op: eq + path: Distribution.DistributionConfig.Restrictions.GeoRestriction.RestrictionType + - expected: cloudfront + op: eq + path: Distribution.DistributionConfig.ViewerCertificate.CertificateSource + - expected: 1 + op: eq + path: Distribution.DistributionConfig.ViewerCertificate.CloudFrontDefaultCertificate + - expected: TLSv1 + op: eq + path: Distribution.DistributionConfig.ViewerCertificate.MinimumProtocolVersion + - expected: d10e955chuoza2.cloudfront.net + op: eq + path: Distribution.DomainName + - expected: EJ143D8LZET8Z + op: eq + path: Distribution.Id + - expected: 0 + op: eq + path: Distribution.InProgressInvalidationBatches + - expected: 2020-01-10T21:49:42.866Z + op: eq + path: Distribution.LastModifiedTime + - expected: InProgress + op: eq + path: Distribution.Status + - expected: EK97K8QL2NH7G + op: eq + path: ETag + - expected: https://cloudfront.amazonaws.com/2019-03-26/distribution/EJ143D8LZET8Z + op: eq + path: Location + - expected: 37be2bc2-7906-4df9-892c-859ef544501a + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-createdistributionwithtags.1.response b/t/10_responses/cloudfront-createdistributionwithtags.1.response new file mode 100644 index 0000000000..008e4ebcd8 --- /dev/null +++ b/t/10_responses/cloudfront-createdistributionwithtags.1.response @@ -0,0 +1,21 @@ +--- +content: |- + + E321PRNPTD9OP2arn:aws:cloudfront::985173205561:distribution/E321PRNPTD9OP2InProgress2020-01-11T01:55:24.553Z0d1bjcd3631o7jz.cloudfront.netfalse0def-example0index2.html1pawsexamplebucket.s3.amazonaws.com-def-examplepawsexamplebucket.s3.amazonaws.com00pawsexamplebucket.s3.amazonaws.com-def-examplefalsenone00false0allow-all02HEADGET2HEADGETfalse8640031536000false000falsefalsePriceClass_AllfalsetrueTLSv1cloudfrontnone0http2true +headers: + client-date: 'Sat, 11 Jan 2020 01:55:24 GMT' + client-peer: 54.239.29.65:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 2768 + content-type: text/xml + date: 'Sat, 11 Jan 2020 01:55:24 GMT' + etag: E1FHTB53IZTFPM + location: https://cloudfront.amazonaws.com/2019-03-26/distribution/E321PRNPTD9OP2 + vary: Accept-Encoding + x-amzn-requestid: 29cfe151-cec4-4433-92c9-86e5e799f8cb +status: 201 diff --git a/t/10_responses/cloudfront-createdistributionwithtags.1.response.test.yml b/t/10_responses/cloudfront-createdistributionwithtags.1.response.test.yml new file mode 100644 index 0000000000..ba5dbddd54 --- /dev/null +++ b/t/10_responses/cloudfront-createdistributionwithtags.1.response.test.yml @@ -0,0 +1,187 @@ +--- +call: CreateDistributionWithTags +service: CloudFront +tests: + - expected: arn:aws:cloudfront::985173205561:distribution/E321PRNPTD9OP2 + op: eq + path: Distribution.ARN + - expected: 0 + op: eq + path: Distribution.ActiveTrustedSigners.Enabled + - expected: 0 + op: eq + path: Distribution.ActiveTrustedSigners.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Aliases.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.CacheBehaviors.Quantity + - expected: def-example + op: eq + path: Distribution.DistributionConfig.CallerReference + - expected: '' + op: eq + path: Distribution.DistributionConfig.Comment + - expected: 0 + op: eq + path: Distribution.DistributionConfig.CustomErrorResponses.Quantity + - expected: HEAD + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.0 + - expected: GET + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.1 + - expected: 2 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Quantity + - expected: HEAD + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Items.0 + - expected: GET + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Items.1 + - expected: 2 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.Compress + - expected: 86400 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.DefaultTTL + - expected: none + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Cookies.Forward + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Cookies.WhitelistedNames.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Headers.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.QueryString + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.QueryStringCacheKeys.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.LambdaFunctionAssociations.Quantity + - expected: 31536000 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.MaxTTL + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.MinTTL + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.SmoothStreaming + - expected: pawsexamplebucket.s3.amazonaws.com-def-example + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.TargetOriginId + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.TrustedSigners.Enabled + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.TrustedSigners.Quantity + - expected: allow-all + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ViewerProtocolPolicy + - expected: index2.html + op: eq + path: Distribution.DistributionConfig.DefaultRootObject + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Enabled + - expected: http2 + op: eq + path: Distribution.DistributionConfig.HttpVersion + - expected: 1 + op: eq + path: Distribution.DistributionConfig.IsIPV6Enabled + - expected: '' + op: eq + path: Distribution.DistributionConfig.Logging.Bucket + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Logging.Enabled + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Logging.IncludeCookies + - expected: '' + op: eq + path: Distribution.DistributionConfig.Logging.Prefix + - expected: 0 + op: eq + path: Distribution.DistributionConfig.OriginGroups.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomHeaders.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomOriginConfig.HTTPPort + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomOriginConfig.HTTPSPort + - expected: '' + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomOriginConfig.OriginProtocolPolicy + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomOriginConfig.OriginSslProtocols.Quantity + - expected: pawsexamplebucket.s3.amazonaws.com + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.DomainName + - expected: pawsexamplebucket.s3.amazonaws.com-def-example + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.Id + - expected: '' + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.S3OriginConfig.OriginAccessIdentity + - expected: 1 + op: eq + path: Distribution.DistributionConfig.Origins.Quantity + - expected: PriceClass_All + op: eq + path: Distribution.DistributionConfig.PriceClass + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Restrictions.GeoRestriction.Quantity + - expected: none + op: eq + path: Distribution.DistributionConfig.Restrictions.GeoRestriction.RestrictionType + - expected: cloudfront + op: eq + path: Distribution.DistributionConfig.ViewerCertificate.CertificateSource + - expected: 1 + op: eq + path: Distribution.DistributionConfig.ViewerCertificate.CloudFrontDefaultCertificate + - expected: TLSv1 + op: eq + path: Distribution.DistributionConfig.ViewerCertificate.MinimumProtocolVersion + - expected: d1bjcd3631o7jz.cloudfront.net + op: eq + path: Distribution.DomainName + - expected: E321PRNPTD9OP2 + op: eq + path: Distribution.Id + - expected: 0 + op: eq + path: Distribution.InProgressInvalidationBatches + - expected: 2020-01-11T01:55:24.553Z + op: eq + path: Distribution.LastModifiedTime + - expected: InProgress + op: eq + path: Distribution.Status + - expected: E1FHTB53IZTFPM + op: eq + path: ETag + - expected: https://cloudfront.amazonaws.com/2019-03-26/distribution/E321PRNPTD9OP2 + op: eq + path: Location + - expected: 29cfe151-cec4-4433-92c9-86e5e799f8cb + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-createdistributionwithtags.response b/t/10_responses/cloudfront-createdistributionwithtags.response new file mode 100644 index 0000000000..008e4ebcd8 --- /dev/null +++ b/t/10_responses/cloudfront-createdistributionwithtags.response @@ -0,0 +1,21 @@ +--- +content: |- + + E321PRNPTD9OP2arn:aws:cloudfront::985173205561:distribution/E321PRNPTD9OP2InProgress2020-01-11T01:55:24.553Z0d1bjcd3631o7jz.cloudfront.netfalse0def-example0index2.html1pawsexamplebucket.s3.amazonaws.com-def-examplepawsexamplebucket.s3.amazonaws.com00pawsexamplebucket.s3.amazonaws.com-def-examplefalsenone00false0allow-all02HEADGET2HEADGETfalse8640031536000false000falsefalsePriceClass_AllfalsetrueTLSv1cloudfrontnone0http2true +headers: + client-date: 'Sat, 11 Jan 2020 01:55:24 GMT' + client-peer: 54.239.29.65:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 2768 + content-type: text/xml + date: 'Sat, 11 Jan 2020 01:55:24 GMT' + etag: E1FHTB53IZTFPM + location: https://cloudfront.amazonaws.com/2019-03-26/distribution/E321PRNPTD9OP2 + vary: Accept-Encoding + x-amzn-requestid: 29cfe151-cec4-4433-92c9-86e5e799f8cb +status: 201 diff --git a/t/10_responses/cloudfront-createdistributionwithtags.response.test.yml b/t/10_responses/cloudfront-createdistributionwithtags.response.test.yml new file mode 100644 index 0000000000..ba5dbddd54 --- /dev/null +++ b/t/10_responses/cloudfront-createdistributionwithtags.response.test.yml @@ -0,0 +1,187 @@ +--- +call: CreateDistributionWithTags +service: CloudFront +tests: + - expected: arn:aws:cloudfront::985173205561:distribution/E321PRNPTD9OP2 + op: eq + path: Distribution.ARN + - expected: 0 + op: eq + path: Distribution.ActiveTrustedSigners.Enabled + - expected: 0 + op: eq + path: Distribution.ActiveTrustedSigners.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Aliases.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.CacheBehaviors.Quantity + - expected: def-example + op: eq + path: Distribution.DistributionConfig.CallerReference + - expected: '' + op: eq + path: Distribution.DistributionConfig.Comment + - expected: 0 + op: eq + path: Distribution.DistributionConfig.CustomErrorResponses.Quantity + - expected: HEAD + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.0 + - expected: GET + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.1 + - expected: 2 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Quantity + - expected: HEAD + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Items.0 + - expected: GET + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Items.1 + - expected: 2 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.Compress + - expected: 86400 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.DefaultTTL + - expected: none + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Cookies.Forward + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Cookies.WhitelistedNames.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Headers.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.QueryString + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.QueryStringCacheKeys.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.LambdaFunctionAssociations.Quantity + - expected: 31536000 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.MaxTTL + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.MinTTL + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.SmoothStreaming + - expected: pawsexamplebucket.s3.amazonaws.com-def-example + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.TargetOriginId + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.TrustedSigners.Enabled + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.TrustedSigners.Quantity + - expected: allow-all + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ViewerProtocolPolicy + - expected: index2.html + op: eq + path: Distribution.DistributionConfig.DefaultRootObject + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Enabled + - expected: http2 + op: eq + path: Distribution.DistributionConfig.HttpVersion + - expected: 1 + op: eq + path: Distribution.DistributionConfig.IsIPV6Enabled + - expected: '' + op: eq + path: Distribution.DistributionConfig.Logging.Bucket + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Logging.Enabled + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Logging.IncludeCookies + - expected: '' + op: eq + path: Distribution.DistributionConfig.Logging.Prefix + - expected: 0 + op: eq + path: Distribution.DistributionConfig.OriginGroups.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomHeaders.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomOriginConfig.HTTPPort + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomOriginConfig.HTTPSPort + - expected: '' + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomOriginConfig.OriginProtocolPolicy + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomOriginConfig.OriginSslProtocols.Quantity + - expected: pawsexamplebucket.s3.amazonaws.com + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.DomainName + - expected: pawsexamplebucket.s3.amazonaws.com-def-example + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.Id + - expected: '' + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.S3OriginConfig.OriginAccessIdentity + - expected: 1 + op: eq + path: Distribution.DistributionConfig.Origins.Quantity + - expected: PriceClass_All + op: eq + path: Distribution.DistributionConfig.PriceClass + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Restrictions.GeoRestriction.Quantity + - expected: none + op: eq + path: Distribution.DistributionConfig.Restrictions.GeoRestriction.RestrictionType + - expected: cloudfront + op: eq + path: Distribution.DistributionConfig.ViewerCertificate.CertificateSource + - expected: 1 + op: eq + path: Distribution.DistributionConfig.ViewerCertificate.CloudFrontDefaultCertificate + - expected: TLSv1 + op: eq + path: Distribution.DistributionConfig.ViewerCertificate.MinimumProtocolVersion + - expected: d1bjcd3631o7jz.cloudfront.net + op: eq + path: Distribution.DomainName + - expected: E321PRNPTD9OP2 + op: eq + path: Distribution.Id + - expected: 0 + op: eq + path: Distribution.InProgressInvalidationBatches + - expected: 2020-01-11T01:55:24.553Z + op: eq + path: Distribution.LastModifiedTime + - expected: InProgress + op: eq + path: Distribution.Status + - expected: E1FHTB53IZTFPM + op: eq + path: ETag + - expected: https://cloudfront.amazonaws.com/2019-03-26/distribution/E321PRNPTD9OP2 + op: eq + path: Location + - expected: 29cfe151-cec4-4433-92c9-86e5e799f8cb + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-createfieldlevelencryptionconfig.response b/t/10_responses/cloudfront-createfieldlevelencryptionconfig.response new file mode 100644 index 0000000000..f47f041294 --- /dev/null +++ b/t/10_responses/cloudfront-createfieldlevelencryptionconfig.response @@ -0,0 +1,20 @@ +--- +content: |- + + C26GE31LXDSQZI2020-01-09T21:16:52.064Z01-01-2020:00001No Gerry you can't come!true1no_conigP14TNUMMKLEPXXtrue1URLEncodedP14TNUMMKLEPXXapplication/x-www-form-urlencoded +headers: + client-date: 'Thu, 09 Jan 2020 21:16:52 GMT' + client-peer: 54.239.29.26:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 1028 + content-type: text/xml + date: 'Thu, 09 Jan 2020 21:16:51 GMT' + etag: E3MYZU38G7JCEI + location: https://cloudfront.amazonaws.com/2019-03-26/field-level-encryption/C26GE31LXDSQZI + x-amzn-requestid: ab3f3f85-631e-4028-b481-15e3e4ab0b17 +status: 201 diff --git a/t/10_responses/cloudfront-createfieldlevelencryptionconfig.response.test.yml b/t/10_responses/cloudfront-createfieldlevelencryptionconfig.response.test.yml new file mode 100644 index 0000000000..6fcb04fd8e --- /dev/null +++ b/t/10_responses/cloudfront-createfieldlevelencryptionconfig.response.test.yml @@ -0,0 +1,52 @@ +--- +call: CreateFieldLevelEncryptionConfig +service: CloudFront +tests: + - expected: E3MYZU38G7JCEI + op: eq + path: ETag + - expected: 01-01-2020:00001 + op: eq + path: FieldLevelEncryption.FieldLevelEncryptionConfig.CallerReference + - expected: No Gerry you can't come! + op: eq + path: FieldLevelEncryption.FieldLevelEncryptionConfig.Comment + - expected: application/x-www-form-urlencoded + op: eq + path: FieldLevelEncryption.FieldLevelEncryptionConfig.ContentTypeProfileConfig.ContentTypeProfiles.Items.0.ContentType + - expected: URLEncoded + op: eq + path: FieldLevelEncryption.FieldLevelEncryptionConfig.ContentTypeProfileConfig.ContentTypeProfiles.Items.0.Format + - expected: P14TNUMMKLEPXX + op: eq + path: FieldLevelEncryption.FieldLevelEncryptionConfig.ContentTypeProfileConfig.ContentTypeProfiles.Items.0.ProfileId + - expected: 1 + op: eq + path: FieldLevelEncryption.FieldLevelEncryptionConfig.ContentTypeProfileConfig.ContentTypeProfiles.Quantity + - expected: 1 + op: eq + path: FieldLevelEncryption.FieldLevelEncryptionConfig.ContentTypeProfileConfig.ForwardWhenContentTypeIsUnknown + - expected: 1 + op: eq + path: FieldLevelEncryption.FieldLevelEncryptionConfig.QueryArgProfileConfig.ForwardWhenQueryArgProfileIsUnknown + - expected: P14TNUMMKLEPXX + op: eq + path: FieldLevelEncryption.FieldLevelEncryptionConfig.QueryArgProfileConfig.QueryArgProfiles.Items.0.ProfileId + - expected: no_conig + op: eq + path: FieldLevelEncryption.FieldLevelEncryptionConfig.QueryArgProfileConfig.QueryArgProfiles.Items.0.QueryArg + - expected: 1 + op: eq + path: FieldLevelEncryption.FieldLevelEncryptionConfig.QueryArgProfileConfig.QueryArgProfiles.Quantity + - expected: C26GE31LXDSQZI + op: eq + path: FieldLevelEncryption.Id + - expected: 2020-01-09T21:16:52.064Z + op: eq + path: FieldLevelEncryption.LastModifiedTime + - expected: https://cloudfront.amazonaws.com/2019-03-26/field-level-encryption/C26GE31LXDSQZI + op: eq + path: Location + - expected: ab3f3f85-631e-4028-b481-15e3e4ab0b17 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-createfieldlevelencryptionprofile.response b/t/10_responses/cloudfront-createfieldlevelencryptionprofile.response new file mode 100644 index 0000000000..295399e7b7 --- /dev/null +++ b/t/10_responses/cloudfront-createfieldlevelencryptionprofile.response @@ -0,0 +1,20 @@ +--- +content: |- + + P14TNUMMKLEPXX2020-01-09T20:33:35.676ZPawsCloudConfig2020-01-01-20:01Rick was here1K3ODSO6SYTI4ZGOpenSSL2some*None* +headers: + client-date: 'Thu, 09 Jan 2020 20:33:35 GMT' + client-peer: 54.239.29.26:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 727 + content-type: text/xml + date: 'Thu, 09 Jan 2020 20:33:35 GMT' + etag: E7FXFS7252NGR + location: https://cloudfront.amazonaws.com/2019-03-26/field-level-encryption-profile/P14TNUMMKLEPXX + x-amzn-requestid: e94a8ef6-8ee9-4b06-8a58-3aa40089fb6d +status: 201 diff --git a/t/10_responses/cloudfront-createfieldlevelencryptionprofile.response.test.yml b/t/10_responses/cloudfront-createfieldlevelencryptionprofile.response.test.yml new file mode 100644 index 0000000000..255924bd3e --- /dev/null +++ b/t/10_responses/cloudfront-createfieldlevelencryptionprofile.response.test.yml @@ -0,0 +1,46 @@ +--- +call: CreateFieldLevelEncryptionProfile +service: CloudFront +tests: + - expected: E7FXFS7252NGR + op: eq + path: ETag + - expected: 2020-01-01-20:01 + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.CallerReference + - expected: Rick was here + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.Comment + - expected: some* + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.0.FieldPatterns.Items.0 + - expected: None* + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.0.FieldPatterns.Items.1 + - expected: 2 + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.0.FieldPatterns.Quantity + - expected: OpenSSL + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.0.ProviderId + - expected: K3ODSO6SYTI4ZG + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.0.PublicKeyId + - expected: 1 + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.EncryptionEntities.Quantity + - expected: PawsCloudConfig + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.Name + - expected: P14TNUMMKLEPXX + op: eq + path: FieldLevelEncryptionProfile.Id + - expected: 2020-01-09T20:33:35.676Z + op: eq + path: FieldLevelEncryptionProfile.LastModifiedTime + - expected: https://cloudfront.amazonaws.com/2019-03-26/field-level-encryption-profile/P14TNUMMKLEPXX + op: eq + path: Location + - expected: e94a8ef6-8ee9-4b06-8a58-3aa40089fb6d + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-createinvalidation.response b/t/10_responses/cloudfront-createinvalidation.response index cf31dd21a8..dd33f2a1fb 100644 --- a/t/10_responses/cloudfront-createinvalidation.response +++ b/t/10_responses/cloudfront-createinvalidation.response @@ -1,11 +1,19 @@ --- content: |- - I3U0TWG6JMVDSPInProgress2016-10-19T21:30:20.148Z2/object1/object2YYY + I2ICM4994YF3KQInProgress2020-01-09T22:42:47.577Z1/images/*.bmp2020-01010-001 headers: - content-length: 377 + client-date: 'Thu, 09 Jan 2020 22:42:47 GMT' + client-peer: 54.239.29.26:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 372 content-type: text/xml - date: 'Wed, 19 Oct 2016 21:30:20 GMT' - location: https://cloudfront.amazonaws.com/2016-09-07/distribution/ECFFL7U0PVO9A/invalidation/I3U0TWG6JMVDSP - x-amzn-requestid: 3c56dea9-9643-11e6-9a4a-b9668da83fc7 + date: 'Thu, 09 Jan 2020 22:42:47 GMT' + location: https://cloudfront.amazonaws.com/2019-03-26/distribution/E2F696NMEQJ5SH/invalidation/I2ICM4994YF3KQ + x-amzn-requestid: cb28adf9-96e0-4ee0-adb0-14744f860026 status: 201 diff --git a/t/10_responses/cloudfront-createinvalidation.response.test.yml b/t/10_responses/cloudfront-createinvalidation.response.test.yml index a51923317d..3cdc5ea29c 100644 --- a/t/10_responses/cloudfront-createinvalidation.response.test.yml +++ b/t/10_responses/cloudfront-createinvalidation.response.test.yml @@ -1,4 +1,28 @@ --- call: CreateInvalidation service: CloudFront -tests: [] +tests: + - expected: 2020-01-09T22:42:47.577Z + op: eq + path: Invalidation.CreateTime + - expected: I2ICM4994YF3KQ + op: eq + path: Invalidation.Id + - expected: 2020-01010-001 + op: eq + path: Invalidation.InvalidationBatch.CallerReference + - expected: /images/*.bmp + op: eq + path: Invalidation.InvalidationBatch.Paths.Items.0 + - expected: 1 + op: eq + path: Invalidation.InvalidationBatch.Paths.Quantity + - expected: InProgress + op: eq + path: Invalidation.Status + - expected: https://cloudfront.amazonaws.com/2019-03-26/distribution/E2F696NMEQJ5SH/invalidation/I2ICM4994YF3KQ + op: eq + path: Location + - expected: cb28adf9-96e0-4ee0-adb0-14744f860026 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-createpublickey.response b/t/10_responses/cloudfront-createpublickey.response new file mode 100644 index 0000000000..7875327780 --- /dev/null +++ b/t/10_responses/cloudfront-createpublickey.response @@ -0,0 +1,29 @@ +--- +content: |- + + K18H03HBTFHOUA2020-01-08T22:05:14.150Z01-01-2020-000001TestKeyPaws-----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp5X8pCq9EllW/vd8dYc2 + oCl58nAuSoYTfEdzR/XQGLKugBqwSSHtfyG10bAsNjS6UnqfK3vG7QSo9zgiCvCn + KUF4J9mCEzUMCkiKcqZn169YheeMKCF04Q2xmdIMlw1FA/VGZ3HhC49hsIzAKlqC + q/3n3nEdb4Gf4J3KvY+KW+YcZJZQQG4QzqeUG/01MHs47RzhA9xFRJDvSXf4EGTT + eg6IAbeOlGDxiQ0d25PqZ9y+LVpa6pVy86qHnvkzbMHE2yGCiQKIuC60D4AJS/dx + 2TLLOAI8w0zm3aSvd1ktNZZMgNlnUkJFEMMlq3H7edzkb2NDNvGQ07cwJRU9h4Wt + bwIDAQAB + -----END PUBLIC KEY----- + This is a test key +headers: + client-date: 'Wed, 08 Jan 2020 22:05:14 GMT' + client-peer: 54.239.29.51:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 799 + content-type: text/xml + date: 'Wed, 08 Jan 2020 22:05:13 GMT' + etag: E3KFZB10NV5FJD + location: https://cloudfront.amazonaws.com/2019-03-26/public-key/K18H03HBTFHOUA + x-amzn-requestid: fe93b21a-4b58-4d59-b4b8-3e5d4603440c +status: 201 diff --git a/t/10_responses/cloudfront-createpublickey.response.test.yml b/t/10_responses/cloudfront-createpublickey.response.test.yml new file mode 100644 index 0000000000..4c8b6076f9 --- /dev/null +++ b/t/10_responses/cloudfront-createpublickey.response.test.yml @@ -0,0 +1,40 @@ +--- +call: CreatePublicKey +service: CloudFront +tests: + - expected: E3KFZB10NV5FJD + op: eq + path: ETag + - expected: https://cloudfront.amazonaws.com/2019-03-26/public-key/K18H03HBTFHOUA + op: eq + path: Location + - expected: 2020-01-08T22:05:14.150Z + op: eq + path: PublicKey.CreatedTime + - expected: K18H03HBTFHOUA + op: eq + path: PublicKey.Id + - expected: 01-01-2020-000001 + op: eq + path: PublicKey.PublicKeyConfig.CallerReference + - expected: This is a test key + op: eq + path: PublicKey.PublicKeyConfig.Comment + - expected: | + -----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp5X8pCq9EllW/vd8dYc2 + oCl58nAuSoYTfEdzR/XQGLKugBqwSSHtfyG10bAsNjS6UnqfK3vG7QSo9zgiCvCn + KUF4J9mCEzUMCkiKcqZn169YheeMKCF04Q2xmdIMlw1FA/VGZ3HhC49hsIzAKlqC + q/3n3nEdb4Gf4J3KvY+KW+YcZJZQQG4QzqeUG/01MHs47RzhA9xFRJDvSXf4EGTT + eg6IAbeOlGDxiQ0d25PqZ9y+LVpa6pVy86qHnvkzbMHE2yGCiQKIuC60D4AJS/dx + 2TLLOAI8w0zm3aSvd1ktNZZMgNlnUkJFEMMlq3H7edzkb2NDNvGQ07cwJRU9h4Wt + bwIDAQAB + -----END PUBLIC KEY----- + op: eq + path: PublicKey.PublicKeyConfig.EncodedKey + - expected: TestKeyPaws + op: eq + path: PublicKey.PublicKeyConfig.Name + - expected: fe93b21a-4b58-4d59-b4b8-3e5d4603440c + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-createstreamingdistribution.response b/t/10_responses/cloudfront-createstreamingdistribution.response new file mode 100644 index 0000000000..08042ba6d3 --- /dev/null +++ b/t/10_responses/cloudfront-createstreamingdistribution.response @@ -0,0 +1,20 @@ +--- +content: |- + + E17937UBVFIW2Larn:aws:cloudfront::985173205561:streaming-distribution/E17937UBVFIW2LInProgress2020-01-11T18:34:18.239Zs3pn52kbh66jq2.cloudfront.netfalse02020:010101oneoffpaws.s3.amazonaws.comorigin-access-identity/cloudfront/E3D5Y5RWA05QO10I squanch, your Squanch, Squancefalsefalse0PriceClass_100false +headers: + client-date: 'Sat, 11 Jan 2020 18:34:18 GMT' + client-peer: 54.239.29.51:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 1044 + content-type: text/xml + date: 'Sat, 11 Jan 2020 18:34:17 GMT' + etag: EL9J97I2UK4RD + location: https://cloudfront.amazonaws.com/2019-03-26/streaming-distribution/E17937UBVFIW2L + x-amzn-requestid: 6830b8f6-4dcc-4fc8-9d03-62a2383085b2 +status: 201 diff --git a/t/10_responses/cloudfront-createstreamingdistribution.response.test.yml b/t/10_responses/cloudfront-createstreamingdistribution.response.test.yml new file mode 100644 index 0000000000..13768d1215 --- /dev/null +++ b/t/10_responses/cloudfront-createstreamingdistribution.response.test.yml @@ -0,0 +1,70 @@ +--- +call: CreateStreamingDistribution +service: CloudFront +tests: + - expected: EL9J97I2UK4RD + op: eq + path: ETag + - expected: https://cloudfront.amazonaws.com/2019-03-26/streaming-distribution/E17937UBVFIW2L + op: eq + path: Location + - expected: arn:aws:cloudfront::985173205561:streaming-distribution/E17937UBVFIW2L + op: eq + path: StreamingDistribution.ARN + - expected: 0 + op: eq + path: StreamingDistribution.ActiveTrustedSigners.Enabled + - expected: 0 + op: eq + path: StreamingDistribution.ActiveTrustedSigners.Quantity + - expected: s3pn52kbh66jq2.cloudfront.net + op: eq + path: StreamingDistribution.DomainName + - expected: E17937UBVFIW2L + op: eq + path: StreamingDistribution.Id + - expected: 2020-01-11T18:34:18.239Z + op: eq + path: StreamingDistribution.LastModifiedTime + - expected: InProgress + op: eq + path: StreamingDistribution.Status + - expected: 0 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Aliases.Quantity + - expected: 2020:010101 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.CallerReference + - expected: 'I squanch, your Squanch, Squance' + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Comment + - expected: 0 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Enabled + - expected: '' + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Logging.Bucket + - expected: 0 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Logging.Enabled + - expected: '' + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Logging.Prefix + - expected: PriceClass_100 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.PriceClass + - expected: oneoffpaws.s3.amazonaws.com + op: eq + path: StreamingDistribution.StreamingDistributionConfig.S3Origin.DomainName + - expected: origin-access-identity/cloudfront/E3D5Y5RWA05QO1 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.S3Origin.OriginAccessIdentity + - expected: 0 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.TrustedSigners.Enabled + - expected: 0 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.TrustedSigners.Quantity + - expected: 6830b8f6-4dcc-4fc8-9d03-62a2383085b2 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-createstreamingdistributionwithtags.1.response b/t/10_responses/cloudfront-createstreamingdistributionwithtags.1.response new file mode 100644 index 0000000000..e119fa9dfe --- /dev/null +++ b/t/10_responses/cloudfront-createstreamingdistributionwithtags.1.response @@ -0,0 +1,18 @@ +--- +content: |- + + SenderStreamingDistributionAlreadyExistsThe caller reference that you are using to create a streaming distribution is associated with another streaming distribution. Already exists: E17937UBVFIW2L0bf14849-30d7-4a43-b907-b82da3e19bc9 +headers: + client-date: 'Sat, 11 Jan 2020 18:36:20 GMT' + client-peer: 54.239.29.26:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 424 + content-type: text/xml + date: 'Sat, 11 Jan 2020 18:36:19 GMT' + x-amzn-requestid: 0bf14849-30d7-4a43-b907-b82da3e19bc9 +status: 409 diff --git a/t/10_responses/cloudfront-createstreamingdistributionwithtags.1.response.test.yml b/t/10_responses/cloudfront-createstreamingdistributionwithtags.1.response.test.yml new file mode 100644 index 0000000000..0d5724b426 --- /dev/null +++ b/t/10_responses/cloudfront-createstreamingdistributionwithtags.1.response.test.yml @@ -0,0 +1,16 @@ +--- +call: CreateStreamingDistributionWithTags +service: CloudFront +tests: + - expected: 409 + op: eq + path: code + - expected: 409 + op: eq + path: http_status + - expected: 0bf14849-30d7-4a43-b907-b82da3e19bc9 + op: eq + path: request_id + - expected: 0bf14849-30d7-4a43-b907-b82da3e19bc9 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-createstreamingdistributionwithtags.response b/t/10_responses/cloudfront-createstreamingdistributionwithtags.response new file mode 100644 index 0000000000..08042ba6d3 --- /dev/null +++ b/t/10_responses/cloudfront-createstreamingdistributionwithtags.response @@ -0,0 +1,20 @@ +--- +content: |- + + E17937UBVFIW2Larn:aws:cloudfront::985173205561:streaming-distribution/E17937UBVFIW2LInProgress2020-01-11T18:34:18.239Zs3pn52kbh66jq2.cloudfront.netfalse02020:010101oneoffpaws.s3.amazonaws.comorigin-access-identity/cloudfront/E3D5Y5RWA05QO10I squanch, your Squanch, Squancefalsefalse0PriceClass_100false +headers: + client-date: 'Sat, 11 Jan 2020 18:34:18 GMT' + client-peer: 54.239.29.51:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 1044 + content-type: text/xml + date: 'Sat, 11 Jan 2020 18:34:17 GMT' + etag: EL9J97I2UK4RD + location: https://cloudfront.amazonaws.com/2019-03-26/streaming-distribution/E17937UBVFIW2L + x-amzn-requestid: 6830b8f6-4dcc-4fc8-9d03-62a2383085b2 +status: 201 diff --git a/t/10_responses/cloudfront-createstreamingdistributionwithtags.response.test.yml b/t/10_responses/cloudfront-createstreamingdistributionwithtags.response.test.yml new file mode 100644 index 0000000000..79aafae43e --- /dev/null +++ b/t/10_responses/cloudfront-createstreamingdistributionwithtags.response.test.yml @@ -0,0 +1,70 @@ +--- +call: CreateStreamingDistributionWithTags +service: CloudFront +tests: + - expected: EL9J97I2UK4RD + op: eq + path: ETag + - expected: https://cloudfront.amazonaws.com/2019-03-26/streaming-distribution/E17937UBVFIW2L + op: eq + path: Location + - expected: arn:aws:cloudfront::985173205561:streaming-distribution/E17937UBVFIW2L + op: eq + path: StreamingDistribution.ARN + - expected: 0 + op: eq + path: StreamingDistribution.ActiveTrustedSigners.Enabled + - expected: 0 + op: eq + path: StreamingDistribution.ActiveTrustedSigners.Quantity + - expected: s3pn52kbh66jq2.cloudfront.net + op: eq + path: StreamingDistribution.DomainName + - expected: E17937UBVFIW2L + op: eq + path: StreamingDistribution.Id + - expected: 2020-01-11T18:34:18.239Z + op: eq + path: StreamingDistribution.LastModifiedTime + - expected: InProgress + op: eq + path: StreamingDistribution.Status + - expected: 0 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Aliases.Quantity + - expected: 2020:010101 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.CallerReference + - expected: 'I squanch, your Squanch, Squance' + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Comment + - expected: 0 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Enabled + - expected: '' + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Logging.Bucket + - expected: 0 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Logging.Enabled + - expected: '' + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Logging.Prefix + - expected: PriceClass_100 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.PriceClass + - expected: oneoffpaws.s3.amazonaws.com + op: eq + path: StreamingDistribution.StreamingDistributionConfig.S3Origin.DomainName + - expected: origin-access-identity/cloudfront/E3D5Y5RWA05QO1 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.S3Origin.OriginAccessIdentity + - expected: 0 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.TrustedSigners.Enabled + - expected: 0 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.TrustedSigners.Quantity + - expected: 6830b8f6-4dcc-4fc8-9d03-62a2383085b2 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-deletecloudfrontoriginaccessidentity.response b/t/10_responses/cloudfront-deletecloudfrontoriginaccessidentity.response new file mode 100644 index 0000000000..5d18c6096f --- /dev/null +++ b/t/10_responses/cloudfront-deletecloudfrontoriginaccessidentity.response @@ -0,0 +1,15 @@ +--- +content: '' +headers: + client-date: 'Wed, 08 Jan 2020 21:44:36 GMT' + client-peer: 54.239.29.65:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-type: text/xml + date: 'Wed, 08 Jan 2020 21:44:36 GMT' + x-amzn-requestid: ff8462e0-82eb-4e58-8cd5-95276eb535d2 +status: 204 diff --git a/t/10_responses/cloudfront-deletecloudfrontoriginaccessidentity.response.test.yml b/t/10_responses/cloudfront-deletecloudfrontoriginaccessidentity.response.test.yml new file mode 100644 index 0000000000..ea7d7fab61 --- /dev/null +++ b/t/10_responses/cloudfront-deletecloudfrontoriginaccessidentity.response.test.yml @@ -0,0 +1,7 @@ +--- +call: DeleteCloudFrontOriginAccessIdentity +service: CloudFront +tests: + - expected: ff8462e0-82eb-4e58-8cd5-95276eb535d2 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-deletedistribution.response b/t/10_responses/cloudfront-deletedistribution.response new file mode 100644 index 0000000000..f6f8668dae --- /dev/null +++ b/t/10_responses/cloudfront-deletedistribution.response @@ -0,0 +1,15 @@ +--- +content: '' +headers: + client-date: 'Sat, 11 Jan 2020 01:43:56 GMT' + client-peer: 54.239.29.65:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-type: text/xml + date: 'Sat, 11 Jan 2020 01:43:55 GMT' + x-amzn-requestid: fc23940d-d256-4d77-9646-46c1074973d0 +status: 204 diff --git a/t/10_responses/cloudfront-deletedistribution.response.test.yml b/t/10_responses/cloudfront-deletedistribution.response.test.yml new file mode 100644 index 0000000000..455cbc8510 --- /dev/null +++ b/t/10_responses/cloudfront-deletedistribution.response.test.yml @@ -0,0 +1,7 @@ +--- +call: DeleteDistribution +service: CloudFront +tests: + - expected: fc23940d-d256-4d77-9646-46c1074973d0 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-deletefieldlevelencryptionconfig.response b/t/10_responses/cloudfront-deletefieldlevelencryptionconfig.response new file mode 100644 index 0000000000..8dd09c9e3e --- /dev/null +++ b/t/10_responses/cloudfront-deletefieldlevelencryptionconfig.response @@ -0,0 +1,15 @@ +--- +content: '' +headers: + client-date: 'Thu, 09 Jan 2020 21:50:35 GMT' + client-peer: 54.239.29.26:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-type: text/xml + date: 'Thu, 09 Jan 2020 21:50:34 GMT' + x-amzn-requestid: 5a89f879-e171-480b-bc91-78b72b091f7e +status: 204 diff --git a/t/10_responses/cloudfront-deletefieldlevelencryptionconfig.response.test.yml b/t/10_responses/cloudfront-deletefieldlevelencryptionconfig.response.test.yml new file mode 100644 index 0000000000..acd7449fcb --- /dev/null +++ b/t/10_responses/cloudfront-deletefieldlevelencryptionconfig.response.test.yml @@ -0,0 +1,7 @@ +--- +call: DeleteFieldLevelEncryptionConfig +service: CloudFront +tests: + - expected: 5a89f879-e171-480b-bc91-78b72b091f7e + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-deletefieldlevelencryptionprofile.response b/t/10_responses/cloudfront-deletefieldlevelencryptionprofile.response new file mode 100644 index 0000000000..6308c614ea --- /dev/null +++ b/t/10_responses/cloudfront-deletefieldlevelencryptionprofile.response @@ -0,0 +1,15 @@ +--- +content: '' +headers: + client-date: 'Thu, 09 Jan 2020 21:09:45 GMT' + client-peer: 54.239.29.26:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-type: text/xml + date: 'Thu, 09 Jan 2020 21:09:44 GMT' + x-amzn-requestid: fddb0708-0064-4a27-9db2-9762de4f0f16 +status: 204 diff --git a/t/10_responses/cloudfront-deletefieldlevelencryptionprofile.response.test.yml b/t/10_responses/cloudfront-deletefieldlevelencryptionprofile.response.test.yml new file mode 100644 index 0000000000..e0fed879bd --- /dev/null +++ b/t/10_responses/cloudfront-deletefieldlevelencryptionprofile.response.test.yml @@ -0,0 +1,7 @@ +--- +call: DeleteFieldLevelEncryptionProfile +service: CloudFront +tests: + - expected: fddb0708-0064-4a27-9db2-9762de4f0f16 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-deletepublickey.response b/t/10_responses/cloudfront-deletepublickey.response new file mode 100644 index 0000000000..9f4316322b --- /dev/null +++ b/t/10_responses/cloudfront-deletepublickey.response @@ -0,0 +1,15 @@ +--- +content: '' +headers: + client-date: 'Wed, 08 Jan 2020 22:28:19 GMT' + client-peer: 54.239.29.65:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-type: text/xml + date: 'Wed, 08 Jan 2020 22:28:18 GMT' + x-amzn-requestid: 0c41be91-4428-4839-a400-4c36ac948e13 +status: 204 diff --git a/t/10_responses/cloudfront-deletepublickey.response.test.yml b/t/10_responses/cloudfront-deletepublickey.response.test.yml new file mode 100644 index 0000000000..8ccfadc0f1 --- /dev/null +++ b/t/10_responses/cloudfront-deletepublickey.response.test.yml @@ -0,0 +1,7 @@ +--- +call: DeletePublicKey +service: CloudFront +tests: + - expected: 0c41be91-4428-4839-a400-4c36ac948e13 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-deletestreamingdistribution.response b/t/10_responses/cloudfront-deletestreamingdistribution.response new file mode 100644 index 0000000000..5e75bf405c --- /dev/null +++ b/t/10_responses/cloudfront-deletestreamingdistribution.response @@ -0,0 +1,15 @@ +--- +content: '' +headers: + client-date: 'Sat, 11 Jan 2020 19:36:28 GMT' + client-peer: 54.239.29.65:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-type: text/xml + date: 'Sat, 11 Jan 2020 19:36:28 GMT' + x-amzn-requestid: 0c254d7a-c9ad-4a4a-b2d6-4138b306574f +status: 204 diff --git a/t/10_responses/cloudfront-deletestreamingdistribution.response.test.yml b/t/10_responses/cloudfront-deletestreamingdistribution.response.test.yml new file mode 100644 index 0000000000..2dfea0bd8f --- /dev/null +++ b/t/10_responses/cloudfront-deletestreamingdistribution.response.test.yml @@ -0,0 +1,7 @@ +--- +call: DeleteStreamingDistribution +service: CloudFront +tests: + - expected: 0c254d7a-c9ad-4a4a-b2d6-4138b306574f + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-getcloudfrontoriginaccessidentity.response b/t/10_responses/cloudfront-getcloudfrontoriginaccessidentity.response new file mode 100644 index 0000000000..33e2444fb1 --- /dev/null +++ b/t/10_responses/cloudfront-getcloudfrontoriginaccessidentity.response @@ -0,0 +1,19 @@ +--- +content: |- + + E3D5Y5RWA05QO184f47125a87a26ea5ba42f3be65fbefebdb7440d82e7d27907c52c969ac4f6c05ef03046db8cd6f74dab632e70ffcd71some test hereThis is Mr Poopy Buthole calling +headers: + client-date: 'Tue, 07 Jan 2020 21:24:58 GMT' + client-peer: 54.239.29.65:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 478 + content-type: text/xml + date: 'Tue, 07 Jan 2020 21:24:58 GMT' + etag: E2J612BD0LRDHQ + x-amzn-requestid: 27ed5f10-3194-11ea-ab43-233adb4611cb +status: 200 diff --git a/t/10_responses/cloudfront-getcloudfrontoriginaccessidentity.response.test.yml b/t/10_responses/cloudfront-getcloudfrontoriginaccessidentity.response.test.yml new file mode 100644 index 0000000000..da0e65e641 --- /dev/null +++ b/t/10_responses/cloudfront-getcloudfrontoriginaccessidentity.response.test.yml @@ -0,0 +1,22 @@ +--- +call: GetCloudFrontOriginAccessIdentity +service: CloudFront +tests: + - expected: some test here + op: eq + path: CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig.CallerReference + - expected: This is Mr Poopy Buthole calling + op: eq + path: CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig.Comment + - expected: E3D5Y5RWA05QO1 + op: eq + path: CloudFrontOriginAccessIdentity.Id + - expected: 84f47125a87a26ea5ba42f3be65fbefebdb7440d82e7d27907c52c969ac4f6c05ef03046db8cd6f74dab632e70ffcd71 + op: eq + path: CloudFrontOriginAccessIdentity.S3CanonicalUserId + - expected: E2J612BD0LRDHQ + op: eq + path: ETag + - expected: 27ed5f10-3194-11ea-ab43-233adb4611cb + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-getcloudfrontoriginaccessidentityconfig.response b/t/10_responses/cloudfront-getcloudfrontoriginaccessidentityconfig.response new file mode 100644 index 0000000000..8c0c8a754f --- /dev/null +++ b/t/10_responses/cloudfront-getcloudfrontoriginaccessidentityconfig.response @@ -0,0 +1,19 @@ +--- +content: |- + + some test hereThis is Mr Poopy Buthole calling +headers: + client-date: 'Tue, 07 Jan 2020 21:28:09 GMT' + client-peer: 54.239.29.65:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 255 + content-type: text/xml + date: 'Tue, 07 Jan 2020 21:28:08 GMT' + etag: E2J612BD0LRDHQ + x-amzn-requestid: 9a01ee7e-3194-11ea-984b-c7d48b548267 +status: 200 diff --git a/t/10_responses/cloudfront-getcloudfrontoriginaccessidentityconfig.response.test.yml b/t/10_responses/cloudfront-getcloudfrontoriginaccessidentityconfig.response.test.yml new file mode 100644 index 0000000000..904974425a --- /dev/null +++ b/t/10_responses/cloudfront-getcloudfrontoriginaccessidentityconfig.response.test.yml @@ -0,0 +1,16 @@ +--- +call: GetCloudFrontOriginAccessIdentityConfig +service: CloudFront +tests: + - expected: some test here + op: eq + path: CloudFrontOriginAccessIdentityConfig.CallerReference + - expected: This is Mr Poopy Buthole calling + op: eq + path: CloudFrontOriginAccessIdentityConfig.Comment + - expected: E2J612BD0LRDHQ + op: eq + path: ETag + - expected: 9a01ee7e-3194-11ea-984b-c7d48b548267 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-getdistribution.response b/t/10_responses/cloudfront-getdistribution.response new file mode 100644 index 0000000000..49d125bcb8 --- /dev/null +++ b/t/10_responses/cloudfront-getdistribution.response @@ -0,0 +1,20 @@ +--- +content: |- + + EJ143D8LZET8Zarn:aws:cloudfront::985173205561:distribution/EJ143D8LZET8ZInProgress2020-01-10T21:49:42.866Z0d10e955chuoza2.cloudfront.netfalse0cli-example0index.html1pawsexamplebucket.s3.amazonaws.com-cli-examplepawsexamplebucket.s3.amazonaws.com00pawsexamplebucket.s3.amazonaws.com-cli-examplefalsenone00false0allow-all02HEADGET2HEADGETfalse8640031536000false000falsefalsePriceClass_AlltruetrueTLSv1cloudfrontnone0http2true +headers: + client-date: 'Fri, 10 Jan 2020 21:56:46 GMT' + client-peer: 54.239.29.65:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 2764 + content-type: text/xml + date: 'Fri, 10 Jan 2020 21:56:46 GMT' + etag: EK97K8QL2NH7G + vary: Accept-Encoding + x-amzn-requestid: 934928a9-96d5-4d40-b9d6-5acb3d2ac326 +status: 200 diff --git a/t/10_responses/cloudfront-getdistribution.response.test.yml b/t/10_responses/cloudfront-getdistribution.response.test.yml new file mode 100644 index 0000000000..40c4dc7e02 --- /dev/null +++ b/t/10_responses/cloudfront-getdistribution.response.test.yml @@ -0,0 +1,184 @@ +--- +call: GetDistribution +service: CloudFront +tests: + - expected: arn:aws:cloudfront::985173205561:distribution/EJ143D8LZET8Z + op: eq + path: Distribution.ARN + - expected: 0 + op: eq + path: Distribution.ActiveTrustedSigners.Enabled + - expected: 0 + op: eq + path: Distribution.ActiveTrustedSigners.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Aliases.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.CacheBehaviors.Quantity + - expected: cli-example + op: eq + path: Distribution.DistributionConfig.CallerReference + - expected: '' + op: eq + path: Distribution.DistributionConfig.Comment + - expected: 0 + op: eq + path: Distribution.DistributionConfig.CustomErrorResponses.Quantity + - expected: HEAD + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.0 + - expected: GET + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.1 + - expected: 2 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Quantity + - expected: HEAD + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Items.0 + - expected: GET + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Items.1 + - expected: 2 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.Compress + - expected: 86400 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.DefaultTTL + - expected: none + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Cookies.Forward + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Cookies.WhitelistedNames.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Headers.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.QueryString + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.QueryStringCacheKeys.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.LambdaFunctionAssociations.Quantity + - expected: 31536000 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.MaxTTL + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.MinTTL + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.SmoothStreaming + - expected: pawsexamplebucket.s3.amazonaws.com-cli-example + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.TargetOriginId + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.TrustedSigners.Enabled + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.TrustedSigners.Quantity + - expected: allow-all + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ViewerProtocolPolicy + - expected: index.html + op: eq + path: Distribution.DistributionConfig.DefaultRootObject + - expected: 1 + op: eq + path: Distribution.DistributionConfig.Enabled + - expected: http2 + op: eq + path: Distribution.DistributionConfig.HttpVersion + - expected: 1 + op: eq + path: Distribution.DistributionConfig.IsIPV6Enabled + - expected: '' + op: eq + path: Distribution.DistributionConfig.Logging.Bucket + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Logging.Enabled + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Logging.IncludeCookies + - expected: '' + op: eq + path: Distribution.DistributionConfig.Logging.Prefix + - expected: 0 + op: eq + path: Distribution.DistributionConfig.OriginGroups.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomHeaders.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomOriginConfig.HTTPPort + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomOriginConfig.HTTPSPort + - expected: '' + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomOriginConfig.OriginProtocolPolicy + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomOriginConfig.OriginSslProtocols.Quantity + - expected: pawsexamplebucket.s3.amazonaws.com + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.DomainName + - expected: pawsexamplebucket.s3.amazonaws.com-cli-example + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.Id + - expected: '' + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.S3OriginConfig.OriginAccessIdentity + - expected: 1 + op: eq + path: Distribution.DistributionConfig.Origins.Quantity + - expected: PriceClass_All + op: eq + path: Distribution.DistributionConfig.PriceClass + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Restrictions.GeoRestriction.Quantity + - expected: none + op: eq + path: Distribution.DistributionConfig.Restrictions.GeoRestriction.RestrictionType + - expected: cloudfront + op: eq + path: Distribution.DistributionConfig.ViewerCertificate.CertificateSource + - expected: 1 + op: eq + path: Distribution.DistributionConfig.ViewerCertificate.CloudFrontDefaultCertificate + - expected: TLSv1 + op: eq + path: Distribution.DistributionConfig.ViewerCertificate.MinimumProtocolVersion + - expected: d10e955chuoza2.cloudfront.net + op: eq + path: Distribution.DomainName + - expected: EJ143D8LZET8Z + op: eq + path: Distribution.Id + - expected: 0 + op: eq + path: Distribution.InProgressInvalidationBatches + - expected: 2020-01-10T21:49:42.866Z + op: eq + path: Distribution.LastModifiedTime + - expected: InProgress + op: eq + path: Distribution.Status + - expected: EK97K8QL2NH7G + op: eq + path: ETag + - expected: 934928a9-96d5-4d40-b9d6-5acb3d2ac326 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-getdistributionconfig.response b/t/10_responses/cloudfront-getdistributionconfig.response new file mode 100644 index 0000000000..90488bc450 --- /dev/null +++ b/t/10_responses/cloudfront-getdistributionconfig.response @@ -0,0 +1,20 @@ +--- +content: |- + + 157773499479201S3-paws.coudfront.test/imagespaws.coudfront.test.s3.us-east-1.amazonaws.com/images00S3-paws.coudfront.test/imagesfalsenone00false0allow-all02HEADGET2HEADGETfalse8640031536000false000falsefalsePriceClass_AllfalsetrueTLSv1cloudfrontnone0http2true +headers: + client-date: 'Sat, 11 Jan 2020 01:46:25 GMT' + client-peer: 54.239.29.26:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 2324 + content-type: text/xml + date: 'Sat, 11 Jan 2020 01:46:25 GMT' + etag: E22WXSE7DVIZBC + vary: Accept-Encoding + x-amzn-requestid: 32282964-5da8-44be-8a43-103f80dc3c3f +status: 200 diff --git a/t/10_responses/cloudfront-getdistributionconfig.response.test.yml b/t/10_responses/cloudfront-getdistributionconfig.response.test.yml new file mode 100644 index 0000000000..2c64f604ad --- /dev/null +++ b/t/10_responses/cloudfront-getdistributionconfig.response.test.yml @@ -0,0 +1,160 @@ +--- +call: GetDistributionConfig +service: CloudFront +tests: + - expected: 0 + op: eq + path: DistributionConfig.Aliases.Quantity + - expected: 0 + op: eq + path: DistributionConfig.CacheBehaviors.Quantity + - expected: 1577734994792 + op: eq + path: DistributionConfig.CallerReference + - expected: '' + op: eq + path: DistributionConfig.Comment + - expected: 0 + op: eq + path: DistributionConfig.CustomErrorResponses.Quantity + - expected: HEAD + op: eq + path: DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.0 + - expected: GET + op: eq + path: DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.1 + - expected: 2 + op: eq + path: DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Quantity + - expected: HEAD + op: eq + path: DistributionConfig.DefaultCacheBehavior.AllowedMethods.Items.0 + - expected: GET + op: eq + path: DistributionConfig.DefaultCacheBehavior.AllowedMethods.Items.1 + - expected: 2 + op: eq + path: DistributionConfig.DefaultCacheBehavior.AllowedMethods.Quantity + - expected: 0 + op: eq + path: DistributionConfig.DefaultCacheBehavior.Compress + - expected: 86400 + op: eq + path: DistributionConfig.DefaultCacheBehavior.DefaultTTL + - expected: none + op: eq + path: DistributionConfig.DefaultCacheBehavior.ForwardedValues.Cookies.Forward + - expected: 0 + op: eq + path: DistributionConfig.DefaultCacheBehavior.ForwardedValues.Cookies.WhitelistedNames.Quantity + - expected: 0 + op: eq + path: DistributionConfig.DefaultCacheBehavior.ForwardedValues.Headers.Quantity + - expected: 0 + op: eq + path: DistributionConfig.DefaultCacheBehavior.ForwardedValues.QueryString + - expected: 0 + op: eq + path: DistributionConfig.DefaultCacheBehavior.ForwardedValues.QueryStringCacheKeys.Quantity + - expected: 0 + op: eq + path: DistributionConfig.DefaultCacheBehavior.LambdaFunctionAssociations.Quantity + - expected: 31536000 + op: eq + path: DistributionConfig.DefaultCacheBehavior.MaxTTL + - expected: 0 + op: eq + path: DistributionConfig.DefaultCacheBehavior.MinTTL + - expected: 0 + op: eq + path: DistributionConfig.DefaultCacheBehavior.SmoothStreaming + - expected: S3-paws.coudfront.test/images + op: eq + path: DistributionConfig.DefaultCacheBehavior.TargetOriginId + - expected: 0 + op: eq + path: DistributionConfig.DefaultCacheBehavior.TrustedSigners.Enabled + - expected: 0 + op: eq + path: DistributionConfig.DefaultCacheBehavior.TrustedSigners.Quantity + - expected: allow-all + op: eq + path: DistributionConfig.DefaultCacheBehavior.ViewerProtocolPolicy + - expected: 0 + op: eq + path: DistributionConfig.Enabled + - expected: http2 + op: eq + path: DistributionConfig.HttpVersion + - expected: 1 + op: eq + path: DistributionConfig.IsIPV6Enabled + - expected: '' + op: eq + path: DistributionConfig.Logging.Bucket + - expected: 0 + op: eq + path: DistributionConfig.Logging.Enabled + - expected: 0 + op: eq + path: DistributionConfig.Logging.IncludeCookies + - expected: '' + op: eq + path: DistributionConfig.Logging.Prefix + - expected: 0 + op: eq + path: DistributionConfig.OriginGroups.Quantity + - expected: 0 + op: eq + path: DistributionConfig.Origins.Items.0.CustomHeaders.Quantity + - expected: 0 + op: eq + path: DistributionConfig.Origins.Items.0.CustomOriginConfig.HTTPPort + - expected: 0 + op: eq + path: DistributionConfig.Origins.Items.0.CustomOriginConfig.HTTPSPort + - expected: '' + op: eq + path: DistributionConfig.Origins.Items.0.CustomOriginConfig.OriginProtocolPolicy + - expected: 0 + op: eq + path: DistributionConfig.Origins.Items.0.CustomOriginConfig.OriginSslProtocols.Quantity + - expected: paws.coudfront.test.s3.us-east-1.amazonaws.com + op: eq + path: DistributionConfig.Origins.Items.0.DomainName + - expected: S3-paws.coudfront.test/images + op: eq + path: DistributionConfig.Origins.Items.0.Id + - expected: /images + op: eq + path: DistributionConfig.Origins.Items.0.OriginPath + - expected: '' + op: eq + path: DistributionConfig.Origins.Items.0.S3OriginConfig.OriginAccessIdentity + - expected: 1 + op: eq + path: DistributionConfig.Origins.Quantity + - expected: PriceClass_All + op: eq + path: DistributionConfig.PriceClass + - expected: 0 + op: eq + path: DistributionConfig.Restrictions.GeoRestriction.Quantity + - expected: none + op: eq + path: DistributionConfig.Restrictions.GeoRestriction.RestrictionType + - expected: cloudfront + op: eq + path: DistributionConfig.ViewerCertificate.CertificateSource + - expected: 1 + op: eq + path: DistributionConfig.ViewerCertificate.CloudFrontDefaultCertificate + - expected: TLSv1 + op: eq + path: DistributionConfig.ViewerCertificate.MinimumProtocolVersion + - expected: E22WXSE7DVIZBC + op: eq + path: ETag + - expected: 32282964-5da8-44be-8a43-103f80dc3c3f + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-getfieldlevelencryptionconfig.response b/t/10_responses/cloudfront-getfieldlevelencryptionconfig.response new file mode 100644 index 0000000000..303bde1f49 --- /dev/null +++ b/t/10_responses/cloudfront-getfieldlevelencryptionconfig.response @@ -0,0 +1,19 @@ +--- +content: |- + + 01-01-2020:00001No Gerry you can't come!true1no_conigP14TNUMMKLEPXXtrue1URLEncodedP14TNUMMKLEPXXapplication/x-www-form-urlencoded +headers: + client-date: 'Thu, 09 Jan 2020 21:40:16 GMT' + client-peer: 54.239.29.51:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 899 + content-type: text/xml + date: 'Thu, 09 Jan 2020 21:40:15 GMT' + etag: E3MYZU38G7JCEI + x-amzn-requestid: 8ef1c638-e62a-48df-a818-109453bd2b79 +status: 200 diff --git a/t/10_responses/cloudfront-getfieldlevelencryptionconfig.response.test.yml b/t/10_responses/cloudfront-getfieldlevelencryptionconfig.response.test.yml new file mode 100644 index 0000000000..692145d154 --- /dev/null +++ b/t/10_responses/cloudfront-getfieldlevelencryptionconfig.response.test.yml @@ -0,0 +1,43 @@ +--- +call: GetFieldLevelEncryptionConfig +service: CloudFront +tests: + - expected: E3MYZU38G7JCEI + op: eq + path: ETag + - expected: 01-01-2020:00001 + op: eq + path: FieldLevelEncryptionConfig.CallerReference + - expected: No Gerry you can't come! + op: eq + path: FieldLevelEncryptionConfig.Comment + - expected: application/x-www-form-urlencoded + op: eq + path: FieldLevelEncryptionConfig.ContentTypeProfileConfig.ContentTypeProfiles.Items.0.ContentType + - expected: URLEncoded + op: eq + path: FieldLevelEncryptionConfig.ContentTypeProfileConfig.ContentTypeProfiles.Items.0.Format + - expected: P14TNUMMKLEPXX + op: eq + path: FieldLevelEncryptionConfig.ContentTypeProfileConfig.ContentTypeProfiles.Items.0.ProfileId + - expected: 1 + op: eq + path: FieldLevelEncryptionConfig.ContentTypeProfileConfig.ContentTypeProfiles.Quantity + - expected: 1 + op: eq + path: FieldLevelEncryptionConfig.ContentTypeProfileConfig.ForwardWhenContentTypeIsUnknown + - expected: 1 + op: eq + path: FieldLevelEncryptionConfig.QueryArgProfileConfig.ForwardWhenQueryArgProfileIsUnknown + - expected: P14TNUMMKLEPXX + op: eq + path: FieldLevelEncryptionConfig.QueryArgProfileConfig.QueryArgProfiles.Items.0.ProfileId + - expected: no_conig + op: eq + path: FieldLevelEncryptionConfig.QueryArgProfileConfig.QueryArgProfiles.Items.0.QueryArg + - expected: 1 + op: eq + path: FieldLevelEncryptionConfig.QueryArgProfileConfig.QueryArgProfiles.Quantity + - expected: 8ef1c638-e62a-48df-a818-109453bd2b79 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-getfieldlevelencryptionprofile.response b/t/10_responses/cloudfront-getfieldlevelencryptionprofile.response new file mode 100644 index 0000000000..2a30effe3c --- /dev/null +++ b/t/10_responses/cloudfront-getfieldlevelencryptionprofile.response @@ -0,0 +1,19 @@ +--- +content: |- + + P11YIB8QUZ31DB2020-01-09T20:40:51.296ZPawsCloudConfigTwo2020-01-01-20:21Rick was here. Yet Again1K3ODSO6SYTI4ZGOpenSSL2Never*Please* +headers: + client-date: 'Thu, 09 Jan 2020 20:45:32 GMT' + client-peer: 54.239.29.26:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 744 + content-type: text/xml + date: 'Thu, 09 Jan 2020 20:45:31 GMT' + etag: EONZE0AI4NWCH + x-amzn-requestid: b7dde724-fc58-431d-8706-8268f66fae49 +status: 200 diff --git a/t/10_responses/cloudfront-getfieldlevelencryptionprofile.response.test.yml b/t/10_responses/cloudfront-getfieldlevelencryptionprofile.response.test.yml new file mode 100644 index 0000000000..2ff44f8136 --- /dev/null +++ b/t/10_responses/cloudfront-getfieldlevelencryptionprofile.response.test.yml @@ -0,0 +1,43 @@ +--- +call: GetFieldLevelEncryptionProfile +service: CloudFront +tests: + - expected: EONZE0AI4NWCH + op: eq + path: ETag + - expected: 2020-01-01-20:21 + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.CallerReference + - expected: Rick was here. Yet Again + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.Comment + - expected: Never* + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.0.FieldPatterns.Items.0 + - expected: Please* + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.0.FieldPatterns.Items.1 + - expected: 2 + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.0.FieldPatterns.Quantity + - expected: OpenSSL + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.0.ProviderId + - expected: K3ODSO6SYTI4ZG + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.0.PublicKeyId + - expected: 1 + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.EncryptionEntities.Quantity + - expected: PawsCloudConfigTwo + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.Name + - expected: P11YIB8QUZ31DB + op: eq + path: FieldLevelEncryptionProfile.Id + - expected: 2020-01-09T20:40:51.296Z + op: eq + path: FieldLevelEncryptionProfile.LastModifiedTime + - expected: b7dde724-fc58-431d-8706-8268f66fae49 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-getfieldlevelencryptionprofileconfig.response b/t/10_responses/cloudfront-getfieldlevelencryptionprofileconfig.response new file mode 100644 index 0000000000..5a558f80ae --- /dev/null +++ b/t/10_responses/cloudfront-getfieldlevelencryptionprofileconfig.response @@ -0,0 +1,19 @@ +--- +content: |- + + PawsCloudConfig2020-01-01-20:01Rick was here1K3ODSO6SYTI4ZGOpenSSL2some*None* +headers: + client-date: 'Thu, 09 Jan 2020 21:53:55 GMT' + client-peer: 54.239.29.26:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 584 + content-type: text/xml + date: 'Thu, 09 Jan 2020 21:53:55 GMT' + etag: E7FXFS7252NGR + x-amzn-requestid: 73cad0bd-684e-4cdb-a9cf-682a1daeaaa6 +status: 200 diff --git a/t/10_responses/cloudfront-getfieldlevelencryptionprofileconfig.response.test.yml b/t/10_responses/cloudfront-getfieldlevelencryptionprofileconfig.response.test.yml new file mode 100644 index 0000000000..66e0fb6b4d --- /dev/null +++ b/t/10_responses/cloudfront-getfieldlevelencryptionprofileconfig.response.test.yml @@ -0,0 +1,37 @@ +--- +call: GetFieldLevelEncryptionProfileConfig +service: CloudFront +tests: + - expected: E7FXFS7252NGR + op: eq + path: ETag + - expected: 2020-01-01-20:01 + op: eq + path: FieldLevelEncryptionProfileConfig.CallerReference + - expected: Rick was here + op: eq + path: FieldLevelEncryptionProfileConfig.Comment + - expected: some* + op: eq + path: FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.0.FieldPatterns.Items.0 + - expected: None* + op: eq + path: FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.0.FieldPatterns.Items.1 + - expected: 2 + op: eq + path: FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.0.FieldPatterns.Quantity + - expected: OpenSSL + op: eq + path: FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.0.ProviderId + - expected: K3ODSO6SYTI4ZG + op: eq + path: FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.0.PublicKeyId + - expected: 1 + op: eq + path: FieldLevelEncryptionProfileConfig.EncryptionEntities.Quantity + - expected: PawsCloudConfig + op: eq + path: FieldLevelEncryptionProfileConfig.Name + - expected: 73cad0bd-684e-4cdb-a9cf-682a1daeaaa6 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-getinvalidation.response b/t/10_responses/cloudfront-getinvalidation.response new file mode 100644 index 0000000000..7c38b4d8b3 --- /dev/null +++ b/t/10_responses/cloudfront-getinvalidation.response @@ -0,0 +1,18 @@ +--- +content: |- + + I2IH0KUHCUPI0WCompleted2020-01-09T22:39:50.002Z1/images/*.png1578609589853 +headers: + client-date: 'Thu, 09 Jan 2020 22:41:54 GMT' + client-peer: 54.239.29.26:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 370 + content-type: text/xml + date: 'Thu, 09 Jan 2020 22:41:54 GMT' + x-amzn-requestid: a57323ac-226a-4c4b-ade7-54b7d161e760 +status: 200 diff --git a/t/10_responses/cloudfront-getinvalidation.response.test.yml b/t/10_responses/cloudfront-getinvalidation.response.test.yml new file mode 100644 index 0000000000..11c37f10d7 --- /dev/null +++ b/t/10_responses/cloudfront-getinvalidation.response.test.yml @@ -0,0 +1,25 @@ +--- +call: GetInvalidation +service: CloudFront +tests: + - expected: 2020-01-09T22:39:50.002Z + op: eq + path: Invalidation.CreateTime + - expected: I2IH0KUHCUPI0W + op: eq + path: Invalidation.Id + - expected: 1578609589853 + op: eq + path: Invalidation.InvalidationBatch.CallerReference + - expected: /images/*.png + op: eq + path: Invalidation.InvalidationBatch.Paths.Items.0 + - expected: 1 + op: eq + path: Invalidation.InvalidationBatch.Paths.Quantity + - expected: Completed + op: eq + path: Invalidation.Status + - expected: a57323ac-226a-4c4b-ade7-54b7d161e760 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-getpublickey.response b/t/10_responses/cloudfront-getpublickey.response new file mode 100644 index 0000000000..93aaa2f75b --- /dev/null +++ b/t/10_responses/cloudfront-getpublickey.response @@ -0,0 +1,28 @@ +--- +content: |- + + K18H03HBTFHOUA2020-01-08T22:05:14.150Z01-01-2020-000001TestKeyPaws-----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp5X8pCq9EllW/vd8dYc2 + oCl58nAuSoYTfEdzR/XQGLKugBqwSSHtfyG10bAsNjS6UnqfK3vG7QSo9zgiCvCn + KUF4J9mCEzUMCkiKcqZn169YheeMKCF04Q2xmdIMlw1FA/VGZ3HhC49hsIzAKlqC + q/3n3nEdb4Gf4J3KvY+KW+YcZJZQQG4QzqeUG/01MHs47RzhA9xFRJDvSXf4EGTT + eg6IAbeOlGDxiQ0d25PqZ9y+LVpa6pVy86qHnvkzbMHE2yGCiQKIuC60D4AJS/dx + 2TLLOAI8w0zm3aSvd1ktNZZMgNlnUkJFEMMlq3H7edzkb2NDNvGQ07cwJRU9h4Wt + bwIDAQAB + -----END PUBLIC KEY----- + This is a test key +headers: + client-date: 'Wed, 08 Jan 2020 22:19:09 GMT' + client-peer: 54.239.29.51:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 799 + content-type: text/xml + date: 'Wed, 08 Jan 2020 22:19:09 GMT' + etag: E3KFZB10NV5FJD + x-amzn-requestid: 7756407d-5f8f-4a3c-8b07-21347642d562 +status: 200 diff --git a/t/10_responses/cloudfront-getpublickey.response.test.yml b/t/10_responses/cloudfront-getpublickey.response.test.yml new file mode 100644 index 0000000000..f17d89edf7 --- /dev/null +++ b/t/10_responses/cloudfront-getpublickey.response.test.yml @@ -0,0 +1,37 @@ +--- +call: GetPublicKey +service: CloudFront +tests: + - expected: E3KFZB10NV5FJD + op: eq + path: ETag + - expected: 2020-01-08T22:05:14.150Z + op: eq + path: PublicKey.CreatedTime + - expected: K18H03HBTFHOUA + op: eq + path: PublicKey.Id + - expected: 01-01-2020-000001 + op: eq + path: PublicKey.PublicKeyConfig.CallerReference + - expected: This is a test key + op: eq + path: PublicKey.PublicKeyConfig.Comment + - expected: | + -----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp5X8pCq9EllW/vd8dYc2 + oCl58nAuSoYTfEdzR/XQGLKugBqwSSHtfyG10bAsNjS6UnqfK3vG7QSo9zgiCvCn + KUF4J9mCEzUMCkiKcqZn169YheeMKCF04Q2xmdIMlw1FA/VGZ3HhC49hsIzAKlqC + q/3n3nEdb4Gf4J3KvY+KW+YcZJZQQG4QzqeUG/01MHs47RzhA9xFRJDvSXf4EGTT + eg6IAbeOlGDxiQ0d25PqZ9y+LVpa6pVy86qHnvkzbMHE2yGCiQKIuC60D4AJS/dx + 2TLLOAI8w0zm3aSvd1ktNZZMgNlnUkJFEMMlq3H7edzkb2NDNvGQ07cwJRU9h4Wt + bwIDAQAB + -----END PUBLIC KEY----- + op: eq + path: PublicKey.PublicKeyConfig.EncodedKey + - expected: TestKeyPaws + op: eq + path: PublicKey.PublicKeyConfig.Name + - expected: 7756407d-5f8f-4a3c-8b07-21347642d562 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-getpublickeyconfig.response b/t/10_responses/cloudfront-getpublickeyconfig.response new file mode 100644 index 0000000000..23a0d93744 --- /dev/null +++ b/t/10_responses/cloudfront-getpublickeyconfig.response @@ -0,0 +1,28 @@ +--- +content: |- + + 01-01-2020-000003TestKeyPaws3-----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp5X8pCq9EllW/vd8dYc2 + oCl58nAuSoYTfEdzR/XQGLKugBqwSSHtfyG10bAsNjS6UnqfK3vG7QSo9zgiCvCn + KUF4J9mCEzUMCkiKcqZn169YheeMKCF04Q2xmdIMlw1FA/VGZ3HhC49hsIzAKlqC + q/3n3nEdb4Gf4J3KvY+KW+YcZJZQQG4QzqeUG/01MHs47RzhA9xFRJDvSXf4EGTT + eg6IAbeOlGDxiQ0d25PqZ9y+LVpa6pVy86qHnvkzbMHE2yGCiQKIuC60D4AJS/dx + 2TLLOAI8w0zm3aSvd1ktNZZMgNlnUkJFEMMlq3H7edzkb2NDNvGQ07cwJRU9h4Wt + bwIDAQAB + -----END PUBLIC KEY----- + This is a test key3 +headers: + client-date: 'Wed, 08 Jan 2020 22:17:08 GMT' + client-peer: 54.239.29.65:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 704 + content-type: text/xml + date: 'Wed, 08 Jan 2020 22:17:07 GMT' + etag: EATE6CQLJ15Q4 + x-amzn-requestid: 504822e6-6b01-4c3a-9d4f-566bfcd35a59 +status: 200 diff --git a/t/10_responses/cloudfront-getpublickeyconfig.response.test.yml b/t/10_responses/cloudfront-getpublickeyconfig.response.test.yml new file mode 100644 index 0000000000..74acca90c2 --- /dev/null +++ b/t/10_responses/cloudfront-getpublickeyconfig.response.test.yml @@ -0,0 +1,31 @@ +--- +call: GetPublicKeyConfig +service: CloudFront +tests: + - expected: EATE6CQLJ15Q4 + op: eq + path: ETag + - expected: 01-01-2020-000003 + op: eq + path: PublicKeyConfig.CallerReference + - expected: This is a test key3 + op: eq + path: PublicKeyConfig.Comment + - expected: | + -----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp5X8pCq9EllW/vd8dYc2 + oCl58nAuSoYTfEdzR/XQGLKugBqwSSHtfyG10bAsNjS6UnqfK3vG7QSo9zgiCvCn + KUF4J9mCEzUMCkiKcqZn169YheeMKCF04Q2xmdIMlw1FA/VGZ3HhC49hsIzAKlqC + q/3n3nEdb4Gf4J3KvY+KW+YcZJZQQG4QzqeUG/01MHs47RzhA9xFRJDvSXf4EGTT + eg6IAbeOlGDxiQ0d25PqZ9y+LVpa6pVy86qHnvkzbMHE2yGCiQKIuC60D4AJS/dx + 2TLLOAI8w0zm3aSvd1ktNZZMgNlnUkJFEMMlq3H7edzkb2NDNvGQ07cwJRU9h4Wt + bwIDAQAB + -----END PUBLIC KEY----- + op: eq + path: PublicKeyConfig.EncodedKey + - expected: TestKeyPaws3 + op: eq + path: PublicKeyConfig.Name + - expected: 504822e6-6b01-4c3a-9d4f-566bfcd35a59 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-getstreamingdistribution.response b/t/10_responses/cloudfront-getstreamingdistribution.response new file mode 100644 index 0000000000..59991f8d19 --- /dev/null +++ b/t/10_responses/cloudfront-getstreamingdistribution.response @@ -0,0 +1,19 @@ +--- +content: |- + + E1MH0EIPT4AYI7arn:aws:cloudfront::985173205561:streaming-distribution/E1MH0EIPT4AYI7InProgress2020-01-11T18:13:17.556Zs3up0qnnejm0h2.cloudfront.netfalse01578765567928pawsexamplebucket.s3.amazonaws.comorigin-access-identity/cloudfront/E3D5Y5RWA05QO10falsefalse0PriceClass_Allfalse +headers: + client-date: 'Sat, 11 Jan 2020 18:15:03 GMT' + client-peer: 54.239.29.26:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 1021 + content-type: text/xml + date: 'Sat, 11 Jan 2020 18:15:03 GMT' + etag: E1D5373H0EHUCE + x-amzn-requestid: 8bbe161e-bef1-4a93-9d94-87e7dc0f00fc +status: 200 diff --git a/t/10_responses/cloudfront-getstreamingdistribution.response.test.yml b/t/10_responses/cloudfront-getstreamingdistribution.response.test.yml new file mode 100644 index 0000000000..a8dbc33fc8 --- /dev/null +++ b/t/10_responses/cloudfront-getstreamingdistribution.response.test.yml @@ -0,0 +1,67 @@ +--- +call: GetStreamingDistribution +service: CloudFront +tests: + - expected: E1D5373H0EHUCE + op: eq + path: ETag + - expected: arn:aws:cloudfront::985173205561:streaming-distribution/E1MH0EIPT4AYI7 + op: eq + path: StreamingDistribution.ARN + - expected: 0 + op: eq + path: StreamingDistribution.ActiveTrustedSigners.Enabled + - expected: 0 + op: eq + path: StreamingDistribution.ActiveTrustedSigners.Quantity + - expected: s3up0qnnejm0h2.cloudfront.net + op: eq + path: StreamingDistribution.DomainName + - expected: E1MH0EIPT4AYI7 + op: eq + path: StreamingDistribution.Id + - expected: 2020-01-11T18:13:17.556Z + op: eq + path: StreamingDistribution.LastModifiedTime + - expected: InProgress + op: eq + path: StreamingDistribution.Status + - expected: 0 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Aliases.Quantity + - expected: 1578765567928 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.CallerReference + - expected: '' + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Comment + - expected: 0 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Enabled + - expected: '' + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Logging.Bucket + - expected: 0 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Logging.Enabled + - expected: '' + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Logging.Prefix + - expected: PriceClass_All + op: eq + path: StreamingDistribution.StreamingDistributionConfig.PriceClass + - expected: pawsexamplebucket.s3.amazonaws.com + op: eq + path: StreamingDistribution.StreamingDistributionConfig.S3Origin.DomainName + - expected: origin-access-identity/cloudfront/E3D5Y5RWA05QO1 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.S3Origin.OriginAccessIdentity + - expected: 0 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.TrustedSigners.Enabled + - expected: 0 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.TrustedSigners.Quantity + - expected: 8bbe161e-bef1-4a93-9d94-87e7dc0f00fc + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-getstreamingdistributionconfig.response b/t/10_responses/cloudfront-getstreamingdistributionconfig.response new file mode 100644 index 0000000000..dc90780fb9 --- /dev/null +++ b/t/10_responses/cloudfront-getstreamingdistributionconfig.response @@ -0,0 +1,19 @@ +--- +content: |- + + 2020:010101oneoffpaws.s3.amazonaws.comorigin-access-identity/cloudfront/E3D5Y5RWA05QO10I squanch, your Squanch, Squancefalsefalse0PriceClass_100false +headers: + client-date: 'Sat, 11 Jan 2020 18:39:08 GMT' + client-peer: 54.239.29.65:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 660 + content-type: text/xml + date: 'Sat, 11 Jan 2020 18:39:08 GMT' + etag: EL9J97I2UK4RD + x-amzn-requestid: dcce09f4-83b1-4444-986b-0adf717e02d3 +status: 200 diff --git a/t/10_responses/cloudfront-getstreamingdistributionconfig.response.test.yml b/t/10_responses/cloudfront-getstreamingdistributionconfig.response.test.yml new file mode 100644 index 0000000000..4a1422e918 --- /dev/null +++ b/t/10_responses/cloudfront-getstreamingdistributionconfig.response.test.yml @@ -0,0 +1,46 @@ +--- +call: GetStreamingDistributionConfig +service: CloudFront +tests: + - expected: EL9J97I2UK4RD + op: eq + path: ETag + - expected: 0 + op: eq + path: StreamingDistributionConfig.Aliases.Quantity + - expected: 2020:010101 + op: eq + path: StreamingDistributionConfig.CallerReference + - expected: 'I squanch, your Squanch, Squance' + op: eq + path: StreamingDistributionConfig.Comment + - expected: 0 + op: eq + path: StreamingDistributionConfig.Enabled + - expected: '' + op: eq + path: StreamingDistributionConfig.Logging.Bucket + - expected: 0 + op: eq + path: StreamingDistributionConfig.Logging.Enabled + - expected: '' + op: eq + path: StreamingDistributionConfig.Logging.Prefix + - expected: PriceClass_100 + op: eq + path: StreamingDistributionConfig.PriceClass + - expected: oneoffpaws.s3.amazonaws.com + op: eq + path: StreamingDistributionConfig.S3Origin.DomainName + - expected: origin-access-identity/cloudfront/E3D5Y5RWA05QO1 + op: eq + path: StreamingDistributionConfig.S3Origin.OriginAccessIdentity + - expected: 0 + op: eq + path: StreamingDistributionConfig.TrustedSigners.Enabled + - expected: 0 + op: eq + path: StreamingDistributionConfig.TrustedSigners.Quantity + - expected: dcce09f4-83b1-4444-986b-0adf717e02d3 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-listcloudfrontoriginaccessidentities.1.response b/t/10_responses/cloudfront-listcloudfrontoriginaccessidentities.1.response new file mode 100644 index 0000000000..c21bf056b7 --- /dev/null +++ b/t/10_responses/cloudfront-listcloudfrontoriginaccessidentities.1.response @@ -0,0 +1,18 @@ +--- +content: |- + + 10false2EY07SKBZ90C5A6c6128425717e67ab264c31cde579615871a69065a82c900bfe23587a07f869016dae0126aca6b9dff95dc4db990ebc4This is a commentE3D5Y5RWA05QO184f47125a87a26ea5ba42f3be65fbefebdb7440d82e7d27907c52c969ac4f6c05ef03046db8cd6f74dab632e70ffcd71This is Mr Poopy Buthole calling +headers: + client-date: 'Tue, 07 Jan 2020 21:38:47 GMT' + client-peer: 54.239.29.65:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 820 + content-type: text/xml + date: 'Tue, 07 Jan 2020 21:38:47 GMT' + x-amzn-requestid: 15ec3bba-3196-11ea-8ca3-5bf4b56aa0ba +status: 200 diff --git a/t/10_responses/cloudfront-listcloudfrontoriginaccessidentities.1.response.test.yml b/t/10_responses/cloudfront-listcloudfrontoriginaccessidentities.1.response.test.yml new file mode 100644 index 0000000000..60e65fa8e9 --- /dev/null +++ b/t/10_responses/cloudfront-listcloudfrontoriginaccessidentities.1.response.test.yml @@ -0,0 +1,37 @@ +--- +call: ListCloudFrontOriginAccessIdentities +service: CloudFront +tests: + - expected: 0 + op: eq + path: CloudFrontOriginAccessIdentityList.IsTruncated + - expected: This is a comment + op: eq + path: CloudFrontOriginAccessIdentityList.Items.0.Comment + - expected: EY07SKBZ90C5A + op: eq + path: CloudFrontOriginAccessIdentityList.Items.0.Id + - expected: 6c6128425717e67ab264c31cde579615871a69065a82c900bfe23587a07f869016dae0126aca6b9dff95dc4db990ebc4 + op: eq + path: CloudFrontOriginAccessIdentityList.Items.0.S3CanonicalUserId + - expected: This is Mr Poopy Buthole calling + op: eq + path: CloudFrontOriginAccessIdentityList.Items.1.Comment + - expected: E3D5Y5RWA05QO1 + op: eq + path: CloudFrontOriginAccessIdentityList.Items.1.Id + - expected: 84f47125a87a26ea5ba42f3be65fbefebdb7440d82e7d27907c52c969ac4f6c05ef03046db8cd6f74dab632e70ffcd71 + op: eq + path: CloudFrontOriginAccessIdentityList.Items.1.S3CanonicalUserId + - expected: '' + op: eq + path: CloudFrontOriginAccessIdentityList.Marker + - expected: 10 + op: eq + path: CloudFrontOriginAccessIdentityList.MaxItems + - expected: 2 + op: eq + path: CloudFrontOriginAccessIdentityList.Quantity + - expected: 15ec3bba-3196-11ea-8ca3-5bf4b56aa0ba + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-listcloudfrontoriginaccessidentities.response b/t/10_responses/cloudfront-listcloudfrontoriginaccessidentities.response new file mode 100644 index 0000000000..7d2f593fc4 --- /dev/null +++ b/t/10_responses/cloudfront-listcloudfrontoriginaccessidentities.response @@ -0,0 +1,18 @@ +--- +content: |- + + EY07SKBZ90C5A10false1E3D5Y5RWA05QO184f47125a87a26ea5ba42f3be65fbefebdb7440d82e7d27907c52c969ac4f6c05ef03046db8cd6f74dab632e70ffcd71This is Mr Poopy Buthole calling +headers: + client-date: 'Tue, 07 Jan 2020 21:43:21 GMT' + client-peer: 54.239.29.51:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 561 + content-type: text/xml + date: 'Tue, 07 Jan 2020 21:43:21 GMT' + x-amzn-requestid: 9ebceaa2-9cbe-4cd3-bf61-fe90837c1ad5 +status: 200 diff --git a/t/10_responses/cloudfront-listcloudfrontoriginaccessidentities.response.test.yml b/t/10_responses/cloudfront-listcloudfrontoriginaccessidentities.response.test.yml new file mode 100644 index 0000000000..928f041260 --- /dev/null +++ b/t/10_responses/cloudfront-listcloudfrontoriginaccessidentities.response.test.yml @@ -0,0 +1,28 @@ +--- +call: ListCloudFrontOriginAccessIdentities +service: CloudFront +tests: + - expected: 0 + op: eq + path: CloudFrontOriginAccessIdentityList.IsTruncated + - expected: This is Mr Poopy Buthole calling + op: eq + path: CloudFrontOriginAccessIdentityList.Items.0.Comment + - expected: E3D5Y5RWA05QO1 + op: eq + path: CloudFrontOriginAccessIdentityList.Items.0.Id + - expected: 84f47125a87a26ea5ba42f3be65fbefebdb7440d82e7d27907c52c969ac4f6c05ef03046db8cd6f74dab632e70ffcd71 + op: eq + path: CloudFrontOriginAccessIdentityList.Items.0.S3CanonicalUserId + - expected: EY07SKBZ90C5A + op: eq + path: CloudFrontOriginAccessIdentityList.Marker + - expected: 10 + op: eq + path: CloudFrontOriginAccessIdentityList.MaxItems + - expected: 1 + op: eq + path: CloudFrontOriginAccessIdentityList.Quantity + - expected: 9ebceaa2-9cbe-4cd3-bf61-fe90837c1ad5 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-listdistributions.1.response b/t/10_responses/cloudfront-listdistributions.1.response new file mode 100644 index 0000000000..0bfea34f2a --- /dev/null +++ b/t/10_responses/cloudfront-listdistributions.1.response @@ -0,0 +1,19 @@ +--- +content: |- + + 10false2E2F696NMEQJ5SHarn:aws:cloudfront::985173205561:distribution/E2F696NMEQJ5SHDeployed2019-12-30T19:43:16.205Zd2tcakdmwv4w1r.cloudfront.net01S3-paws.coudfront.test/imagespaws.coudfront.test.s3.us-east-1.amazonaws.com/images00S3-paws.coudfront.test/imagesfalsenone00false0allow-all02HEADGET2HEADGETfalse8640031536000false000PriceClass_AllfalsetrueTLSv1cloudfrontnone0HTTP2trueEJ143D8LZET8Zarn:aws:cloudfront::985173205561:distribution/EJ143D8LZET8ZInProgress2020-01-10T21:49:42.866Zd10e955chuoza2.cloudfront.net01pawsexamplebucket.s3.amazonaws.com-cli-examplepawsexamplebucket.s3.amazonaws.com00pawsexamplebucket.s3.amazonaws.com-cli-examplefalsenone00false0allow-all02HEADGET2HEADGETfalse8640031536000false000PriceClass_AlltruetrueTLSv1cloudfrontnone0HTTP2true +headers: + client-date: 'Fri, 10 Jan 2020 21:53:21 GMT' + client-peer: 54.239.29.51:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 4798 + content-type: text/xml + date: 'Fri, 10 Jan 2020 21:53:20 GMT' + vary: Accept-Encoding + x-amzn-requestid: 522ae17d-e9f1-450d-b8a8-4930164af166 +status: 200 diff --git a/t/10_responses/cloudfront-listdistributions.1.response.test.yml b/t/10_responses/cloudfront-listdistributions.1.response.test.yml new file mode 100644 index 0000000000..60701cdc0c --- /dev/null +++ b/t/10_responses/cloudfront-listdistributions.1.response.test.yml @@ -0,0 +1,322 @@ +--- +call: ListDistributions +service: CloudFront +tests: + - expected: 0 + op: eq + path: DistributionList.IsTruncated + - expected: arn:aws:cloudfront::985173205561:distribution/E2F696NMEQJ5SH + op: eq + path: DistributionList.Items.0.ARN + - expected: 0 + op: eq + path: DistributionList.Items.0.Aliases.Quantity + - expected: 0 + op: eq + path: DistributionList.Items.0.CacheBehaviors.Quantity + - expected: '' + op: eq + path: DistributionList.Items.0.Comment + - expected: 0 + op: eq + path: DistributionList.Items.0.CustomErrorResponses.Quantity + - expected: HEAD + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.0 + - expected: GET + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.1 + - expected: 2 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.AllowedMethods.CachedMethods.Quantity + - expected: HEAD + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.AllowedMethods.Items.0 + - expected: GET + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.AllowedMethods.Items.1 + - expected: 2 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.AllowedMethods.Quantity + - expected: 0 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.Compress + - expected: 86400 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.DefaultTTL + - expected: none + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.ForwardedValues.Cookies.Forward + - expected: 0 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.ForwardedValues.Cookies.WhitelistedNames.Quantity + - expected: 0 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.ForwardedValues.Headers.Quantity + - expected: 0 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.ForwardedValues.QueryString + - expected: 0 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.ForwardedValues.QueryStringCacheKeys.Quantity + - expected: 0 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.LambdaFunctionAssociations.Quantity + - expected: 31536000 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.MaxTTL + - expected: 0 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.MinTTL + - expected: 0 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.SmoothStreaming + - expected: S3-paws.coudfront.test/images + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.TargetOriginId + - expected: 0 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.TrustedSigners.Enabled + - expected: 0 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.TrustedSigners.Quantity + - expected: allow-all + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.ViewerProtocolPolicy + - expected: d2tcakdmwv4w1r.cloudfront.net + op: eq + path: DistributionList.Items.0.DomainName + - expected: 0 + op: eq + path: DistributionList.Items.0.Enabled + - expected: HTTP2 + op: eq + path: DistributionList.Items.0.HttpVersion + - expected: E2F696NMEQJ5SH + op: eq + path: DistributionList.Items.0.Id + - expected: 1 + op: eq + path: DistributionList.Items.0.IsIPV6Enabled + - expected: 2019-12-30T19:43:16.205Z + op: eq + path: DistributionList.Items.0.LastModifiedTime + - expected: 0 + op: eq + path: DistributionList.Items.0.OriginGroups.Quantity + - expected: 0 + op: eq + path: DistributionList.Items.0.Origins.Items.0.CustomHeaders.Quantity + - expected: 0 + op: eq + path: DistributionList.Items.0.Origins.Items.0.CustomOriginConfig.HTTPPort + - expected: 0 + op: eq + path: DistributionList.Items.0.Origins.Items.0.CustomOriginConfig.HTTPSPort + - expected: '' + op: eq + path: DistributionList.Items.0.Origins.Items.0.CustomOriginConfig.OriginProtocolPolicy + - expected: 0 + op: eq + path: DistributionList.Items.0.Origins.Items.0.CustomOriginConfig.OriginSslProtocols.Quantity + - expected: paws.coudfront.test.s3.us-east-1.amazonaws.com + op: eq + path: DistributionList.Items.0.Origins.Items.0.DomainName + - expected: S3-paws.coudfront.test/images + op: eq + path: DistributionList.Items.0.Origins.Items.0.Id + - expected: /images + op: eq + path: DistributionList.Items.0.Origins.Items.0.OriginPath + - expected: '' + op: eq + path: DistributionList.Items.0.Origins.Items.0.S3OriginConfig.OriginAccessIdentity + - expected: 1 + op: eq + path: DistributionList.Items.0.Origins.Quantity + - expected: PriceClass_All + op: eq + path: DistributionList.Items.0.PriceClass + - expected: 0 + op: eq + path: DistributionList.Items.0.Restrictions.GeoRestriction.Quantity + - expected: none + op: eq + path: DistributionList.Items.0.Restrictions.GeoRestriction.RestrictionType + - expected: Deployed + op: eq + path: DistributionList.Items.0.Status + - expected: cloudfront + op: eq + path: DistributionList.Items.0.ViewerCertificate.CertificateSource + - expected: 1 + op: eq + path: DistributionList.Items.0.ViewerCertificate.CloudFrontDefaultCertificate + - expected: TLSv1 + op: eq + path: DistributionList.Items.0.ViewerCertificate.MinimumProtocolVersion + - expected: '' + op: eq + path: DistributionList.Items.0.WebACLId + - expected: arn:aws:cloudfront::985173205561:distribution/EJ143D8LZET8Z + op: eq + path: DistributionList.Items.1.ARN + - expected: 0 + op: eq + path: DistributionList.Items.1.Aliases.Quantity + - expected: 0 + op: eq + path: DistributionList.Items.1.CacheBehaviors.Quantity + - expected: '' + op: eq + path: DistributionList.Items.1.Comment + - expected: 0 + op: eq + path: DistributionList.Items.1.CustomErrorResponses.Quantity + - expected: HEAD + op: eq + path: DistributionList.Items.1.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.0 + - expected: GET + op: eq + path: DistributionList.Items.1.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.1 + - expected: 2 + op: eq + path: DistributionList.Items.1.DefaultCacheBehavior.AllowedMethods.CachedMethods.Quantity + - expected: HEAD + op: eq + path: DistributionList.Items.1.DefaultCacheBehavior.AllowedMethods.Items.0 + - expected: GET + op: eq + path: DistributionList.Items.1.DefaultCacheBehavior.AllowedMethods.Items.1 + - expected: 2 + op: eq + path: DistributionList.Items.1.DefaultCacheBehavior.AllowedMethods.Quantity + - expected: 0 + op: eq + path: DistributionList.Items.1.DefaultCacheBehavior.Compress + - expected: 86400 + op: eq + path: DistributionList.Items.1.DefaultCacheBehavior.DefaultTTL + - expected: none + op: eq + path: DistributionList.Items.1.DefaultCacheBehavior.ForwardedValues.Cookies.Forward + - expected: 0 + op: eq + path: DistributionList.Items.1.DefaultCacheBehavior.ForwardedValues.Cookies.WhitelistedNames.Quantity + - expected: 0 + op: eq + path: DistributionList.Items.1.DefaultCacheBehavior.ForwardedValues.Headers.Quantity + - expected: 0 + op: eq + path: DistributionList.Items.1.DefaultCacheBehavior.ForwardedValues.QueryString + - expected: 0 + op: eq + path: DistributionList.Items.1.DefaultCacheBehavior.ForwardedValues.QueryStringCacheKeys.Quantity + - expected: 0 + op: eq + path: DistributionList.Items.1.DefaultCacheBehavior.LambdaFunctionAssociations.Quantity + - expected: 31536000 + op: eq + path: DistributionList.Items.1.DefaultCacheBehavior.MaxTTL + - expected: 0 + op: eq + path: DistributionList.Items.1.DefaultCacheBehavior.MinTTL + - expected: 0 + op: eq + path: DistributionList.Items.1.DefaultCacheBehavior.SmoothStreaming + - expected: pawsexamplebucket.s3.amazonaws.com-cli-example + op: eq + path: DistributionList.Items.1.DefaultCacheBehavior.TargetOriginId + - expected: 0 + op: eq + path: DistributionList.Items.1.DefaultCacheBehavior.TrustedSigners.Enabled + - expected: 0 + op: eq + path: DistributionList.Items.1.DefaultCacheBehavior.TrustedSigners.Quantity + - expected: allow-all + op: eq + path: DistributionList.Items.1.DefaultCacheBehavior.ViewerProtocolPolicy + - expected: d10e955chuoza2.cloudfront.net + op: eq + path: DistributionList.Items.1.DomainName + - expected: 1 + op: eq + path: DistributionList.Items.1.Enabled + - expected: HTTP2 + op: eq + path: DistributionList.Items.1.HttpVersion + - expected: EJ143D8LZET8Z + op: eq + path: DistributionList.Items.1.Id + - expected: 1 + op: eq + path: DistributionList.Items.1.IsIPV6Enabled + - expected: 2020-01-10T21:49:42.866Z + op: eq + path: DistributionList.Items.1.LastModifiedTime + - expected: 0 + op: eq + path: DistributionList.Items.1.OriginGroups.Quantity + - expected: 0 + op: eq + path: DistributionList.Items.1.Origins.Items.0.CustomHeaders.Quantity + - expected: 0 + op: eq + path: DistributionList.Items.1.Origins.Items.0.CustomOriginConfig.HTTPPort + - expected: 0 + op: eq + path: DistributionList.Items.1.Origins.Items.0.CustomOriginConfig.HTTPSPort + - expected: '' + op: eq + path: DistributionList.Items.1.Origins.Items.0.CustomOriginConfig.OriginProtocolPolicy + - expected: 0 + op: eq + path: DistributionList.Items.1.Origins.Items.0.CustomOriginConfig.OriginSslProtocols.Quantity + - expected: pawsexamplebucket.s3.amazonaws.com + op: eq + path: DistributionList.Items.1.Origins.Items.0.DomainName + - expected: pawsexamplebucket.s3.amazonaws.com-cli-example + op: eq + path: DistributionList.Items.1.Origins.Items.0.Id + - expected: '' + op: eq + path: DistributionList.Items.1.Origins.Items.0.S3OriginConfig.OriginAccessIdentity + - expected: 1 + op: eq + path: DistributionList.Items.1.Origins.Quantity + - expected: PriceClass_All + op: eq + path: DistributionList.Items.1.PriceClass + - expected: 0 + op: eq + path: DistributionList.Items.1.Restrictions.GeoRestriction.Quantity + - expected: none + op: eq + path: DistributionList.Items.1.Restrictions.GeoRestriction.RestrictionType + - expected: InProgress + op: eq + path: DistributionList.Items.1.Status + - expected: cloudfront + op: eq + path: DistributionList.Items.1.ViewerCertificate.CertificateSource + - expected: 1 + op: eq + path: DistributionList.Items.1.ViewerCertificate.CloudFrontDefaultCertificate + - expected: TLSv1 + op: eq + path: DistributionList.Items.1.ViewerCertificate.MinimumProtocolVersion + - expected: '' + op: eq + path: DistributionList.Items.1.WebACLId + - expected: '' + op: eq + path: DistributionList.Marker + - expected: 10 + op: eq + path: DistributionList.MaxItems + - expected: 2 + op: eq + path: DistributionList.Quantity + - expected: 522ae17d-e9f1-450d-b8a8-4930164af166 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-listdistributions.response b/t/10_responses/cloudfront-listdistributions.response new file mode 100644 index 0000000000..598d6c10eb --- /dev/null +++ b/t/10_responses/cloudfront-listdistributions.response @@ -0,0 +1,19 @@ +--- +content: |- + + E2F696NMEQJ5SH1true1E2F696NMEQJ5SHarn:aws:cloudfront::985173205561:distribution/E2F696NMEQJ5SHDeployed2019-12-30T19:43:16.205Zd2tcakdmwv4w1r.cloudfront.net01S3-paws.coudfront.test/imagespaws.coudfront.test.s3.us-east-1.amazonaws.com/images00S3-paws.coudfront.test/imagesfalsenone00false0allow-all02HEADGET2HEADGETfalse8640031536000false000PriceClass_AllfalsetrueTLSv1cloudfrontnone0HTTP2true +headers: + client-date: 'Fri, 10 Jan 2020 21:52:09 GMT' + client-peer: 54.239.29.65:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 2541 + content-type: text/xml + date: 'Fri, 10 Jan 2020 21:52:08 GMT' + vary: Accept-Encoding + x-amzn-requestid: 34e422d4-331b-4696-b6c6-c28005fc5104 +status: 200 diff --git a/t/10_responses/cloudfront-listdistributions.response.test.yml b/t/10_responses/cloudfront-listdistributions.response.test.yml new file mode 100644 index 0000000000..0834028b0a --- /dev/null +++ b/t/10_responses/cloudfront-listdistributions.response.test.yml @@ -0,0 +1,175 @@ +--- +call: ListDistributions +service: CloudFront +tests: + - expected: 1 + op: eq + path: DistributionList.IsTruncated + - expected: arn:aws:cloudfront::985173205561:distribution/E2F696NMEQJ5SH + op: eq + path: DistributionList.Items.0.ARN + - expected: 0 + op: eq + path: DistributionList.Items.0.Aliases.Quantity + - expected: 0 + op: eq + path: DistributionList.Items.0.CacheBehaviors.Quantity + - expected: '' + op: eq + path: DistributionList.Items.0.Comment + - expected: 0 + op: eq + path: DistributionList.Items.0.CustomErrorResponses.Quantity + - expected: HEAD + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.0 + - expected: GET + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.1 + - expected: 2 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.AllowedMethods.CachedMethods.Quantity + - expected: HEAD + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.AllowedMethods.Items.0 + - expected: GET + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.AllowedMethods.Items.1 + - expected: 2 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.AllowedMethods.Quantity + - expected: 0 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.Compress + - expected: 86400 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.DefaultTTL + - expected: none + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.ForwardedValues.Cookies.Forward + - expected: 0 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.ForwardedValues.Cookies.WhitelistedNames.Quantity + - expected: 0 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.ForwardedValues.Headers.Quantity + - expected: 0 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.ForwardedValues.QueryString + - expected: 0 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.ForwardedValues.QueryStringCacheKeys.Quantity + - expected: 0 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.LambdaFunctionAssociations.Quantity + - expected: 31536000 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.MaxTTL + - expected: 0 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.MinTTL + - expected: 0 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.SmoothStreaming + - expected: S3-paws.coudfront.test/images + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.TargetOriginId + - expected: 0 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.TrustedSigners.Enabled + - expected: 0 + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.TrustedSigners.Quantity + - expected: allow-all + op: eq + path: DistributionList.Items.0.DefaultCacheBehavior.ViewerProtocolPolicy + - expected: d2tcakdmwv4w1r.cloudfront.net + op: eq + path: DistributionList.Items.0.DomainName + - expected: 0 + op: eq + path: DistributionList.Items.0.Enabled + - expected: HTTP2 + op: eq + path: DistributionList.Items.0.HttpVersion + - expected: E2F696NMEQJ5SH + op: eq + path: DistributionList.Items.0.Id + - expected: 1 + op: eq + path: DistributionList.Items.0.IsIPV6Enabled + - expected: 2019-12-30T19:43:16.205Z + op: eq + path: DistributionList.Items.0.LastModifiedTime + - expected: 0 + op: eq + path: DistributionList.Items.0.OriginGroups.Quantity + - expected: 0 + op: eq + path: DistributionList.Items.0.Origins.Items.0.CustomHeaders.Quantity + - expected: 0 + op: eq + path: DistributionList.Items.0.Origins.Items.0.CustomOriginConfig.HTTPPort + - expected: 0 + op: eq + path: DistributionList.Items.0.Origins.Items.0.CustomOriginConfig.HTTPSPort + - expected: '' + op: eq + path: DistributionList.Items.0.Origins.Items.0.CustomOriginConfig.OriginProtocolPolicy + - expected: 0 + op: eq + path: DistributionList.Items.0.Origins.Items.0.CustomOriginConfig.OriginSslProtocols.Quantity + - expected: paws.coudfront.test.s3.us-east-1.amazonaws.com + op: eq + path: DistributionList.Items.0.Origins.Items.0.DomainName + - expected: S3-paws.coudfront.test/images + op: eq + path: DistributionList.Items.0.Origins.Items.0.Id + - expected: /images + op: eq + path: DistributionList.Items.0.Origins.Items.0.OriginPath + - expected: '' + op: eq + path: DistributionList.Items.0.Origins.Items.0.S3OriginConfig.OriginAccessIdentity + - expected: 1 + op: eq + path: DistributionList.Items.0.Origins.Quantity + - expected: PriceClass_All + op: eq + path: DistributionList.Items.0.PriceClass + - expected: 0 + op: eq + path: DistributionList.Items.0.Restrictions.GeoRestriction.Quantity + - expected: none + op: eq + path: DistributionList.Items.0.Restrictions.GeoRestriction.RestrictionType + - expected: Deployed + op: eq + path: DistributionList.Items.0.Status + - expected: cloudfront + op: eq + path: DistributionList.Items.0.ViewerCertificate.CertificateSource + - expected: 1 + op: eq + path: DistributionList.Items.0.ViewerCertificate.CloudFrontDefaultCertificate + - expected: TLSv1 + op: eq + path: DistributionList.Items.0.ViewerCertificate.MinimumProtocolVersion + - expected: '' + op: eq + path: DistributionList.Items.0.WebACLId + - expected: '' + op: eq + path: DistributionList.Marker + - expected: 1 + op: eq + path: DistributionList.MaxItems + - expected: E2F696NMEQJ5SH + op: eq + path: DistributionList.NextMarker + - expected: 1 + op: eq + path: DistributionList.Quantity + - expected: 34e422d4-331b-4696-b6c6-c28005fc5104 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-listfieldlevelencryptionconfigs.1.response b/t/10_responses/cloudfront-listfieldlevelencryptionconfigs.1.response new file mode 100644 index 0000000000..3c540e09ea --- /dev/null +++ b/t/10_responses/cloudfront-listfieldlevelencryptionconfigs.1.response @@ -0,0 +1,18 @@ +--- +content: |- + + 41C1PAI9EKFLCYTY2020-01-09T21:27:58.848ZPlease Rick. I can take care of myself!true1no_conigP14TNUMMKLEPXXtrue1URLEncodedP14TNUMMKLEPXXapplication/x-www-form-urlencoded +headers: + client-date: 'Thu, 09 Jan 2020 21:34:45 GMT' + client-peer: 54.239.29.51:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 1061 + content-type: text/xml + date: 'Thu, 09 Jan 2020 21:34:44 GMT' + x-amzn-requestid: ccf5f556-877c-474f-8dd3-3513e43d28c3 +status: 200 diff --git a/t/10_responses/cloudfront-listfieldlevelencryptionconfigs.1.response.test.yml b/t/10_responses/cloudfront-listfieldlevelencryptionconfigs.1.response.test.yml new file mode 100644 index 0000000000..e587337856 --- /dev/null +++ b/t/10_responses/cloudfront-listfieldlevelencryptionconfigs.1.response.test.yml @@ -0,0 +1,49 @@ +--- +call: ListFieldLevelEncryptionConfigs +service: CloudFront +tests: + - expected: Please Rick. I can take care of myself! + op: eq + path: FieldLevelEncryptionList.Items.0.Comment + - expected: application/x-www-form-urlencoded + op: eq + path: FieldLevelEncryptionList.Items.0.ContentTypeProfileConfig.ContentTypeProfiles.Items.0.ContentType + - expected: URLEncoded + op: eq + path: FieldLevelEncryptionList.Items.0.ContentTypeProfileConfig.ContentTypeProfiles.Items.0.Format + - expected: P14TNUMMKLEPXX + op: eq + path: FieldLevelEncryptionList.Items.0.ContentTypeProfileConfig.ContentTypeProfiles.Items.0.ProfileId + - expected: 1 + op: eq + path: FieldLevelEncryptionList.Items.0.ContentTypeProfileConfig.ContentTypeProfiles.Quantity + - expected: 1 + op: eq + path: FieldLevelEncryptionList.Items.0.ContentTypeProfileConfig.ForwardWhenContentTypeIsUnknown + - expected: C1PAI9EKFLCYTY + op: eq + path: FieldLevelEncryptionList.Items.0.Id + - expected: 2020-01-09T21:27:58.848Z + op: eq + path: FieldLevelEncryptionList.Items.0.LastModifiedTime + - expected: 1 + op: eq + path: FieldLevelEncryptionList.Items.0.QueryArgProfileConfig.ForwardWhenQueryArgProfileIsUnknown + - expected: P14TNUMMKLEPXX + op: eq + path: FieldLevelEncryptionList.Items.0.QueryArgProfileConfig.QueryArgProfiles.Items.0.ProfileId + - expected: no_conig + op: eq + path: FieldLevelEncryptionList.Items.0.QueryArgProfileConfig.QueryArgProfiles.Items.0.QueryArg + - expected: 1 + op: eq + path: FieldLevelEncryptionList.Items.0.QueryArgProfileConfig.QueryArgProfiles.Quantity + - expected: 4 + op: eq + path: FieldLevelEncryptionList.MaxItems + - expected: 1 + op: eq + path: FieldLevelEncryptionList.Quantity + - expected: ccf5f556-877c-474f-8dd3-3513e43d28c3 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-listfieldlevelencryptionconfigs.response b/t/10_responses/cloudfront-listfieldlevelencryptionconfigs.response new file mode 100644 index 0000000000..78fc642e27 --- /dev/null +++ b/t/10_responses/cloudfront-listfieldlevelencryptionconfigs.response @@ -0,0 +1,18 @@ +--- +content: |- + + 52C26GE31LXDSQZI2020-01-09T21:16:52.064ZNo Gerry you can't come!true1no_conigP14TNUMMKLEPXXtrue1URLEncodedP14TNUMMKLEPXXapplication/x-www-form-urlencodedC1PAI9EKFLCYTY2020-01-09T21:27:58.848ZPlease Rick. I can take care of myself!true1no_conigP14TNUMMKLEPXXtrue1URLEncodedP14TNUMMKLEPXXapplication/x-www-form-urlencoded +headers: + client-date: 'Thu, 09 Jan 2020 21:28:39 GMT' + client-peer: 54.239.29.26:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 1917 + content-type: text/xml + date: 'Thu, 09 Jan 2020 21:28:38 GMT' + x-amzn-requestid: c7285a15-c030-42dc-9625-6557bdf079ab +status: 200 diff --git a/t/10_responses/cloudfront-listfieldlevelencryptionconfigs.response.test.yml b/t/10_responses/cloudfront-listfieldlevelencryptionconfigs.response.test.yml new file mode 100644 index 0000000000..ac5d6dfac1 --- /dev/null +++ b/t/10_responses/cloudfront-listfieldlevelencryptionconfigs.response.test.yml @@ -0,0 +1,85 @@ +--- +call: ListFieldLevelEncryptionConfigs +service: CloudFront +tests: + - expected: No Gerry you can't come! + op: eq + path: FieldLevelEncryptionList.Items.0.Comment + - expected: application/x-www-form-urlencoded + op: eq + path: FieldLevelEncryptionList.Items.0.ContentTypeProfileConfig.ContentTypeProfiles.Items.0.ContentType + - expected: URLEncoded + op: eq + path: FieldLevelEncryptionList.Items.0.ContentTypeProfileConfig.ContentTypeProfiles.Items.0.Format + - expected: P14TNUMMKLEPXX + op: eq + path: FieldLevelEncryptionList.Items.0.ContentTypeProfileConfig.ContentTypeProfiles.Items.0.ProfileId + - expected: 1 + op: eq + path: FieldLevelEncryptionList.Items.0.ContentTypeProfileConfig.ContentTypeProfiles.Quantity + - expected: 1 + op: eq + path: FieldLevelEncryptionList.Items.0.ContentTypeProfileConfig.ForwardWhenContentTypeIsUnknown + - expected: C26GE31LXDSQZI + op: eq + path: FieldLevelEncryptionList.Items.0.Id + - expected: 2020-01-09T21:16:52.064Z + op: eq + path: FieldLevelEncryptionList.Items.0.LastModifiedTime + - expected: 1 + op: eq + path: FieldLevelEncryptionList.Items.0.QueryArgProfileConfig.ForwardWhenQueryArgProfileIsUnknown + - expected: P14TNUMMKLEPXX + op: eq + path: FieldLevelEncryptionList.Items.0.QueryArgProfileConfig.QueryArgProfiles.Items.0.ProfileId + - expected: no_conig + op: eq + path: FieldLevelEncryptionList.Items.0.QueryArgProfileConfig.QueryArgProfiles.Items.0.QueryArg + - expected: 1 + op: eq + path: FieldLevelEncryptionList.Items.0.QueryArgProfileConfig.QueryArgProfiles.Quantity + - expected: Please Rick. I can take care of myself! + op: eq + path: FieldLevelEncryptionList.Items.1.Comment + - expected: application/x-www-form-urlencoded + op: eq + path: FieldLevelEncryptionList.Items.1.ContentTypeProfileConfig.ContentTypeProfiles.Items.0.ContentType + - expected: URLEncoded + op: eq + path: FieldLevelEncryptionList.Items.1.ContentTypeProfileConfig.ContentTypeProfiles.Items.0.Format + - expected: P14TNUMMKLEPXX + op: eq + path: FieldLevelEncryptionList.Items.1.ContentTypeProfileConfig.ContentTypeProfiles.Items.0.ProfileId + - expected: 1 + op: eq + path: FieldLevelEncryptionList.Items.1.ContentTypeProfileConfig.ContentTypeProfiles.Quantity + - expected: 1 + op: eq + path: FieldLevelEncryptionList.Items.1.ContentTypeProfileConfig.ForwardWhenContentTypeIsUnknown + - expected: C1PAI9EKFLCYTY + op: eq + path: FieldLevelEncryptionList.Items.1.Id + - expected: 2020-01-09T21:27:58.848Z + op: eq + path: FieldLevelEncryptionList.Items.1.LastModifiedTime + - expected: 1 + op: eq + path: FieldLevelEncryptionList.Items.1.QueryArgProfileConfig.ForwardWhenQueryArgProfileIsUnknown + - expected: P14TNUMMKLEPXX + op: eq + path: FieldLevelEncryptionList.Items.1.QueryArgProfileConfig.QueryArgProfiles.Items.0.ProfileId + - expected: no_conig + op: eq + path: FieldLevelEncryptionList.Items.1.QueryArgProfileConfig.QueryArgProfiles.Items.0.QueryArg + - expected: 1 + op: eq + path: FieldLevelEncryptionList.Items.1.QueryArgProfileConfig.QueryArgProfiles.Quantity + - expected: 5 + op: eq + path: FieldLevelEncryptionList.MaxItems + - expected: 2 + op: eq + path: FieldLevelEncryptionList.Quantity + - expected: c7285a15-c030-42dc-9625-6557bdf079ab + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-listfieldlevelencryptionprofiles.1.response b/t/10_responses/cloudfront-listfieldlevelencryptionprofiles.1.response new file mode 100644 index 0000000000..712652e073 --- /dev/null +++ b/t/10_responses/cloudfront-listfieldlevelencryptionprofiles.1.response @@ -0,0 +1,18 @@ +--- +content: |- + + 1002P14TNUMMKLEPXX2020-01-09T20:33:35.676ZPawsCloudConfig1K3ODSO6SYTI4ZGOpenSSL2some*None*Rick was hereP11YIB8QUZ31DB2020-01-09T20:40:51.296ZPawsCloudConfigTwo1K3ODSO6SYTI4ZGOpenSSL2Never*Please*Rick was here. Yet Again +headers: + client-date: 'Thu, 09 Jan 2020 20:41:20 GMT' + client-peer: 54.239.29.65:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 1305 + content-type: text/xml + date: 'Thu, 09 Jan 2020 20:41:19 GMT' + x-amzn-requestid: 2347866e-6fd6-4041-afeb-8155a8f5d44d +status: 200 diff --git a/t/10_responses/cloudfront-listfieldlevelencryptionprofiles.1.response.test.yml b/t/10_responses/cloudfront-listfieldlevelencryptionprofiles.1.response.test.yml new file mode 100644 index 0000000000..ed2ddee82b --- /dev/null +++ b/t/10_responses/cloudfront-listfieldlevelencryptionprofiles.1.response.test.yml @@ -0,0 +1,73 @@ +--- +call: ListFieldLevelEncryptionProfiles +service: CloudFront +tests: + - expected: Rick was here + op: eq + path: FieldLevelEncryptionProfileList.Items.0.Comment + - expected: some* + op: eq + path: FieldLevelEncryptionProfileList.Items.0.EncryptionEntities.Items.0.FieldPatterns.Items.0 + - expected: None* + op: eq + path: FieldLevelEncryptionProfileList.Items.0.EncryptionEntities.Items.0.FieldPatterns.Items.1 + - expected: 2 + op: eq + path: FieldLevelEncryptionProfileList.Items.0.EncryptionEntities.Items.0.FieldPatterns.Quantity + - expected: OpenSSL + op: eq + path: FieldLevelEncryptionProfileList.Items.0.EncryptionEntities.Items.0.ProviderId + - expected: K3ODSO6SYTI4ZG + op: eq + path: FieldLevelEncryptionProfileList.Items.0.EncryptionEntities.Items.0.PublicKeyId + - expected: 1 + op: eq + path: FieldLevelEncryptionProfileList.Items.0.EncryptionEntities.Quantity + - expected: P14TNUMMKLEPXX + op: eq + path: FieldLevelEncryptionProfileList.Items.0.Id + - expected: 2020-01-09T20:33:35.676Z + op: eq + path: FieldLevelEncryptionProfileList.Items.0.LastModifiedTime + - expected: PawsCloudConfig + op: eq + path: FieldLevelEncryptionProfileList.Items.0.Name + - expected: Rick was here. Yet Again + op: eq + path: FieldLevelEncryptionProfileList.Items.1.Comment + - expected: Never* + op: eq + path: FieldLevelEncryptionProfileList.Items.1.EncryptionEntities.Items.0.FieldPatterns.Items.0 + - expected: Please* + op: eq + path: FieldLevelEncryptionProfileList.Items.1.EncryptionEntities.Items.0.FieldPatterns.Items.1 + - expected: 2 + op: eq + path: FieldLevelEncryptionProfileList.Items.1.EncryptionEntities.Items.0.FieldPatterns.Quantity + - expected: OpenSSL + op: eq + path: FieldLevelEncryptionProfileList.Items.1.EncryptionEntities.Items.0.ProviderId + - expected: K3ODSO6SYTI4ZG + op: eq + path: FieldLevelEncryptionProfileList.Items.1.EncryptionEntities.Items.0.PublicKeyId + - expected: 1 + op: eq + path: FieldLevelEncryptionProfileList.Items.1.EncryptionEntities.Quantity + - expected: P11YIB8QUZ31DB + op: eq + path: FieldLevelEncryptionProfileList.Items.1.Id + - expected: 2020-01-09T20:40:51.296Z + op: eq + path: FieldLevelEncryptionProfileList.Items.1.LastModifiedTime + - expected: PawsCloudConfigTwo + op: eq + path: FieldLevelEncryptionProfileList.Items.1.Name + - expected: 100 + op: eq + path: FieldLevelEncryptionProfileList.MaxItems + - expected: 2 + op: eq + path: FieldLevelEncryptionProfileList.Quantity + - expected: 2347866e-6fd6-4041-afeb-8155a8f5d44d + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-listfieldlevelencryptionprofiles.response b/t/10_responses/cloudfront-listfieldlevelencryptionprofiles.response new file mode 100644 index 0000000000..9323da0b5b --- /dev/null +++ b/t/10_responses/cloudfront-listfieldlevelencryptionprofiles.response @@ -0,0 +1,18 @@ +--- +content: |- + + 1001P14TNUMMKLEPXX2020-01-09T20:33:35.676ZPawsCloudConfig1K3ODSO6SYTI4ZGOpenSSL2some*None*Rick was here +headers: + client-date: 'Thu, 09 Jan 2020 20:37:21 GMT' + client-peer: 54.239.29.65:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 747 + content-type: text/xml + date: 'Thu, 09 Jan 2020 20:37:20 GMT' + x-amzn-requestid: 8199ade2-7536-407c-854c-a9f804af44a5 +status: 200 diff --git a/t/10_responses/cloudfront-listfieldlevelencryptionprofiles.response.test.yml b/t/10_responses/cloudfront-listfieldlevelencryptionprofiles.response.test.yml new file mode 100644 index 0000000000..083c9c7d46 --- /dev/null +++ b/t/10_responses/cloudfront-listfieldlevelencryptionprofiles.response.test.yml @@ -0,0 +1,43 @@ +--- +call: ListFieldLevelEncryptionProfiles +service: CloudFront +tests: + - expected: Rick was here + op: eq + path: FieldLevelEncryptionProfileList.Items.0.Comment + - expected: some* + op: eq + path: FieldLevelEncryptionProfileList.Items.0.EncryptionEntities.Items.0.FieldPatterns.Items.0 + - expected: None* + op: eq + path: FieldLevelEncryptionProfileList.Items.0.EncryptionEntities.Items.0.FieldPatterns.Items.1 + - expected: 2 + op: eq + path: FieldLevelEncryptionProfileList.Items.0.EncryptionEntities.Items.0.FieldPatterns.Quantity + - expected: OpenSSL + op: eq + path: FieldLevelEncryptionProfileList.Items.0.EncryptionEntities.Items.0.ProviderId + - expected: K3ODSO6SYTI4ZG + op: eq + path: FieldLevelEncryptionProfileList.Items.0.EncryptionEntities.Items.0.PublicKeyId + - expected: 1 + op: eq + path: FieldLevelEncryptionProfileList.Items.0.EncryptionEntities.Quantity + - expected: P14TNUMMKLEPXX + op: eq + path: FieldLevelEncryptionProfileList.Items.0.Id + - expected: 2020-01-09T20:33:35.676Z + op: eq + path: FieldLevelEncryptionProfileList.Items.0.LastModifiedTime + - expected: PawsCloudConfig + op: eq + path: FieldLevelEncryptionProfileList.Items.0.Name + - expected: 100 + op: eq + path: FieldLevelEncryptionProfileList.MaxItems + - expected: 1 + op: eq + path: FieldLevelEncryptionProfileList.Quantity + - expected: 8199ade2-7536-407c-854c-a9f804af44a5 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-listinvalidations.1.response b/t/10_responses/cloudfront-listinvalidations.1.response new file mode 100644 index 0000000000..1abcdd24cf --- /dev/null +++ b/t/10_responses/cloudfront-listinvalidations.1.response @@ -0,0 +1,18 @@ +--- +content: |- + + 3false2I2ICM4994YF3KQ2020-01-09T22:42:47.577ZCompletedI2IH0KUHCUPI0W2020-01-09T22:39:50.002ZCompleted +headers: + client-date: 'Fri, 10 Jan 2020 19:50:11 GMT' + client-peer: 54.239.29.65:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 505 + content-type: text/xml + date: 'Fri, 10 Jan 2020 19:50:10 GMT' + x-amzn-requestid: 578218d0-9558-4d27-9c09-7464b76c1696 +status: 200 diff --git a/t/10_responses/cloudfront-listinvalidations.1.response.test.yml b/t/10_responses/cloudfront-listinvalidations.1.response.test.yml new file mode 100644 index 0000000000..8af85b6f58 --- /dev/null +++ b/t/10_responses/cloudfront-listinvalidations.1.response.test.yml @@ -0,0 +1,37 @@ +--- +call: ListInvalidations +service: CloudFront +tests: + - expected: 0 + op: eq + path: InvalidationList.IsTruncated + - expected: 2020-01-09T22:42:47.577Z + op: eq + path: InvalidationList.Items.0.CreateTime + - expected: I2ICM4994YF3KQ + op: eq + path: InvalidationList.Items.0.Id + - expected: Completed + op: eq + path: InvalidationList.Items.0.Status + - expected: 2020-01-09T22:39:50.002Z + op: eq + path: InvalidationList.Items.1.CreateTime + - expected: I2IH0KUHCUPI0W + op: eq + path: InvalidationList.Items.1.Id + - expected: Completed + op: eq + path: InvalidationList.Items.1.Status + - expected: '' + op: eq + path: InvalidationList.Marker + - expected: 3 + op: eq + path: InvalidationList.MaxItems + - expected: 2 + op: eq + path: InvalidationList.Quantity + - expected: 578218d0-9558-4d27-9c09-7464b76c1696 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-listinvalidations.response b/t/10_responses/cloudfront-listinvalidations.response new file mode 100644 index 0000000000..5911b1c1c6 --- /dev/null +++ b/t/10_responses/cloudfront-listinvalidations.response @@ -0,0 +1,18 @@ +--- +content: |- + + 2false1I2IH0KUHCUPI0W2020-01-09T22:39:50.002ZCompleted +headers: + client-date: 'Thu, 09 Jan 2020 22:41:11 GMT' + client-peer: 54.239.29.51:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 364 + content-type: text/xml + date: 'Thu, 09 Jan 2020 22:41:11 GMT' + x-amzn-requestid: 45ffa23a-00d4-4d7f-a642-22d3a5174318 +status: 200 diff --git a/t/10_responses/cloudfront-listinvalidations.response.test.yml b/t/10_responses/cloudfront-listinvalidations.response.test.yml new file mode 100644 index 0000000000..6090434898 --- /dev/null +++ b/t/10_responses/cloudfront-listinvalidations.response.test.yml @@ -0,0 +1,28 @@ +--- +call: ListInvalidations +service: CloudFront +tests: + - expected: 0 + op: eq + path: InvalidationList.IsTruncated + - expected: 2020-01-09T22:39:50.002Z + op: eq + path: InvalidationList.Items.0.CreateTime + - expected: I2IH0KUHCUPI0W + op: eq + path: InvalidationList.Items.0.Id + - expected: Completed + op: eq + path: InvalidationList.Items.0.Status + - expected: '' + op: eq + path: InvalidationList.Marker + - expected: 2 + op: eq + path: InvalidationList.MaxItems + - expected: 1 + op: eq + path: InvalidationList.Quantity + - expected: 45ffa23a-00d4-4d7f-a642-22d3a5174318 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-listpublickeys.1.response b/t/10_responses/cloudfront-listpublickeys.1.response new file mode 100644 index 0000000000..8caed9e57f --- /dev/null +++ b/t/10_responses/cloudfront-listpublickeys.1.response @@ -0,0 +1,27 @@ +--- +content: |- + + 41K3ODSO6SYTI4ZGTestKeyPaws32020-01-08T22:10:05.522Z-----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp5X8pCq9EllW/vd8dYc2 + oCl58nAuSoYTfEdzR/XQGLKugBqwSSHtfyG10bAsNjS6UnqfK3vG7QSo9zgiCvCn + KUF4J9mCEzUMCkiKcqZn169YheeMKCF04Q2xmdIMlw1FA/VGZ3HhC49hsIzAKlqC + q/3n3nEdb4Gf4J3KvY+KW+YcZJZQQG4QzqeUG/01MHs47RzhA9xFRJDvSXf4EGTT + eg6IAbeOlGDxiQ0d25PqZ9y+LVpa6pVy86qHnvkzbMHE2yGCiQKIuC60D4AJS/dx + 2TLLOAI8w0zm3aSvd1ktNZZMgNlnUkJFEMMlq3H7edzkb2NDNvGQ07cwJRU9h4Wt + bwIDAQAB + -----END PUBLIC KEY----- + This is a test key3 +headers: + client-date: 'Wed, 08 Jan 2020 22:12:12 GMT' + client-peer: 54.239.29.51:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 818 + content-type: text/xml + date: 'Wed, 08 Jan 2020 22:12:11 GMT' + x-amzn-requestid: 0b3b06e7-c93a-4503-9548-1d0ea3d88ca3 +status: 200 diff --git a/t/10_responses/cloudfront-listpublickeys.1.response.test.yml b/t/10_responses/cloudfront-listpublickeys.1.response.test.yml new file mode 100644 index 0000000000..c0e022029a --- /dev/null +++ b/t/10_responses/cloudfront-listpublickeys.1.response.test.yml @@ -0,0 +1,37 @@ +--- +call: ListPublicKeys +service: CloudFront +tests: + - expected: This is a test key3 + op: eq + path: PublicKeyList.Items.0.Comment + - expected: 2020-01-08T22:10:05.522Z + op: eq + path: PublicKeyList.Items.0.CreatedTime + - expected: | + -----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp5X8pCq9EllW/vd8dYc2 + oCl58nAuSoYTfEdzR/XQGLKugBqwSSHtfyG10bAsNjS6UnqfK3vG7QSo9zgiCvCn + KUF4J9mCEzUMCkiKcqZn169YheeMKCF04Q2xmdIMlw1FA/VGZ3HhC49hsIzAKlqC + q/3n3nEdb4Gf4J3KvY+KW+YcZJZQQG4QzqeUG/01MHs47RzhA9xFRJDvSXf4EGTT + eg6IAbeOlGDxiQ0d25PqZ9y+LVpa6pVy86qHnvkzbMHE2yGCiQKIuC60D4AJS/dx + 2TLLOAI8w0zm3aSvd1ktNZZMgNlnUkJFEMMlq3H7edzkb2NDNvGQ07cwJRU9h4Wt + bwIDAQAB + -----END PUBLIC KEY----- + op: eq + path: PublicKeyList.Items.0.EncodedKey + - expected: K3ODSO6SYTI4ZG + op: eq + path: PublicKeyList.Items.0.Id + - expected: TestKeyPaws3 + op: eq + path: PublicKeyList.Items.0.Name + - expected: 4 + op: eq + path: PublicKeyList.MaxItems + - expected: 1 + op: eq + path: PublicKeyList.Quantity + - expected: 0b3b06e7-c93a-4503-9548-1d0ea3d88ca3 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-listpublickeys.response b/t/10_responses/cloudfront-listpublickeys.response new file mode 100644 index 0000000000..7d9dd5a5a0 --- /dev/null +++ b/t/10_responses/cloudfront-listpublickeys.response @@ -0,0 +1,36 @@ +--- +content: |- + + 42K18H03HBTFHOUATestKeyPaws2020-01-08T22:05:14.150Z-----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp5X8pCq9EllW/vd8dYc2 + oCl58nAuSoYTfEdzR/XQGLKugBqwSSHtfyG10bAsNjS6UnqfK3vG7QSo9zgiCvCn + KUF4J9mCEzUMCkiKcqZn169YheeMKCF04Q2xmdIMlw1FA/VGZ3HhC49hsIzAKlqC + q/3n3nEdb4Gf4J3KvY+KW+YcZJZQQG4QzqeUG/01MHs47RzhA9xFRJDvSXf4EGTT + eg6IAbeOlGDxiQ0d25PqZ9y+LVpa6pVy86qHnvkzbMHE2yGCiQKIuC60D4AJS/dx + 2TLLOAI8w0zm3aSvd1ktNZZMgNlnUkJFEMMlq3H7edzkb2NDNvGQ07cwJRU9h4Wt + bwIDAQAB + -----END PUBLIC KEY----- + This is a test keyK3ODSO6SYTI4ZGTestKeyPaws32020-01-08T22:10:05.522Z-----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp5X8pCq9EllW/vd8dYc2 + oCl58nAuSoYTfEdzR/XQGLKugBqwSSHtfyG10bAsNjS6UnqfK3vG7QSo9zgiCvCn + KUF4J9mCEzUMCkiKcqZn169YheeMKCF04Q2xmdIMlw1FA/VGZ3HhC49hsIzAKlqC + q/3n3nEdb4Gf4J3KvY+KW+YcZJZQQG4QzqeUG/01MHs47RzhA9xFRJDvSXf4EGTT + eg6IAbeOlGDxiQ0d25PqZ9y+LVpa6pVy86qHnvkzbMHE2yGCiQKIuC60D4AJS/dx + 2TLLOAI8w0zm3aSvd1ktNZZMgNlnUkJFEMMlq3H7edzkb2NDNvGQ07cwJRU9h4Wt + bwIDAQAB + -----END PUBLIC KEY----- + This is a test key3 +headers: + client-date: 'Wed, 08 Jan 2020 22:11:00 GMT' + client-peer: 54.239.29.65:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 1466 + content-type: text/xml + date: 'Wed, 08 Jan 2020 22:11:00 GMT' + x-amzn-requestid: 3bed2e47-275c-49cc-8567-80e1fe70224b +status: 200 diff --git a/t/10_responses/cloudfront-listpublickeys.response.test.yml b/t/10_responses/cloudfront-listpublickeys.response.test.yml new file mode 100644 index 0000000000..b77779b5c8 --- /dev/null +++ b/t/10_responses/cloudfront-listpublickeys.response.test.yml @@ -0,0 +1,61 @@ +--- +call: ListPublicKeys +service: CloudFront +tests: + - expected: This is a test key + op: eq + path: PublicKeyList.Items.0.Comment + - expected: 2020-01-08T22:05:14.150Z + op: eq + path: PublicKeyList.Items.0.CreatedTime + - expected: | + -----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp5X8pCq9EllW/vd8dYc2 + oCl58nAuSoYTfEdzR/XQGLKugBqwSSHtfyG10bAsNjS6UnqfK3vG7QSo9zgiCvCn + KUF4J9mCEzUMCkiKcqZn169YheeMKCF04Q2xmdIMlw1FA/VGZ3HhC49hsIzAKlqC + q/3n3nEdb4Gf4J3KvY+KW+YcZJZQQG4QzqeUG/01MHs47RzhA9xFRJDvSXf4EGTT + eg6IAbeOlGDxiQ0d25PqZ9y+LVpa6pVy86qHnvkzbMHE2yGCiQKIuC60D4AJS/dx + 2TLLOAI8w0zm3aSvd1ktNZZMgNlnUkJFEMMlq3H7edzkb2NDNvGQ07cwJRU9h4Wt + bwIDAQAB + -----END PUBLIC KEY----- + op: eq + path: PublicKeyList.Items.0.EncodedKey + - expected: K18H03HBTFHOUA + op: eq + path: PublicKeyList.Items.0.Id + - expected: TestKeyPaws + op: eq + path: PublicKeyList.Items.0.Name + - expected: This is a test key3 + op: eq + path: PublicKeyList.Items.1.Comment + - expected: 2020-01-08T22:10:05.522Z + op: eq + path: PublicKeyList.Items.1.CreatedTime + - expected: | + -----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp5X8pCq9EllW/vd8dYc2 + oCl58nAuSoYTfEdzR/XQGLKugBqwSSHtfyG10bAsNjS6UnqfK3vG7QSo9zgiCvCn + KUF4J9mCEzUMCkiKcqZn169YheeMKCF04Q2xmdIMlw1FA/VGZ3HhC49hsIzAKlqC + q/3n3nEdb4Gf4J3KvY+KW+YcZJZQQG4QzqeUG/01MHs47RzhA9xFRJDvSXf4EGTT + eg6IAbeOlGDxiQ0d25PqZ9y+LVpa6pVy86qHnvkzbMHE2yGCiQKIuC60D4AJS/dx + 2TLLOAI8w0zm3aSvd1ktNZZMgNlnUkJFEMMlq3H7edzkb2NDNvGQ07cwJRU9h4Wt + bwIDAQAB + -----END PUBLIC KEY----- + op: eq + path: PublicKeyList.Items.1.EncodedKey + - expected: K3ODSO6SYTI4ZG + op: eq + path: PublicKeyList.Items.1.Id + - expected: TestKeyPaws3 + op: eq + path: PublicKeyList.Items.1.Name + - expected: 4 + op: eq + path: PublicKeyList.MaxItems + - expected: 2 + op: eq + path: PublicKeyList.Quantity + - expected: 3bed2e47-275c-49cc-8567-80e1fe70224b + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-liststreamingdistributions.1.response b/t/10_responses/cloudfront-liststreamingdistributions.1.response new file mode 100644 index 0000000000..475ad40fd3 --- /dev/null +++ b/t/10_responses/cloudfront-liststreamingdistributions.1.response @@ -0,0 +1,19 @@ +--- +content: |- + + 10false3E2NTUK2D9QNN2Parn:aws:cloudfront::985173205561:streaming-distribution/E2NTUK2D9QNN2PDeployed2020-01-11T02:06:37.678Zs4lzay6ct4xc1.cloudfront.netpawsexamplebucket.s3.amazonaws.com0false0PriceClass_AllfalseE1MH0EIPT4AYI7arn:aws:cloudfront::985173205561:streaming-distribution/E1MH0EIPT4AYI7Deployed2020-01-11T18:13:17.556Zs3up0qnnejm0h2.cloudfront.netpawsexamplebucket.s3.amazonaws.comorigin-access-identity/cloudfront/E3D5Y5RWA05QO10false0PriceClass_AllfalseE17937UBVFIW2Larn:aws:cloudfront::985173205561:streaming-distribution/E17937UBVFIW2LInProgress2020-01-11T18:34:18.239Zs3pn52kbh66jq2.cloudfront.netoneoffpaws.s3.amazonaws.comorigin-access-identity/cloudfront/E3D5Y5RWA05QO10false0I squanch, your Squanch, SquancePriceClass_100false +headers: + client-date: 'Sat, 11 Jan 2020 18:41:43 GMT' + client-peer: 54.239.29.26:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 2260 + content-type: text/xml + date: 'Sat, 11 Jan 2020 18:41:42 GMT' + vary: Accept-Encoding + x-amzn-requestid: 683ef1ad-d68e-49de-9ed7-d7899d44c2ea +status: 200 diff --git a/t/10_responses/cloudfront-liststreamingdistributions.1.response.test.yml b/t/10_responses/cloudfront-liststreamingdistributions.1.response.test.yml new file mode 100644 index 0000000000..4e51f71e6e --- /dev/null +++ b/t/10_responses/cloudfront-liststreamingdistributions.1.response.test.yml @@ -0,0 +1,136 @@ +--- +call: ListStreamingDistributions +service: CloudFront +tests: + - expected: 0 + op: eq + path: StreamingDistributionList.IsTruncated + - expected: arn:aws:cloudfront::985173205561:streaming-distribution/E2NTUK2D9QNN2P + op: eq + path: StreamingDistributionList.Items.0.ARN + - expected: 0 + op: eq + path: StreamingDistributionList.Items.0.Aliases.Quantity + - expected: '' + op: eq + path: StreamingDistributionList.Items.0.Comment + - expected: s4lzay6ct4xc1.cloudfront.net + op: eq + path: StreamingDistributionList.Items.0.DomainName + - expected: 0 + op: eq + path: StreamingDistributionList.Items.0.Enabled + - expected: E2NTUK2D9QNN2P + op: eq + path: StreamingDistributionList.Items.0.Id + - expected: 2020-01-11T02:06:37.678Z + op: eq + path: StreamingDistributionList.Items.0.LastModifiedTime + - expected: PriceClass_All + op: eq + path: StreamingDistributionList.Items.0.PriceClass + - expected: pawsexamplebucket.s3.amazonaws.com + op: eq + path: StreamingDistributionList.Items.0.S3Origin.DomainName + - expected: '' + op: eq + path: StreamingDistributionList.Items.0.S3Origin.OriginAccessIdentity + - expected: Deployed + op: eq + path: StreamingDistributionList.Items.0.Status + - expected: 0 + op: eq + path: StreamingDistributionList.Items.0.TrustedSigners.Enabled + - expected: 0 + op: eq + path: StreamingDistributionList.Items.0.TrustedSigners.Quantity + - expected: arn:aws:cloudfront::985173205561:streaming-distribution/E1MH0EIPT4AYI7 + op: eq + path: StreamingDistributionList.Items.1.ARN + - expected: 0 + op: eq + path: StreamingDistributionList.Items.1.Aliases.Quantity + - expected: '' + op: eq + path: StreamingDistributionList.Items.1.Comment + - expected: s3up0qnnejm0h2.cloudfront.net + op: eq + path: StreamingDistributionList.Items.1.DomainName + - expected: 0 + op: eq + path: StreamingDistributionList.Items.1.Enabled + - expected: E1MH0EIPT4AYI7 + op: eq + path: StreamingDistributionList.Items.1.Id + - expected: 2020-01-11T18:13:17.556Z + op: eq + path: StreamingDistributionList.Items.1.LastModifiedTime + - expected: PriceClass_All + op: eq + path: StreamingDistributionList.Items.1.PriceClass + - expected: pawsexamplebucket.s3.amazonaws.com + op: eq + path: StreamingDistributionList.Items.1.S3Origin.DomainName + - expected: origin-access-identity/cloudfront/E3D5Y5RWA05QO1 + op: eq + path: StreamingDistributionList.Items.1.S3Origin.OriginAccessIdentity + - expected: Deployed + op: eq + path: StreamingDistributionList.Items.1.Status + - expected: 0 + op: eq + path: StreamingDistributionList.Items.1.TrustedSigners.Enabled + - expected: 0 + op: eq + path: StreamingDistributionList.Items.1.TrustedSigners.Quantity + - expected: arn:aws:cloudfront::985173205561:streaming-distribution/E17937UBVFIW2L + op: eq + path: StreamingDistributionList.Items.2.ARN + - expected: 0 + op: eq + path: StreamingDistributionList.Items.2.Aliases.Quantity + - expected: 'I squanch, your Squanch, Squance' + op: eq + path: StreamingDistributionList.Items.2.Comment + - expected: s3pn52kbh66jq2.cloudfront.net + op: eq + path: StreamingDistributionList.Items.2.DomainName + - expected: 0 + op: eq + path: StreamingDistributionList.Items.2.Enabled + - expected: E17937UBVFIW2L + op: eq + path: StreamingDistributionList.Items.2.Id + - expected: 2020-01-11T18:34:18.239Z + op: eq + path: StreamingDistributionList.Items.2.LastModifiedTime + - expected: PriceClass_100 + op: eq + path: StreamingDistributionList.Items.2.PriceClass + - expected: oneoffpaws.s3.amazonaws.com + op: eq + path: StreamingDistributionList.Items.2.S3Origin.DomainName + - expected: origin-access-identity/cloudfront/E3D5Y5RWA05QO1 + op: eq + path: StreamingDistributionList.Items.2.S3Origin.OriginAccessIdentity + - expected: InProgress + op: eq + path: StreamingDistributionList.Items.2.Status + - expected: 0 + op: eq + path: StreamingDistributionList.Items.2.TrustedSigners.Enabled + - expected: 0 + op: eq + path: StreamingDistributionList.Items.2.TrustedSigners.Quantity + - expected: '' + op: eq + path: StreamingDistributionList.Marker + - expected: 10 + op: eq + path: StreamingDistributionList.MaxItems + - expected: 3 + op: eq + path: StreamingDistributionList.Quantity + - expected: 683ef1ad-d68e-49de-9ed7-d7899d44c2ea + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-liststreamingdistributions.response b/t/10_responses/cloudfront-liststreamingdistributions.response new file mode 100644 index 0000000000..5eb2cacf18 --- /dev/null +++ b/t/10_responses/cloudfront-liststreamingdistributions.response @@ -0,0 +1,18 @@ +--- +content: |- + + E2NTUK2D9QNN2P1true1E2NTUK2D9QNN2Parn:aws:cloudfront::985173205561:streaming-distribution/E2NTUK2D9QNN2PDeployed2020-01-11T02:06:37.678Zs4lzay6ct4xc1.cloudfront.netpawsexamplebucket.s3.amazonaws.com0false0PriceClass_Allfalse +headers: + client-date: 'Sat, 11 Jan 2020 18:41:00 GMT' + client-peer: 54.239.29.26:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 910 + content-type: text/xml + date: 'Sat, 11 Jan 2020 18:41:00 GMT' + x-amzn-requestid: 68b91529-e68a-411f-bd02-6bdb5e456919 +status: 200 diff --git a/t/10_responses/cloudfront-liststreamingdistributions.response.test.yml b/t/10_responses/cloudfront-liststreamingdistributions.response.test.yml new file mode 100644 index 0000000000..d977c2abd8 --- /dev/null +++ b/t/10_responses/cloudfront-liststreamingdistributions.response.test.yml @@ -0,0 +1,61 @@ +--- +call: ListStreamingDistributions +service: CloudFront +tests: + - expected: 1 + op: eq + path: StreamingDistributionList.IsTruncated + - expected: arn:aws:cloudfront::985173205561:streaming-distribution/E2NTUK2D9QNN2P + op: eq + path: StreamingDistributionList.Items.0.ARN + - expected: 0 + op: eq + path: StreamingDistributionList.Items.0.Aliases.Quantity + - expected: '' + op: eq + path: StreamingDistributionList.Items.0.Comment + - expected: s4lzay6ct4xc1.cloudfront.net + op: eq + path: StreamingDistributionList.Items.0.DomainName + - expected: 0 + op: eq + path: StreamingDistributionList.Items.0.Enabled + - expected: E2NTUK2D9QNN2P + op: eq + path: StreamingDistributionList.Items.0.Id + - expected: 2020-01-11T02:06:37.678Z + op: eq + path: StreamingDistributionList.Items.0.LastModifiedTime + - expected: PriceClass_All + op: eq + path: StreamingDistributionList.Items.0.PriceClass + - expected: pawsexamplebucket.s3.amazonaws.com + op: eq + path: StreamingDistributionList.Items.0.S3Origin.DomainName + - expected: '' + op: eq + path: StreamingDistributionList.Items.0.S3Origin.OriginAccessIdentity + - expected: Deployed + op: eq + path: StreamingDistributionList.Items.0.Status + - expected: 0 + op: eq + path: StreamingDistributionList.Items.0.TrustedSigners.Enabled + - expected: 0 + op: eq + path: StreamingDistributionList.Items.0.TrustedSigners.Quantity + - expected: '' + op: eq + path: StreamingDistributionList.Marker + - expected: 1 + op: eq + path: StreamingDistributionList.MaxItems + - expected: E2NTUK2D9QNN2P + op: eq + path: StreamingDistributionList.NextMarker + - expected: 1 + op: eq + path: StreamingDistributionList.Quantity + - expected: 68b91529-e68a-411f-bd02-6bdb5e456919 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-listtagsforresource.response b/t/10_responses/cloudfront-listtagsforresource.response new file mode 100644 index 0000000000..f34162d9b8 --- /dev/null +++ b/t/10_responses/cloudfront-listtagsforresource.response @@ -0,0 +1,18 @@ +--- +content: |- + + Tag1Value 1Tag2Value 2Tag3Value 3Tag4Value 4 +headers: + client-date: 'Fri, 10 Jan 2020 20:02:07 GMT' + client-peer: 54.239.29.51:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 298 + content-type: text/xml + date: 'Fri, 10 Jan 2020 20:02:07 GMT' + x-amzn-requestid: c8f47479-9a26-4d2f-9cb9-298eca142f6d +status: 200 diff --git a/t/10_responses/cloudfront-listtagsforresource.response.test.yml b/t/10_responses/cloudfront-listtagsforresource.response.test.yml new file mode 100644 index 0000000000..8d580fbc74 --- /dev/null +++ b/t/10_responses/cloudfront-listtagsforresource.response.test.yml @@ -0,0 +1,31 @@ +--- +call: ListTagsForResource +service: CloudFront +tests: + - expected: Tag1 + op: eq + path: Tags.Items.0.Key + - expected: Value 1 + op: eq + path: Tags.Items.0.Value + - expected: Tag2 + op: eq + path: Tags.Items.1.Key + - expected: Value 2 + op: eq + path: Tags.Items.1.Value + - expected: Tag3 + op: eq + path: Tags.Items.2.Key + - expected: Value 3 + op: eq + path: Tags.Items.2.Value + - expected: Tag4 + op: eq + path: Tags.Items.3.Key + - expected: Value 4 + op: eq + path: Tags.Items.3.Value + - expected: c8f47479-9a26-4d2f-9cb9-298eca142f6d + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-tagresource.1.response b/t/10_responses/cloudfront-tagresource.1.response new file mode 100644 index 0000000000..53fde41038 --- /dev/null +++ b/t/10_responses/cloudfront-tagresource.1.response @@ -0,0 +1,15 @@ +--- +content: '' +headers: + client-date: 'Fri, 10 Jan 2020 19:58:39 GMT' + client-peer: 54.239.29.65:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-type: text/xml + date: 'Fri, 10 Jan 2020 19:58:38 GMT' + x-amzn-requestid: a8ea8be8-7ef7-4b7a-b009-49e44ccff835 +status: 204 diff --git a/t/10_responses/cloudfront-tagresource.1.response.test.yml b/t/10_responses/cloudfront-tagresource.1.response.test.yml new file mode 100644 index 0000000000..ae47e60532 --- /dev/null +++ b/t/10_responses/cloudfront-tagresource.1.response.test.yml @@ -0,0 +1,7 @@ +--- +call: TagResource +service: CloudFront +tests: + - expected: a8ea8be8-7ef7-4b7a-b009-49e44ccff835 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-tagresource.response b/t/10_responses/cloudfront-tagresource.response new file mode 100644 index 0000000000..98afb16da7 --- /dev/null +++ b/t/10_responses/cloudfront-tagresource.response @@ -0,0 +1,15 @@ +--- +content: '' +headers: + client-date: 'Fri, 10 Jan 2020 19:57:37 GMT' + client-peer: 54.239.29.65:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-type: text/xml + date: 'Fri, 10 Jan 2020 19:57:36 GMT' + x-amzn-requestid: dbb36cb7-1e03-4869-b2c3-6ef058b27c5a +status: 204 diff --git a/t/10_responses/cloudfront-tagresource.response.test.yml b/t/10_responses/cloudfront-tagresource.response.test.yml new file mode 100644 index 0000000000..e5a1423121 --- /dev/null +++ b/t/10_responses/cloudfront-tagresource.response.test.yml @@ -0,0 +1,7 @@ +--- +call: TagResource +service: CloudFront +tests: + - expected: dbb36cb7-1e03-4869-b2c3-6ef058b27c5a + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-untagresource.1.response b/t/10_responses/cloudfront-untagresource.1.response new file mode 100644 index 0000000000..dae5128390 --- /dev/null +++ b/t/10_responses/cloudfront-untagresource.1.response @@ -0,0 +1,15 @@ +--- +content: '' +headers: + client-date: 'Fri, 10 Jan 2020 20:04:39 GMT' + client-peer: 54.239.29.65:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-type: text/xml + date: 'Fri, 10 Jan 2020 20:04:38 GMT' + x-amzn-requestid: f1d506a3-1865-4ba1-896a-8e806b0acb6e +status: 204 diff --git a/t/10_responses/cloudfront-untagresource.1.response.test.yml b/t/10_responses/cloudfront-untagresource.1.response.test.yml new file mode 100644 index 0000000000..587b7c4b60 --- /dev/null +++ b/t/10_responses/cloudfront-untagresource.1.response.test.yml @@ -0,0 +1,7 @@ +--- +call: UntagResource +service: CloudFront +tests: + - expected: f1d506a3-1865-4ba1-896a-8e806b0acb6e + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-untagresource.response b/t/10_responses/cloudfront-untagresource.response new file mode 100644 index 0000000000..524f0308dc --- /dev/null +++ b/t/10_responses/cloudfront-untagresource.response @@ -0,0 +1,15 @@ +--- +content: '' +headers: + client-date: 'Fri, 10 Jan 2020 20:03:38 GMT' + client-peer: 54.239.29.26:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-type: text/xml + date: 'Fri, 10 Jan 2020 20:03:38 GMT' + x-amzn-requestid: 052c0c6b-7bb0-4b50-9558-b41d7aed5371 +status: 204 diff --git a/t/10_responses/cloudfront-untagresource.response.test.yml b/t/10_responses/cloudfront-untagresource.response.test.yml new file mode 100644 index 0000000000..4b4c84f9a8 --- /dev/null +++ b/t/10_responses/cloudfront-untagresource.response.test.yml @@ -0,0 +1,7 @@ +--- +call: UntagResource +service: CloudFront +tests: + - expected: 052c0c6b-7bb0-4b50-9558-b41d7aed5371 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-updatecloudfrontoriginaccessidentity.response b/t/10_responses/cloudfront-updatecloudfrontoriginaccessidentity.response new file mode 100644 index 0000000000..1b05b3117e --- /dev/null +++ b/t/10_responses/cloudfront-updatecloudfrontoriginaccessidentity.response @@ -0,0 +1,19 @@ +--- +content: |- + + E3D5Y5RWA05QO184f47125a87a26ea5ba42f3be65fbefebdb7440d82e7d27907c52c969ac4f6c05ef03046db8cd6f74dab632e70ffcd71some test hereMr Pooppy buthole did this +headers: + client-date: 'Wed, 08 Jan 2020 21:02:43 GMT' + client-peer: 54.239.29.26:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 472 + content-type: text/xml + date: 'Wed, 08 Jan 2020 21:02:43 GMT' + etag: E3QNA45YLLRKK2 + x-amzn-requestid: 638657c1-d71c-4435-b89c-81597d652e79 +status: 200 diff --git a/t/10_responses/cloudfront-updatecloudfrontoriginaccessidentity.response.test.yml b/t/10_responses/cloudfront-updatecloudfrontoriginaccessidentity.response.test.yml new file mode 100644 index 0000000000..cf68cbe2bc --- /dev/null +++ b/t/10_responses/cloudfront-updatecloudfrontoriginaccessidentity.response.test.yml @@ -0,0 +1,22 @@ +--- +call: UpdateCloudFrontOriginAccessIdentity +service: CloudFront +tests: + - expected: some test here + op: eq + path: CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig.CallerReference + - expected: Mr Pooppy buthole did this + op: eq + path: CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig.Comment + - expected: E3D5Y5RWA05QO1 + op: eq + path: CloudFrontOriginAccessIdentity.Id + - expected: 84f47125a87a26ea5ba42f3be65fbefebdb7440d82e7d27907c52c969ac4f6c05ef03046db8cd6f74dab632e70ffcd71 + op: eq + path: CloudFrontOriginAccessIdentity.S3CanonicalUserId + - expected: E3QNA45YLLRKK2 + op: eq + path: ETag + - expected: 638657c1-d71c-4435-b89c-81597d652e79 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-updatedistribution.response b/t/10_responses/cloudfront-updatedistribution.response new file mode 100644 index 0000000000..ddcbc1195d --- /dev/null +++ b/t/10_responses/cloudfront-updatedistribution.response @@ -0,0 +1,20 @@ +--- +content: |- + + EJ143D8LZET8Zarn:aws:cloudfront::985173205561:distribution/EJ143D8LZET8ZInProgress2020-01-10T22:38:05.381Z0d10e955chuoza2.cloudfront.netfalse0cli-example0index.html1pawsexamplebucket.s3.amazonaws.com-cli-examplepawsexamplebucket.s3.amazonaws.com00pawsexamplebucket.s3.amazonaws.com-cli-examplefalsenone00false0allow-all02HEADGET2HEADGETfalse8640031536000false000falsefalsePriceClass_AllfalsetrueTLSv1cloudfrontnone0http2true +headers: + client-date: 'Fri, 10 Jan 2020 22:38:05 GMT' + client-peer: 54.239.29.26:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 2765 + content-type: text/xml + date: 'Fri, 10 Jan 2020 22:38:04 GMT' + etag: E241H0GCT8QGML + vary: Accept-Encoding + x-amzn-requestid: d6da09f5-b67c-4a53-89e4-1011c26d0f2b +status: 200 diff --git a/t/10_responses/cloudfront-updatedistribution.response.test.yml b/t/10_responses/cloudfront-updatedistribution.response.test.yml new file mode 100644 index 0000000000..6173cb959c --- /dev/null +++ b/t/10_responses/cloudfront-updatedistribution.response.test.yml @@ -0,0 +1,184 @@ +--- +call: UpdateDistribution +service: CloudFront +tests: + - expected: arn:aws:cloudfront::985173205561:distribution/EJ143D8LZET8Z + op: eq + path: Distribution.ARN + - expected: 0 + op: eq + path: Distribution.ActiveTrustedSigners.Enabled + - expected: 0 + op: eq + path: Distribution.ActiveTrustedSigners.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Aliases.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.CacheBehaviors.Quantity + - expected: cli-example + op: eq + path: Distribution.DistributionConfig.CallerReference + - expected: '' + op: eq + path: Distribution.DistributionConfig.Comment + - expected: 0 + op: eq + path: Distribution.DistributionConfig.CustomErrorResponses.Quantity + - expected: HEAD + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.0 + - expected: GET + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Items.1 + - expected: 2 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.CachedMethods.Quantity + - expected: HEAD + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Items.0 + - expected: GET + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Items.1 + - expected: 2 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.AllowedMethods.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.Compress + - expected: 86400 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.DefaultTTL + - expected: none + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Cookies.Forward + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Cookies.WhitelistedNames.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.Headers.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.QueryString + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ForwardedValues.QueryStringCacheKeys.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.LambdaFunctionAssociations.Quantity + - expected: 31536000 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.MaxTTL + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.MinTTL + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.SmoothStreaming + - expected: pawsexamplebucket.s3.amazonaws.com-cli-example + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.TargetOriginId + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.TrustedSigners.Enabled + - expected: 0 + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.TrustedSigners.Quantity + - expected: allow-all + op: eq + path: Distribution.DistributionConfig.DefaultCacheBehavior.ViewerProtocolPolicy + - expected: index.html + op: eq + path: Distribution.DistributionConfig.DefaultRootObject + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Enabled + - expected: http2 + op: eq + path: Distribution.DistributionConfig.HttpVersion + - expected: 1 + op: eq + path: Distribution.DistributionConfig.IsIPV6Enabled + - expected: '' + op: eq + path: Distribution.DistributionConfig.Logging.Bucket + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Logging.Enabled + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Logging.IncludeCookies + - expected: '' + op: eq + path: Distribution.DistributionConfig.Logging.Prefix + - expected: 0 + op: eq + path: Distribution.DistributionConfig.OriginGroups.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomHeaders.Quantity + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomOriginConfig.HTTPPort + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomOriginConfig.HTTPSPort + - expected: '' + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomOriginConfig.OriginProtocolPolicy + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.CustomOriginConfig.OriginSslProtocols.Quantity + - expected: pawsexamplebucket.s3.amazonaws.com + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.DomainName + - expected: pawsexamplebucket.s3.amazonaws.com-cli-example + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.Id + - expected: '' + op: eq + path: Distribution.DistributionConfig.Origins.Items.0.S3OriginConfig.OriginAccessIdentity + - expected: 1 + op: eq + path: Distribution.DistributionConfig.Origins.Quantity + - expected: PriceClass_All + op: eq + path: Distribution.DistributionConfig.PriceClass + - expected: 0 + op: eq + path: Distribution.DistributionConfig.Restrictions.GeoRestriction.Quantity + - expected: none + op: eq + path: Distribution.DistributionConfig.Restrictions.GeoRestriction.RestrictionType + - expected: cloudfront + op: eq + path: Distribution.DistributionConfig.ViewerCertificate.CertificateSource + - expected: 1 + op: eq + path: Distribution.DistributionConfig.ViewerCertificate.CloudFrontDefaultCertificate + - expected: TLSv1 + op: eq + path: Distribution.DistributionConfig.ViewerCertificate.MinimumProtocolVersion + - expected: d10e955chuoza2.cloudfront.net + op: eq + path: Distribution.DomainName + - expected: EJ143D8LZET8Z + op: eq + path: Distribution.Id + - expected: 0 + op: eq + path: Distribution.InProgressInvalidationBatches + - expected: 2020-01-10T22:38:05.381Z + op: eq + path: Distribution.LastModifiedTime + - expected: InProgress + op: eq + path: Distribution.Status + - expected: E241H0GCT8QGML + op: eq + path: ETag + - expected: d6da09f5-b67c-4a53-89e4-1011c26d0f2b + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-updatefieldlevelencryptionconfig.response b/t/10_responses/cloudfront-updatefieldlevelencryptionconfig.response new file mode 100644 index 0000000000..ae37cb833d --- /dev/null +++ b/t/10_responses/cloudfront-updatefieldlevelencryptionconfig.response @@ -0,0 +1,19 @@ +--- +content: |- + + C26GE31LXDSQZI2020-01-09T21:45:37.119Z01-01-2020:00001Yeah Dad! You take away all the funfalse1gee_dadP14TNUMMKLEPXXfalse1URLEncodedP14TNUMMKLEPXXapplication/x-www-form-urlencoded +headers: + client-date: 'Thu, 09 Jan 2020 21:45:38 GMT' + client-peer: 54.239.29.65:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 1040 + content-type: text/xml + date: 'Thu, 09 Jan 2020 21:45:38 GMT' + etag: E2LIL66SYPFJM2 + x-amzn-requestid: 3b0f7704-399e-4eeb-80b7-449661cef71f +status: 200 diff --git a/t/10_responses/cloudfront-updatefieldlevelencryptionconfig.response.test.yml b/t/10_responses/cloudfront-updatefieldlevelencryptionconfig.response.test.yml new file mode 100644 index 0000000000..f95153603a --- /dev/null +++ b/t/10_responses/cloudfront-updatefieldlevelencryptionconfig.response.test.yml @@ -0,0 +1,49 @@ +--- +call: UpdateFieldLevelEncryptionConfig +service: CloudFront +tests: + - expected: E2LIL66SYPFJM2 + op: eq + path: ETag + - expected: 01-01-2020:00001 + op: eq + path: FieldLevelEncryption.FieldLevelEncryptionConfig.CallerReference + - expected: Yeah Dad! You take away all the fun + op: eq + path: FieldLevelEncryption.FieldLevelEncryptionConfig.Comment + - expected: application/x-www-form-urlencoded + op: eq + path: FieldLevelEncryption.FieldLevelEncryptionConfig.ContentTypeProfileConfig.ContentTypeProfiles.Items.0.ContentType + - expected: URLEncoded + op: eq + path: FieldLevelEncryption.FieldLevelEncryptionConfig.ContentTypeProfileConfig.ContentTypeProfiles.Items.0.Format + - expected: P14TNUMMKLEPXX + op: eq + path: FieldLevelEncryption.FieldLevelEncryptionConfig.ContentTypeProfileConfig.ContentTypeProfiles.Items.0.ProfileId + - expected: 1 + op: eq + path: FieldLevelEncryption.FieldLevelEncryptionConfig.ContentTypeProfileConfig.ContentTypeProfiles.Quantity + - expected: 0 + op: eq + path: FieldLevelEncryption.FieldLevelEncryptionConfig.ContentTypeProfileConfig.ForwardWhenContentTypeIsUnknown + - expected: 0 + op: eq + path: FieldLevelEncryption.FieldLevelEncryptionConfig.QueryArgProfileConfig.ForwardWhenQueryArgProfileIsUnknown + - expected: P14TNUMMKLEPXX + op: eq + path: FieldLevelEncryption.FieldLevelEncryptionConfig.QueryArgProfileConfig.QueryArgProfiles.Items.0.ProfileId + - expected: gee_dad + op: eq + path: FieldLevelEncryption.FieldLevelEncryptionConfig.QueryArgProfileConfig.QueryArgProfiles.Items.0.QueryArg + - expected: 1 + op: eq + path: FieldLevelEncryption.FieldLevelEncryptionConfig.QueryArgProfileConfig.QueryArgProfiles.Quantity + - expected: C26GE31LXDSQZI + op: eq + path: FieldLevelEncryption.Id + - expected: 2020-01-09T21:45:37.119Z + op: eq + path: FieldLevelEncryption.LastModifiedTime + - expected: 3b0f7704-399e-4eeb-80b7-449661cef71f + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-updatefieldlevelencryptionprofile.response b/t/10_responses/cloudfront-updatefieldlevelencryptionprofile.response new file mode 100644 index 0000000000..bb1ef4550d --- /dev/null +++ b/t/10_responses/cloudfront-updatefieldlevelencryptionprofile.response @@ -0,0 +1,19 @@ +--- +content: |- + + P11YIB8QUZ31DB2020-01-09T21:00:19.429ZPawsCloudConfigTwo2020-01-01-20:21Ha Rick. Mr. Poopy Buthole was here1K3ODSO6SYTI4ZGOpenSSL3Two*three*one* +headers: + client-date: 'Thu, 09 Jan 2020 21:00:20 GMT' + client-peer: 54.239.29.51:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 785 + content-type: text/xml + date: 'Thu, 09 Jan 2020 21:00:20 GMT' + etag: E3S6I9JUQ89OK9 + x-amzn-requestid: 16cb4188-2f39-44e9-960d-338edcca87a6 +status: 200 diff --git a/t/10_responses/cloudfront-updatefieldlevelencryptionprofile.response.test.yml b/t/10_responses/cloudfront-updatefieldlevelencryptionprofile.response.test.yml new file mode 100644 index 0000000000..6a139fad8b --- /dev/null +++ b/t/10_responses/cloudfront-updatefieldlevelencryptionprofile.response.test.yml @@ -0,0 +1,46 @@ +--- +call: UpdateFieldLevelEncryptionProfile +service: CloudFront +tests: + - expected: E3S6I9JUQ89OK9 + op: eq + path: ETag + - expected: 2020-01-01-20:21 + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.CallerReference + - expected: Ha Rick. Mr. Poopy Buthole was here + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.Comment + - expected: Two* + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.0.FieldPatterns.Items.0 + - expected: three* + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.0.FieldPatterns.Items.1 + - expected: one* + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.0.FieldPatterns.Items.2 + - expected: 3 + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.0.FieldPatterns.Quantity + - expected: OpenSSL + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.0.ProviderId + - expected: K3ODSO6SYTI4ZG + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.EncryptionEntities.Items.0.PublicKeyId + - expected: 1 + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.EncryptionEntities.Quantity + - expected: PawsCloudConfigTwo + op: eq + path: FieldLevelEncryptionProfile.FieldLevelEncryptionProfileConfig.Name + - expected: P11YIB8QUZ31DB + op: eq + path: FieldLevelEncryptionProfile.Id + - expected: 2020-01-09T21:00:19.429Z + op: eq + path: FieldLevelEncryptionProfile.LastModifiedTime + - expected: 16cb4188-2f39-44e9-960d-338edcca87a6 + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-updatepublickey.response b/t/10_responses/cloudfront-updatepublickey.response new file mode 100644 index 0000000000..d48e1084f0 --- /dev/null +++ b/t/10_responses/cloudfront-updatepublickey.response @@ -0,0 +1,28 @@ +--- +content: |- + + K18H03HBTFHOUA2020-01-08T22:05:14.150Z01-01-2020-000001TestKeyPaws-----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp5X8pCq9EllW/vd8dYc2 + oCl58nAuSoYTfEdzR/XQGLKugBqwSSHtfyG10bAsNjS6UnqfK3vG7QSo9zgiCvCn + KUF4J9mCEzUMCkiKcqZn169YheeMKCF04Q2xmdIMlw1FA/VGZ3HhC49hsIzAKlqC + q/3n3nEdb4Gf4J3KvY+KW+YcZJZQQG4QzqeUG/01MHs47RzhA9xFRJDvSXf4EGTT + eg6IAbeOlGDxiQ0d25PqZ9y+LVpa6pVy86qHnvkzbMHE2yGCiQKIuC60D4AJS/dx + 2TLLOAI8w0zm3aSvd1ktNZZMgNlnUkJFEMMlq3H7edzkb2NDNvGQ07cwJRU9h4Wt + bwIDAQAB + -----END PUBLIC KEY----- + New comment by Mr. Poopy Buthole +headers: + client-date: 'Wed, 08 Jan 2020 22:24:38 GMT' + client-peer: 54.239.29.51:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 813 + content-type: text/xml + date: 'Wed, 08 Jan 2020 22:24:38 GMT' + etag: E13ZDWLZM6ZVUX + x-amzn-requestid: b758d32b-aa00-4d85-8977-a4c87823047d +status: 200 diff --git a/t/10_responses/cloudfront-updatepublickey.response.test.yml b/t/10_responses/cloudfront-updatepublickey.response.test.yml new file mode 100644 index 0000000000..9d14fcf67c --- /dev/null +++ b/t/10_responses/cloudfront-updatepublickey.response.test.yml @@ -0,0 +1,37 @@ +--- +call: UpdatePublicKey +service: CloudFront +tests: + - expected: E13ZDWLZM6ZVUX + op: eq + path: ETag + - expected: 2020-01-08T22:05:14.150Z + op: eq + path: PublicKey.CreatedTime + - expected: K18H03HBTFHOUA + op: eq + path: PublicKey.Id + - expected: 01-01-2020-000001 + op: eq + path: PublicKey.PublicKeyConfig.CallerReference + - expected: New comment by Mr. Poopy Buthole + op: eq + path: PublicKey.PublicKeyConfig.Comment + - expected: | + -----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp5X8pCq9EllW/vd8dYc2 + oCl58nAuSoYTfEdzR/XQGLKugBqwSSHtfyG10bAsNjS6UnqfK3vG7QSo9zgiCvCn + KUF4J9mCEzUMCkiKcqZn169YheeMKCF04Q2xmdIMlw1FA/VGZ3HhC49hsIzAKlqC + q/3n3nEdb4Gf4J3KvY+KW+YcZJZQQG4QzqeUG/01MHs47RzhA9xFRJDvSXf4EGTT + eg6IAbeOlGDxiQ0d25PqZ9y+LVpa6pVy86qHnvkzbMHE2yGCiQKIuC60D4AJS/dx + 2TLLOAI8w0zm3aSvd1ktNZZMgNlnUkJFEMMlq3H7edzkb2NDNvGQ07cwJRU9h4Wt + bwIDAQAB + -----END PUBLIC KEY----- + op: eq + path: PublicKey.PublicKeyConfig.EncodedKey + - expected: TestKeyPaws + op: eq + path: PublicKey.PublicKeyConfig.Name + - expected: b758d32b-aa00-4d85-8977-a4c87823047d + op: eq + path: _request_id diff --git a/t/10_responses/cloudfront-updatestreamingdistribution.response b/t/10_responses/cloudfront-updatestreamingdistribution.response new file mode 100644 index 0000000000..c0382124fd --- /dev/null +++ b/t/10_responses/cloudfront-updatestreamingdistribution.response @@ -0,0 +1,19 @@ +--- +content: |- + + E17937UBVFIW2Larn:aws:cloudfront::985173205561:streaming-distribution/E17937UBVFIW2LInProgress2020-01-11T18:59:38.176Zs3pn52kbh66jq2.cloudfront.netfalse02020:010101oneoffpaws.s3.amazonaws.comorigin-access-identity/cloudfront/E3D5Y5RWA05QO10No Dad this is not rightfalsefalse0PriceClass_100false +headers: + client-date: 'Sat, 11 Jan 2020 18:59:38 GMT' + client-peer: 54.239.29.65:443 + client-response-num: 1 + client-ssl-cert-issuer: /C=US/O=Amazon/OU=Server CA 1B/CN=Amazon + client-ssl-cert-subject: /CN=cloudfront.amazonaws.com + client-ssl-cipher: ECDHE-RSA-AES128-SHA + client-ssl-socket-class: IO::Socket::SSL + connection: close + content-length: 1036 + content-type: text/xml + date: 'Sat, 11 Jan 2020 18:59:37 GMT' + etag: E214AT75ML9M59 + x-amzn-requestid: f9f1b27f-e2b5-4ee8-a031-11333e9aa926 +status: 200 diff --git a/t/10_responses/cloudfront-updatestreamingdistribution.response.test.yml b/t/10_responses/cloudfront-updatestreamingdistribution.response.test.yml new file mode 100644 index 0000000000..a6b1584cab --- /dev/null +++ b/t/10_responses/cloudfront-updatestreamingdistribution.response.test.yml @@ -0,0 +1,67 @@ +--- +call: UpdateStreamingDistribution +service: CloudFront +tests: + - expected: E214AT75ML9M59 + op: eq + path: ETag + - expected: arn:aws:cloudfront::985173205561:streaming-distribution/E17937UBVFIW2L + op: eq + path: StreamingDistribution.ARN + - expected: 0 + op: eq + path: StreamingDistribution.ActiveTrustedSigners.Enabled + - expected: 0 + op: eq + path: StreamingDistribution.ActiveTrustedSigners.Quantity + - expected: s3pn52kbh66jq2.cloudfront.net + op: eq + path: StreamingDistribution.DomainName + - expected: E17937UBVFIW2L + op: eq + path: StreamingDistribution.Id + - expected: 2020-01-11T18:59:38.176Z + op: eq + path: StreamingDistribution.LastModifiedTime + - expected: InProgress + op: eq + path: StreamingDistribution.Status + - expected: 0 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Aliases.Quantity + - expected: 2020:010101 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.CallerReference + - expected: No Dad this is not right + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Comment + - expected: 0 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Enabled + - expected: '' + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Logging.Bucket + - expected: 0 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Logging.Enabled + - expected: '' + op: eq + path: StreamingDistribution.StreamingDistributionConfig.Logging.Prefix + - expected: PriceClass_100 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.PriceClass + - expected: oneoffpaws.s3.amazonaws.com + op: eq + path: StreamingDistribution.StreamingDistributionConfig.S3Origin.DomainName + - expected: origin-access-identity/cloudfront/E3D5Y5RWA05QO1 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.S3Origin.OriginAccessIdentity + - expected: 0 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.TrustedSigners.Enabled + - expected: 0 + op: eq + path: StreamingDistribution.StreamingDistributionConfig.TrustedSigners.Quantity + - expected: f9f1b27f-e2b5-4ee8-a031-11333e9aa926 + op: eq + path: _request_id diff --git a/t/10_responses/pinpoint-createapp.response b/t/10_responses/pinpoint-createapp.response new file mode 100644 index 0000000000..6025e9c1d7 --- /dev/null +++ b/t/10_responses/pinpoint-createapp.response @@ -0,0 +1,14 @@ +--- +content: '{"Name" : "perl_PAWS_test", "Id" : "fd89d30f64104bfcb4809eacbcc261af", "Arn" : "arn:aws:mobiletargeting:us-east-1:985173205561:apps/fd89d30f64104bfcb4809eacbcc261af", "tags" : {"key1":"value1","key2":"value2" }}' +headers: + x-cache: Miss from cloudfront + via: 1.1 bb8a4e32b7413c1fbb32dbaa86a9a575.cloudfront.net (CloudFront) + date: Thu, 11 Jul 2019 12:32:00 GMT + x-amz-cf-pop: ORD52-C2 + access-control-allow-origin: '*' + x-amz-cf-id: '6AM7HW38WqSMwSAJ39leNMJqEyr3SIv5AlQxwTWxJ0LCD_52I6Wlyg==' + x-amz-apigw-id: cqPaEGtGoAMFkrg= + connection: keep-alive + x-amzn-requestid: e148792f-a3d7-11e9-8bbe-b73b6337531c + x-amzn-trace-id: Root=1-5d272c40-aae7452008720820a796a7a0 +status: 200 diff --git a/t/10_responses/pinpoint-createapp.response.test.yml b/t/10_responses/pinpoint-createapp.response.test.yml new file mode 100644 index 0000000000..6366a0912b --- /dev/null +++ b/t/10_responses/pinpoint-createapp.response.test.yml @@ -0,0 +1,22 @@ +--- +call: CreateApp +service: Pinpoint +tests: + - expected: perl_PAWS_test + op: eq + path: Name + - expected: fd89d30f64104bfcb4809eacbcc261af + op: eq + path: Id + - expected: arn:aws:mobiletargeting:us-east-1:985173205561:apps/fd89d30f64104bfcb4809eacbcc261af + op: eq + path: Arn + - expected: value1 + op: eq + path: Tags.Map.key1 + - expected: value2 + op: eq + path: Tags.Map.key2 + - expected: e148792f-a3d7-11e9-8bbe-b73b6337531c + op: eq + path: _request_id diff --git a/t/10_responses/pinpoint-createcampaign.response b/t/10_responses/pinpoint-createcampaign.response new file mode 100644 index 0000000000..dcb3f5f782 --- /dev/null +++ b/t/10_responses/pinpoint-createcampaign.response @@ -0,0 +1,16 @@ +--- +content: '{ "MessageConfiguration" : { "EmailMessage" : { "Title" : "Test email", "Body" : "test email", "HtmlBody" : "Test email", "FromAddress" : "test@test.com" }, "SMSMessage" : { "Body" : "nothing", "MessageType" : "TRANSACTIONAL", "SenderId" : "nobody" } }, "Schedule" : { "StartTime" : "2019-09-16T15:53:00", "Frequency" : "ONCE" }, "Id" : "f484f921960b4e11a417c926f3146229", "ApplicationId" : "fd89d30f64104bfcb4809eacbcc261af", "CreationDate" : "2019-07-11T12:32:01.431Z", "LastModifiedDate" : "2019-07-11T12:32:01.431Z", "SegmentId" : "a229e2976552419fa7a61a3fea89069e", "SegmentVersion" : 1, "Name" : "test101", "Description" : "test campaign", "State" : { "CampaignStatus" : "SCHEDULED" }, "Version" : 1, "IsPaused" : false, "Arn" : "arn:aws:mobiletargeting:us-east-1:985173205561:apps/fd89d30f64104bfcb4809eacbcc261af/campaigns/f484f921960b4e11a417c926f3146229", "tags" : {"key1":"value1","key2":"value2"},"AdditionalTreatments": [{"TreatmentName": "Test2","TreatmentDescription": "test Treatment","MessageConfiguration": { "DefaultMessage": {"Title": "Default msg","Body": "Default msg body","ImageUrl": "an url","ImageIconUrl": "and url1","ImageSmallIconUrl": "and icong","MediaUrl": "medial url","Action": "DEEP_LINK","Url": "the URL","SilentPush": 1,"JsonBody": "{Json:here}","RawContent": "This hurts","TimeToLive": 101 }, "APNSMessage": {"Title": "APNS Msg","Body": "APNS Body","ImageUrl": "Image URL","ImageIconUrl": "Icon URL","ImageSmallIconUrl": "Small Icon","MediaUrl": "Midia URL","Action": "DEEP_LINK","Url": "An URL","SilentPush": 0,"JsonBody": "{}","RawContent": "I am Raw","TimeToLive": 12 }, "GCMMessage": {"Title": "GCM Msg","Body": "GCM body","ImageUrl": "image URL","ImageIconUrl": "Icon","ImageSmallIconUrl": "small icon","MediaUrl": "URL media","Action": "URL","Url": "YAURL","SilentPush": 1,"JsonBody": "{}","RawContent": "This is me","TimeToLive": 100 }, "ADMMessage": {"Title": "ADM msg","Body": "ADM Body","ImageUrl": "ADM image","ImageIconUrl": "ADM Icon","ImageSmallIconUrl": "ADM small","MediaUrl": "ADM URL","Action": "OPEN_APP","Url": "URL ADM","SilentPush": 1,"JsonBody": "{}","RawContent": "Still nothing","TimeToLive": 1 }, "BaiduMessage":{"Title": "Baidu msg","Body": "Baidu body","ImageUrl": "Baidu Image","ImageIconUrl": "Baidu Icon","ImageSmallIconUrl": "Baidu icon","MediaUrl": "Baidu medis","Action":"URL","Url": "Baidu URL2","SilentPush": 0,"JsonBody": "{}","RawContent": "not content","TimeToLive": 122 }, "EmailMessage": {"Title": "string","Body": "string","HtmlBody": "string","FromAddress": "string" }, "SMSMessage": {"Body": "string","MessageType": "TRANSACTIONAL","SenderId": "string" }},"Schedule": { "StartTime": "string", "EndTime": "string", "Frequency": "DAILY", "IsLocalTime": 1, "Timezone": "string", "QuietTime": {"Start": "string","End": "string" }, "EventFilter": {"Dimensions": {"EventType": { "DimensionType": "INCLUSIVE", "Values": ["string" ]},"Attributes" : {"interests" : {"AttributeType": "INCLUSIVE","Values" : [ "technology", "music", "travel" ]}},"Metrics": {"interests":{"ComparisonOperator": "GREATER_THAN_OR_EQUAL","Value":"102" }}},"FilterType": "ENDPOINT" }},"SizePercent": 23,"Id": "This is an Id"}]}' +headers: + 'connection': 'keep-alive' + 'x-amz-apigw-id': 'cqPaNFXSIAMFQDw=' + 'date': 'Thu, 11 Jul 2019 12:32:01 GMT' + 'access-control-allow-origin': '*' + 'x-amz-cf-pop': 'ORD52-C2' + 'x-amz-cf-id': 'jeIFkdrvurGiydt2JqLPQkB3SHo7khY6BTykwolFTXia-UdKnkFNVQ==' + 'x-cache': 'Miss from cloudfront' + 'via': '1.1 bb8a4e32b7413c1fbb32dbaa86a9a575.cloudfront.net (CloudFront)' + 'content-type': 'application/json' + 'content-length': '992' + 'x-amzn-requestid': 'e1d9204c-a3d7-11e9-b6e6-adebd12f9d37' + 'x-amzn-trace-id': 'Root=1-5d272c41-66a4eb6fc356516d85e51fb0' +status: 201 diff --git a/t/10_responses/pinpoint-createcampaign.response.test.yml b/t/10_responses/pinpoint-createcampaign.response.test.yml new file mode 100644 index 0000000000..9e1b552df9 --- /dev/null +++ b/t/10_responses/pinpoint-createcampaign.response.test.yml @@ -0,0 +1,319 @@ +--- +call: CreateCampaign +service: Pinpoint +tests: + - expected: test campaign + op: eq + path: Description + - expected: a229e2976552419fa7a61a3fea89069e + op: eq + path: SegmentId + - expected: 1 + op: eq + path: SegmentVersion + - expected: e1d9204c-a3d7-11e9-b6e6-adebd12f9d37 + op: eq + path: _request_id + - expected: 2019-07-11T12:32:01.431Z + op: eq + path: CreationDate + - expected: fd89d30f64104bfcb4809eacbcc261af + op: eq + path: ApplicationId + - expected: f484f921960b4e11a417c926f3146229 + op: eq + path: Id + - expected: value1 + op: eq + path: Tags.Map.key1 + - expected: value2 + op: eq + path: Tags.Map.key2 + - expected: 1 + op: eq + path: Version + - expected: 2019-07-11T12:32:01.431Z + op: eq + path: LastModifiedDate + - expected: SCHEDULED + op: eq + path: State.CampaignStatus + - expected: test@test.com + op: eq + path: MessageConfiguration.EmailMessage.FromAddress + - expected: test email + op: eq + path: MessageConfiguration.EmailMessage.Body + - expected: Test email + op: eq + path: MessageConfiguration.EmailMessage.HtmlBody + - expected: Test email + op: eq + path: MessageConfiguration.EmailMessage.Title + - expected: TRANSACTIONAL + op: eq + path: MessageConfiguration.SMSMessage.MessageType + - expected: nobody + op: eq + path: MessageConfiguration.SMSMessage.SenderId + - expected: nothing + op: eq + path: MessageConfiguration.SMSMessage.Body + - expected: test101 + op: eq + path: Name + - expected: 0 + op: == + path: IsPaused + - expected: arn:aws:mobiletargeting:us-east-1:985173205561:apps/fd89d30f64104bfcb4809eacbcc261af/campaigns/f484f921960b4e11a417c926f3146229 + op: eq + path: Arn + - expected: 2019-09-16T15:53:00 + op: eq + path: Schedule.StartTime + - expected: ONCE + op: eq + path: Schedule.Frequency + - expected: Test2 + op: eq + path: AdditionalTreatments.0.TreatmentName + - expected: test Treatment + op: eq + path: AdditionalTreatments.0.TreatmentDescription + - expected: This is an Id + op: eq + path: AdditionalTreatments.0.Id + - expected: 1 + op: == + path: AdditionalTreatments.0.Schedule.IsLocalTime + - expected: DAILY + op: eq + path: AdditionalTreatments.0.Schedule.Frequency + - expected: string + op: eq + path: AdditionalTreatments.0.Schedule.EventFilter.Dimensions.EventType.Values.0 + - expected: INCLUSIVE + op: eq + path: AdditionalTreatments.0.Schedule.EventFilter.Dimensions.EventType.DimensionType + - expected: technology + op: eq + path: AdditionalTreatments.0.Schedule.EventFilter.Dimensions.Attributes.Map.interests.Values.0 + - expected: music + op: eq + path: AdditionalTreatments.0.Schedule.EventFilter.Dimensions.Attributes.Map.interests.Values.1 + - expected: travel + op: eq + path: AdditionalTreatments.0.Schedule.EventFilter.Dimensions.Attributes.Map.interests.Values.2 + - expected: INCLUSIVE + op: eq + path: AdditionalTreatments.0.Schedule.EventFilter.Dimensions.Attributes.Map.interests.AttributeType + - expected: 102 + op: eq + path: AdditionalTreatments.0.Schedule.EventFilter.Dimensions.Metrics.Map.interests.Value + - expected: GREATER_THAN_OR_EQUAL + op: eq + path: AdditionalTreatments.0.Schedule.EventFilter.Dimensions.Metrics.Map.interests.ComparisonOperator + - expected: string + op: eq + path: AdditionalTreatments.0.MessageConfiguration.EmailMessage.Title + - expected: string + op: eq + path: AdditionalTreatments.0.MessageConfiguration.EmailMessage.Body + - expected: string + op: eq + path: AdditionalTreatments.0.MessageConfiguration.EmailMessage.FromAddress + - expected: string + op: eq + path: AdditionalTreatments.0.MessageConfiguration.EmailMessage.HtmlBody + - expected: string + op: eq + path: AdditionalTreatments.0.MessageConfiguration.SMSMessage.Body + - expected: TRANSACTIONAL + op: eq + path: AdditionalTreatments.0.MessageConfiguration.SMSMessage.MessageType + - expected: string + op: eq + path: AdditionalTreatments.0.MessageConfiguration.SMSMessage.SenderId + - expected: 100 + op: == + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.TimeToLive + - expected: URL media + op: eq + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.MediaUrl + - expected: '{}' + op: eq + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.JsonBody + - expected: small icon + op: eq + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.ImageSmallIconUrl + - expected: image URL + op: eq + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.ImageUrl + - expected: 1 + op: == + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.SilentPush + - expected: URL + op: eq + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.Action + - expected: GCM body + op: eq + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.Body + - expected: GCM Msg + op: eq + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.Title + - expected: This is me + op: eq + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.RawContent + - expected: Icon + op: eq + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.ImageIconUrl + - expected: YAURL + op: eq + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.Url + - expected: 12 + op: == + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.TimeToLive + - expected: Midia URL + op: eq + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.MediaUrl + - expected: '{}' + op: eq + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.JsonBody + - expected: Small Icon + op: eq + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.ImageSmallIconUrl + - expected: Image URL + op: eq + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.ImageUrl + - expected: 0 + op: == + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.SilentPush + - expected: DEEP_LINK + op: eq + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.Action + - expected: APNS Body + op: eq + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.Body + - expected: APNS Msg + op: eq + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.Title + - expected: I am Raw + op: eq + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.RawContent + - expected: Icon URL + op: eq + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.ImageIconUrl + - expected: An URL + op: eq + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.Url + - expected: 1 + op: == + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.TimeToLive + - expected: ADM URL + op: eq + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.MediaUrl + - expected: '{}' + op: eq + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.JsonBody + - expected: ADM small + op: eq + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.ImageSmallIconUrl + - expected: ADM image + op: eq + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.ImageUrl + - expected: 1 + op: == + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.SilentPush + - expected: OPEN_APP + op: eq + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.Action + - expected: ADM Body + op: eq + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.Body + - expected: ADM msg + op: eq + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.Title + - expected: Still nothing + op: eq + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.RawContent + - expected: ADM Icon + op: eq + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.ImageIconUrl + - expected: URL ADM + op: eq + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.Url + - expected: 122 + op: == + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.TimeToLive + - expected: Baidu medis + op: eq + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.MediaUrl + - expected: '{}' + op: eq + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.JsonBody + - expected: Baidu icon + op: eq + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.ImageSmallIconUrl + - expected: Baidu Image + op: eq + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.ImageUrl + - expected: 0 + op: == + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.SilentPush + - expected: URL + op: eq + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.Action + - expected: Baidu body + op: eq + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.Body + - expected: Baidu msg + op: eq + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.Title + - expected: not content + op: eq + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.RawContent + - expected: Baidu Icon + op: eq + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.ImageIconUrl + - expected: Baidu URL2 + op: eq + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.Url + - expected: 101 + op: == + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.TimeToLive + - expected: medial url + op: eq + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.MediaUrl + - expected: '{Json:here}' + op: eq + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.JsonBody + - expected: and icong + op: eq + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.ImageSmallIconUrl + - expected: an url + op: eq + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.ImageUrl + - expected: 1 + op: == + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.SilentPush + - expected: DEEP_LINK + op: eq + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.Action + - expected: Default msg body + op: eq + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.Body + - expected: Default msg + op: eq + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.Title + - expected: This hurts + op: eq + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.RawContent + - expected: and url1 + op: eq + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.ImageIconUrl + - expected: the URL + op: eq + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.Url + - expected: 23 + op: == + path: AdditionalTreatments.0.SizePercent diff --git a/t/10_responses/pinpoint-createendpoint.response b/t/10_responses/pinpoint-createendpoint.response new file mode 100644 index 0000000000..146c5baf2b --- /dev/null +++ b/t/10_responses/pinpoint-createendpoint.response @@ -0,0 +1,16 @@ +--- +content: '{"RequestID":"e1900965-a3d7-11e9-b96c-755d5f59bd77","Message":"Accepted","_request_id":"e1900965-a3d7-11e9-b96c-755d5f59bd77"}' +headers: + 'connection': 'keep-alive' + 'x-amz-apigw-id': 'cqPaJFb6IAMFg6A=' + 'date': 'Thu, 11 Jul 2019 12:32:00 GMT' + 'x-amz-cf-id': 'Xr8MU0oR7-7RfUd9u2ib3euSF7gSNG6-Fe_XJCWYLNM0cO-kJVS2xA==' + 'x-amz-cf-pop': 'ORD52-C2' + 'access-control-allow-origin': '*' + 'via': '1.1 bb8a4e32b7413c1fbb32dbaa86a9a575.cloudfront.net (CloudFront)' + 'x-cache': 'Miss from cloudfront' + 'content-type': 'application/json' + 'content-length': '73' + 'x-amzn-requestid': 'e1900965-a3d7-11e9-b96c-755d5f59bd77' + 'x-amzn-trace-id': 'Root=1-5d272c40-436c0b4278b9a0182edb1a0a' +status: 202 diff --git a/t/10_responses/pinpoint-createendpoint.response.test.yml b/t/10_responses/pinpoint-createendpoint.response.test.yml new file mode 100644 index 0000000000..7794e2b112 --- /dev/null +++ b/t/10_responses/pinpoint-createendpoint.response.test.yml @@ -0,0 +1,13 @@ +--- +call: UpdateEndpoint +service: Pinpoint +tests: + - expected: e1900965-a3d7-11e9-b96c-755d5f59bd77 + op: eq + path: RequestID + - expected: e1900965-a3d7-11e9-b96c-755d5f59bd77 + op: eq + path: _request_id + - expected: Accepted + op: eq + path: Message diff --git a/t/10_responses/pinpoint-createsegment.response b/t/10_responses/pinpoint-createsegment.response new file mode 100644 index 0000000000..7ace9e4822 --- /dev/null +++ b/t/10_responses/pinpoint-createsegment.response @@ -0,0 +1,16 @@ +--- +content: '{"Name" : "Test segment","Dimensions" : {"Demographic" : {"Platform" : {"DimensionType" : "INCLUSIVE","Values" : [ "ios" ]},"AppVersion" : {"DimensionType" : "INCLUSIVE","Values" : [ "1.0" ]},"Make" : {"DimensionType" : "INCLUSIVE","Values" : [ "apple" ] },"Model" : {"DimensionType" : "INCLUSIVE","Values" : [ "iPhone" ]}},"Location" : {"Country" : {"DimensionType" : "INCLUSIVE","Values" : [ "US" ]}},"Behavior" : {"Recency":{"Duration":"123","RecencyType":"ACTIVE"} },"Attributes" : {"interests" : {"AttributeType" : "INCLUSIVE","Values" : [ "technology", "music", "travel" ]}},"Metrics" : {"interests":{"ComparisonOperator": "GREATER_THAN_OR_EQUAL","Value":"102"}},"UserAttributes" : {"interests" : {"AttributeType" : "INCLUSIVE","Values" : [ "technology", "music", "travel" ]} }},"Id" : "a229e2976552419fa7a61a3fea89069e","ApplicationId" : "fd89d30f64104bfcb4809eacbcc261af","CreationDate" : "2019-07-11T12:32:01.063Z","LastModifiedDate" : "2019-07-11T12:32:01.063Z","Version" : 1,"SegmentType" : "DIMENSIONAL","Arn" : "arn:aws:mobiletargeting:us-east-1:985173205561:apps/fd89d30f64104bfcb4809eacbcc261af/segments/a229e2976552419fa7a61a3fea89069e","tags" : {"key1":"value1","key2":"value2"}}' +headers: + 'x-amz-apigw-id': 'cqPaKFJ-IAMFbXQ=' + 'connection': 'keep-alive' + 'via': '1.1 bb8a4e32b7413c1fbb32dbaa86a9a575.cloudfront.net (CloudFront)' + 'x-cache': 'Miss from cloudfront' + 'x-amz-cf-id': '20Rb6bSRsR2NpnEcv--MUUoJvJTKrO7M4HKYqsuFl2304InIZAXuEg==' + 'access-control-allow-origin': '*' + 'x-amz-cf-pop': 'ORD52-C2' + 'date': 'Thu, 11 Jul 2019 12:32:01 GMT' + 'content-type': 'application/json' + 'x-amzn-trace-id': 'Root=1-5d272c41-1b3a46fc43a71760727c93e4' + 'x-amzn-requestid': 'e1a7fe92-a3d7-11e9-b38f-19e7483bc844' + 'content-length': '1221' +status: 201 diff --git a/t/10_responses/pinpoint-createsegment.response.test.yml b/t/10_responses/pinpoint-createsegment.response.test.yml new file mode 100644 index 0000000000..55ec6429a4 --- /dev/null +++ b/t/10_responses/pinpoint-createsegment.response.test.yml @@ -0,0 +1,104 @@ +--- +call: CreateSegment +service: Pinpoint +tests: + - expected: arn:aws:mobiletargeting:us-east-1:985173205561:apps/fd89d30f64104bfcb4809eacbcc261af/segments/a229e2976552419fa7a61a3fea89069e + op: eq + path: Arn + - expected: fd89d30f64104bfcb4809eacbcc261af + op: eq + path: ApplicationId + - expected: 1 + op: eq + path: Version + - expected: e1a7fe92-a3d7-11e9-b38f-19e7483bc844 + op: eq + path: _request_id + - expected: 2019-07-11T12:32:01.063Z + op: eq + path: CreationDate + - expected: a229e2976552419fa7a61a3fea89069e + op: eq + path: Id + - expected: value1 + op: eq + path: Tags.Map.key1 + - expected: value2 + op: eq + path: Tags.Map.key2 + - expected: Test segment + op: eq + path: Name + - expected: INCLUSIVE + op: eq + path: Dimensions.Demographic.Platform.DimensionType + - expected: ios + op: eq + path: Dimensions.Demographic.Platform.Values.0 + - expected: INCLUSIVE + op: eq + path: Dimensions.Demographic.AppVersion.DimensionType + - expected: 1.0 + op: eq + path: Dimensions.Demographic.AppVersion.Values.0 + - expected: INCLUSIVE + op: eq + path: Dimensions.Demographic.Make.DimensionType + - expected: apple + op: eq + path: Dimensions.Demographic.Make.Values.0 + - expected: INCLUSIVE + op: eq + path: Dimensions.Demographic.Model.DimensionType + - expected: iPhone + op: eq + path: Dimensions.Demographic.Model.Values.0 + - expected: INCLUSIVE + op: eq + path: Dimensions.Location.Country.DimensionType + - expected: US + op: eq + path: Dimensions.Location.Country.Values.0 + - expected: 123 + op: eq + path: Dimensions.Behavior.Recency.Duration + - expected: ACTIVE + op: eq + path: Dimensions.Behavior.Recency.RecencyType + - expected: INCLUSIVE + op: eq + path: Dimensions.Attributes.Map.interests.AttributeType + - expected: technology + op: eq + path: Dimensions.Attributes.Map.interests.Values.0 + - expected: music + op: eq + path: Dimensions.Attributes.Map.interests.Values.1 + - expected: travel + op: eq + path: Dimensions.Attributes.Map.interests.Values.2 + - expected: GREATER_THAN_OR_EQUAL + op: eq + path: Dimensions.Metrics.Map.interests.ComparisonOperator + - expected: 102 + op: == + path: Dimensions.Metrics.Map.interests.Value + - expected: INCLUSIVE + op: eq + path: Dimensions.UserAttributes.Map.interests.AttributeType + - expected: technology + op: eq + path: Dimensions.UserAttributes.Map.interests.Values.0 + - expected: music + op: eq + path: Dimensions.UserAttributes.Map.interests.Values.1 + - expected: travel + op: eq + path: Dimensions.UserAttributes.Map.interests.Values.2 + - expected: GREATER_THAN_OR_EQUAL + op: eq + path: Dimensions.Metrics.Map.interests.ComparisonOperator + - expected: 102 + op: == + path: Dimensions.Metrics.Map.interests.Value + diff --git a/t/10_responses/pinpoint-deleteapp.response b/t/10_responses/pinpoint-deleteapp.response new file mode 100644 index 0000000000..cea29204ac --- /dev/null +++ b/t/10_responses/pinpoint-deleteapp.response @@ -0,0 +1,16 @@ +--- +content: '{"Name" : "perl_PAWS_test","Id" : "d055d2968e934363b683d02366875914","Arn" : "arn:aws:mobiletargeting:us-east-1:985173205561:apps/d055d2968e934363b683d02366875914","tags" : {"key1":"value1","key2":"value2" }}' +headers: + 'date': 'Fri, 12 Jul 2019 12:42:32 GMT' + 'x-amz-cf-pop': 'ORD51' + 'x-cache': 'Miss from cloudfront' + 'x-amzn-requestid': '84907e5a-a4a2-11e9-a928-b5c40777813f' + 'access-control-allow-origin': '*' + 'content-length': '190' + 'via': '1.1 a9663235241a881e6187d8d87d15b277.cloudfront.net (CloudFront)' + 'connection': 'keep-alive' + 'x-amzn-trace-id': 'Root=1-5d288038-3900ba4a842792937dee8095' + 'content-type': 'application/json' + 'x-amz-apigw-id': 'ctj43GxtIAMFnqA=' + 'x-amz-cf-id': 'QIjX4uGAFwc_1OAyALynRAQmn8sZq-kxR--G6Y7eP3SII9LKFw9MGA==' +status: 200 diff --git a/t/10_responses/pinpoint-deleteapp.response.test.yml b/t/10_responses/pinpoint-deleteapp.response.test.yml new file mode 100644 index 0000000000..61b529bf0a --- /dev/null +++ b/t/10_responses/pinpoint-deleteapp.response.test.yml @@ -0,0 +1,22 @@ +--- +call: DeleteApp +service: Pinpoint +tests: + - expected: 84907e5a-a4a2-11e9-a928-b5c40777813f + op: eq + path: _request_id + - expected: d055d2968e934363b683d02366875914 + op: eq + path: Id + - expected: arn:aws:mobiletargeting:us-east-1:985173205561:apps/d055d2968e934363b683d02366875914 + op: eq + path: Arn + - expected: perl_PAWS_test + op: eq + path: Name + - expected: value1 + op: eq + path: Tags.Map.key1 + - expected: value2 + op: eq + path: Tags.Map.key2 diff --git a/t/10_responses/pinpoint-getapp.response b/t/10_responses/pinpoint-getapp.response new file mode 100644 index 0000000000..ef9970847f --- /dev/null +++ b/t/10_responses/pinpoint-getapp.response @@ -0,0 +1,16 @@ +--- +content: '{"Name" : "perl_PAWS_test","Id" : "fd89d30f64104bfcb4809eacbcc261af","Arn" : "arn:aws:mobiletargeting:us-east-1:999999999991:apps/fd89d30f64104bfcb4809eacbcc261af","tags" : {"key1":"value1","key2":"value2" }}' +headers: + 'content-type': 'application/json' + 'content-length': '190' + 'x-amzn-trace-id': 'Root=1-5d272c40-8fd6eef5d1270e7f683a87ee' + 'x-amzn-requestid': 'e16d3fa0-a3d7-11e9-b0d7-1923289cbffa' + 'connection': 'keep-alive' + 'x-amz-apigw-id': 'cqPaGFnGIAMFeag=' + 'x-amz-cf-pop': 'ORD52-C2' + 'access-control-allow-origin': '*' + 'x-amz-cf-id': '7D9kcNW3l4Gi1vJ9EIr_6YaKEdD7-FbxhY9PhugkMAruxg_Alw0yKw==' + 'date': 'Thu, 11 Jul 2019 12:32:00 GMT' + 'x-cache': 'Miss from cloudfront' + 'via': '1.1 bb8a4e32b7413c1fbb32dbaa86a9a575.cloudfront.net (CloudFront)' +status: 200 diff --git a/t/10_responses/pinpoint-getapp.response.test.yml b/t/10_responses/pinpoint-getapp.response.test.yml new file mode 100644 index 0000000000..af67be80f5 --- /dev/null +++ b/t/10_responses/pinpoint-getapp.response.test.yml @@ -0,0 +1,22 @@ +--- +call: GetApp +service: Pinpoint +tests: + - expected: perl_PAWS_test + op: eq + path: Name + - expected: arn:aws:mobiletargeting:us-east-1:999999999991:apps/fd89d30f64104bfcb4809eacbcc261af + op: eq + path: Arn + - expected: fd89d30f64104bfcb4809eacbcc261af + op: eq + path: Id + - expected: value1 + op: eq + path: Tags.Map.key1 + - expected: value2 + op: eq + path: Tags.Map.key2 + - expected: e16d3fa0-a3d7-11e9-b0d7-1923289cbffa + op: eq + path: _request_id diff --git a/t/10_responses/pinpoint-getapps.response b/t/10_responses/pinpoint-getapps.response new file mode 100644 index 0000000000..61ece7051d --- /dev/null +++ b/t/10_responses/pinpoint-getapps.response @@ -0,0 +1,16 @@ +--- +content: '{ "NextToken" : "eyJDcmVhdGlvbkRhdGUiOiIyMDE5LTAxLTA3VDE4OjAxOjU3LjE5M1oiLCJBY2NvdW50SWQiOiI5ODUxNzMyMDU1NjEiLCJBcHBJZCI6ImMwMGQxYTE1YTk5ZTRjYmVhYWFiMzllM2RjY2Q2NmUxIn0","Item" : [ {"Name" : "Test","Id" : "8108c09a0cc54e88aac855e657e80204","Arn" : "arn:aws:mobiletargeting:us-east-1:999999999991:apps/8108c09a0cc54e88aac855e657e80204","tags" : {"key1":"value1","key2":"value2" }}, {"Name" : "CGT","Id" : "c00d1a15a99e4cbeaaab39e3dccd66e1","Arn" : "arn:aws:mobiletargeting:us-east-1:999999999991:apps/c00d1a15a99e4cbeaaab39e3dccd66e1", "tags" : {"key3":"value3","key4":"value4" } } ]}' +headers: + "via": "1.1 bb8a4e32b7413c1fbb32dbaa86a9a575.cloudfront.net (CloudFront)" + "x-cache": "Miss from cloudfront" + "x-amz-cf-id": "wwJP38R3qT7GROb9mFRbinVm9ryLHiyfRNNcIamqRU_SKcyEUcZKEQ==" + "x-amz-cf-pop": "ORD52-C2" + "access-control-allow-origin": "*" + "date": "Thu, 11 Jul 2019 12:32:00 GMT" + "x-amz-apigw-id": "cqPaGFi-IAMFuRQ=" + "connection": "keep-alive" + "x-amzn-trace-id": "Root=1-5d272c40-10211adce219744743fd08a7" + "x-amzn-requestid": "e160e3a2-a3d7-11e9-8b8b-77b04d63b9f1" + "content-length": "582" + "content-type": "application/json" +status: 200 diff --git a/t/10_responses/pinpoint-getapps.response.test.yml b/t/10_responses/pinpoint-getapps.response.test.yml new file mode 100644 index 0000000000..ea2c144ad0 --- /dev/null +++ b/t/10_responses/pinpoint-getapps.response.test.yml @@ -0,0 +1,37 @@ +--- +call: GetApps +service: Pinpoint +tests: + - expected: eyJDcmVhdGlvbkRhdGUiOiIyMDE5LTAxLTA3VDE4OjAxOjU3LjE5M1oiLCJBY2NvdW50SWQiOiI5ODUxNzMyMDU1NjEiLCJBcHBJZCI6ImMwMGQxYTE1YTk5ZTRjYmVhYWFiMzllM2RjY2Q2NmUxIn0 + op: eq + path: NextToken + - expected: Test + op: eq + path: Item.0.Name + - expected: arn:aws:mobiletargeting:us-east-1:999999999991:apps/8108c09a0cc54e88aac855e657e80204 + op: eq + path: Item.0.Arn + - expected: 8108c09a0cc54e88aac855e657e80204 + op: eq + path: Item.0.Id + - expected: value1 + op: eq + path: Item.0.Tags.Map.key1 + - expected: value2 + op: eq + path: Item.0.Tags.Map.key2 + - expected: CGT + op: eq + path: Item.1.Name + - expected: arn:aws:mobiletargeting:us-east-1:999999999991:apps/c00d1a15a99e4cbeaaab39e3dccd66e1 + op: eq + path: Item.1.Arn + - expected: c00d1a15a99e4cbeaaab39e3dccd66e1 + op: eq + path: Item.1.Id + - expected: value3 + op: eq + path: Item.1.Tags.Map.key3 + - expected: value4 + op: eq + path: Item.1.Tags.Map.key4 diff --git a/t/10_responses/pinpoint-getappsettings.response b/t/10_responses/pinpoint-getappsettings.response new file mode 100644 index 0000000000..b82231ab08 --- /dev/null +++ b/t/10_responses/pinpoint-getappsettings.response @@ -0,0 +1,16 @@ +--- +content: '{"QuietTime":{"Start": "02:30","End": "12:10"},"Limits":{"Daily": 43,"Total": 93,"MessagesPerSecond": 75,"MaximumDuration": 2000},"RequestID":"e1900965-a3d7-11e9-b96c-755d5f59bd77","Message":"Accepted","ApplicationId":"35ec2088193b4f56986cec0fc59d9ca4","CampaignHook":{ "LambdaFunctionName":"arn:aws:mobiletargeting:us-east-1:985173205561:apps/d055d2968e934363b683d02366875914","WebUrl": "some URL","Mode": "DELIVERY"}}' +headers: + 'connection': 'keep-alive' + 'x-amz-apigw-id': 'cqPaJFb6IAMFg6A=' + 'date': 'Thu, 11 Jul 2019 12:32:00 GMT' + 'x-amz-cf-id': 'Xr8MU0oR7-7RfUd9u2ib3euSF7gSNG6-Fe_XJCWYLNM0cO-kJVS2xA==' + 'x-amz-cf-pop': 'ORD52-C2' + 'access-control-allow-origin': '*' + 'via': '1.1 bb8a4e32b7413c1fbb32dbaa86a9a575.cloudfront.net (CloudFront)' + 'x-cache': 'Miss from cloudfront' + 'content-type': 'application/json' + 'content-length': '73' + 'x-amzn-requestid': 'e1900965-a3d7-11e9-b96c-755d5f59bd77' + 'x-amzn-trace-id': 'Root=1-5d272c40-436c0b4278b9a0182edb1a0a' +status: 202 diff --git a/t/10_responses/pinpoint-getappsettings.response.test.yml b/t/10_responses/pinpoint-getappsettings.response.test.yml new file mode 100644 index 0000000000..009bef61d6 --- /dev/null +++ b/t/10_responses/pinpoint-getappsettings.response.test.yml @@ -0,0 +1,38 @@ +--- +call: GetApplicationSettings +service: Pinpoint +tests: + - expected: 35ec2088193b4f56986cec0fc59d9ca4 + op: eq + path: ApplicationId + - expected: e1900965-a3d7-11e9-b96c-755d5f59bd77 + op: eq + path: _request_id + - expected: 12:10 + op: eq + path: QuietTime.End + - expected: 02:30 + op: eq + path: QuietTime.Start + - expected: 93 + op: == + path: Limits.Total + - expected: 75 + op: == + path: Limits.MessagesPerSecond + - expected: 2000 + op: == + path: Limits.MaximumDuration + - expected: 43 + op: == + path: Limits.Daily + - expected: arn:aws:mobiletargeting:us-east-1:985173205561:apps/d055d2968e934363b683d02366875914 + op: eq + path: CampaignHook.LambdaFunctionName + - expected: some URL + op: eq + path: CampaignHook.WebUrl + - expected: DELIVERY + op: eq + path: CampaignHook.Mode + diff --git a/t/10_responses/pinpoint-getappsettings.response_hold b/t/10_responses/pinpoint-getappsettings.response_hold new file mode 100644 index 0000000000..59bde07350 --- /dev/null +++ b/t/10_responses/pinpoint-getappsettings.response_hold @@ -0,0 +1,16 @@ +--- +content: '{"QuietTime":{},"Limits":{},"RequestID":"e1900965-a3d7-11e9-b96c-755d5f59bd77","Message":"Accepted","ApplicationId":"35ec2088193b4f56986cec0fc59d9ca4","CampaignHook":{}}' +headers: + 'connection': 'keep-alive' + 'x-amz-apigw-id': 'cqPaJFb6IAMFg6A=' + 'date': 'Thu, 11 Jul 2019 12:32:00 GMT' + 'x-amz-cf-id': 'Xr8MU0oR7-7RfUd9u2ib3euSF7gSNG6-Fe_XJCWYLNM0cO-kJVS2xA==' + 'x-amz-cf-pop': 'ORD52-C2' + 'access-control-allow-origin': '*' + 'via': '1.1 bb8a4e32b7413c1fbb32dbaa86a9a575.cloudfront.net (CloudFront)' + 'x-cache': 'Miss from cloudfront' + 'content-type': 'application/json' + 'content-length': '73' + 'x-amzn-requestid': 'e1900965-a3d7-11e9-b96c-755d5f59bd77' + 'x-amzn-trace-id': 'Root=1-5d272c40-436c0b4278b9a0182edb1a0a' +status: 202 diff --git a/t/10_responses/pinpoint-getcampaignactivites.response b/t/10_responses/pinpoint-getcampaignactivites.response new file mode 100644 index 0000000000..d5e3494965 --- /dev/null +++ b/t/10_responses/pinpoint-getcampaignactivites.response @@ -0,0 +1,16 @@ +--- +content: '{"Item":[{ "Id": "962c226d1c9b497f939d036f1b5e5a2d","ApplicationId": "35ec2088193b4f56986cec0fc59d9ca4","CampaignId": "a229e2976552419fa7a61a3fea89069e","TreatmentId": "f484f921960b4e11a417c926f3146229","State": "PENDING","Result": "SUCCESS","ScheduledStart": "2019-07-11T12:32:01.431Z", "Start": "2019-07-11T12:32:04.231Z","End": "2019-07-12T12:32:01.431Z","SuccessfulEndpointCount": 1,"TotalEndpointCount": 2,"TimezonesTotalCount": 3,"TimezonesCompletedCount": 4}],"NextToken": "eyJDcmVhdGlvbkRhdGUiOiIyMDE5LTAxLTA3VDE4OjAxOjU3LjE5M1oiLCJBY2NvdW50SWQiOiI5ODUxNzMyMDU1NjEiLCJBcHBJZCI6ImMwMGQxYTE1YTk5ZTRjYmVhYWFiMzllM2RjY2Q2NmUxIn0", "_request_id":"ea60770b-a3d6-11e9-9969-d35857166335"}' +headers: + 'x-amz-cf-id': 'XG5X957EvNuv48ptSK68G4Sc4XfClYerQ7o0ScYEFIWr-_4yuAGyyg==' + 'access-control-allow-origin': '*' + 'x-amz-cf-pop': 'ORD52-C2' + 'date': 'Thu, 11 Jul 2019 12:32:01 GMT' + 'via': '1.1 bb8a4e32b7413c1fbb32dbaa86a9a575.cloudfront.net (CloudFront)' + 'x-cache': 'Miss from cloudfront' + 'connection': 'keep-alive' + 'x-amz-apigw-id': 'cqPaRH5YoAMFWMw=' + 'content-length': '11' + 'x-amzn-trace-id': 'Root=1-5d272c41-06aab36a1360e4d1ef46a03b' + 'x-amzn-requestid': 'e20d7676-a3d7-11e9-915f-b76e879c245d' + 'content-type': 'application/json' +status: 200 diff --git a/t/10_responses/pinpoint-getcampaignactivites.response.test.yml b/t/10_responses/pinpoint-getcampaignactivites.response.test.yml new file mode 100644 index 0000000000..4bd592c079 --- /dev/null +++ b/t/10_responses/pinpoint-getcampaignactivites.response.test.yml @@ -0,0 +1,49 @@ +--- +call: GetCampaignActivities +service: Pinpoint +tests: + - expected: 962c226d1c9b497f939d036f1b5e5a2d + op: eq + path: Item.0.Id + - expected: 35ec2088193b4f56986cec0fc59d9ca4 + op: eq + path: Item.0.ApplicationId + - expected: a229e2976552419fa7a61a3fea89069e + op: eq + path: Item.0.CampaignId + - expected: f484f921960b4e11a417c926f3146229 + op: eq + path: Item.0.TreatmentId + - expected: PENDING + op: eq + path: Item.0.State + - expected: SUCCESS + op: eq + path: Item.0.Result + - expected: 2019-07-11T12:32:01.431Z + op: eq + path: Item.0.ScheduledStart + - expected: 2019-07-11T12:32:04.231Z + op: eq + path: Item.0.Start + - expected: 2019-07-12T12:32:01.431Z + op: eq + path: Item.0.End + - expected: 1 + op: == + path: Item.0.SuccessfulEndpointCount + - expected: 2 + op: == + path: Item.0.TotalEndpointCount + - expected: 3 + op: == + path: Item.0.TimezonesTotalCount + - expected: 4 + op: == + path: Item.0.TimezonesCompletedCount + - expected: eyJDcmVhdGlvbkRhdGUiOiIyMDE5LTAxLTA3VDE4OjAxOjU3LjE5M1oiLCJBY2NvdW50SWQiOiI5ODUxNzMyMDU1NjEiLCJBcHBJZCI6ImMwMGQxYTE1YTk5ZTRjYmVhYWFiMzllM2RjY2Q2NmUxIn0 + op: eq + path: NextToken + - expected: e20d7676-a3d7-11e9-915f-b76e879c245d + op: eq + path: _request_id diff --git a/t/10_responses/pinpoint-getcampaignversion.response b/t/10_responses/pinpoint-getcampaignversion.response new file mode 100644 index 0000000000..42b9f2d5b9 --- /dev/null +++ b/t/10_responses/pinpoint-getcampaignversion.response @@ -0,0 +1,16 @@ +--- +content: '{ "MessageConfiguration" : { "EmailMessage" : { "Title" : "Test email", "Body" : "test email", "HtmlBody" : "Test email", "FromAddress" : "test@test.com" }, "SMSMessage" : { "Body" : "nothing", "MessageType" : "TRANSACTIONAL", "SenderId" : "nobody" } }, "Schedule" : { "StartTime" : "2019-09-16T15:53:00", "Frequency" : "ONCE" }, "Id" : "f484f921960b4e11a417c926f3146229", "ApplicationId" : "fd89d30f64104bfcb4809eacbcc261af", "CreationDate" : "2019-07-11T12:32:01.431Z", "LastModifiedDate" : "2019-07-11T12:32:01.431Z", "SegmentId" : "a229e2976552419fa7a61a3fea89069e", "SegmentVersion" : 1, "Name" : "test101", "Description" : "test campaign", "State" : { "CampaignStatus" : "SCHEDULED" }, "Version" : 1, "IsPaused" : false, "Arn" : "arn:aws:mobiletargeting:us-east-1:985173205561:apps/fd89d30f64104bfcb4809eacbcc261af/campaigns/f484f921960b4e11a417c926f3146229", "tags" : {"key1":"value1","key2":"value2"}, "AdditionalTreatments" : [{"TreatmentName": "Test2","TreatmentDescription": "test Treatment","MessageConfiguration": { "DefaultMessage": {"Title": "Default msg","Body": "Default msg body","ImageUrl": "an url","ImageIconUrl": "and url1","ImageSmallIconUrl": "and icong","MediaUrl": "medial url","Action": "DEEP_LINK","Url": "the URL","SilentPush": 1,"JsonBody": "{Json:here}","RawContent": "This hurts","TimeToLive": 101 }, "APNSMessage": {"Title": "APNS Msg","Body": "APNS Body","ImageUrl": "Image URL","ImageIconUrl": "Icon URL","ImageSmallIconUrl": "Small Icon","MediaUrl": "Midia URL","Action": "DEEP_LINK","Url": "An URL","SilentPush": 0,"JsonBody": "{}","RawContent": "I am Raw","TimeToLive": 12 }, "GCMMessage": {"Title": "GCM Msg","Body": "GCM body","ImageUrl": "image URL","ImageIconUrl": "Icon","ImageSmallIconUrl": "small icon","MediaUrl": "URL media","Action": "URL","Url": "YAURL","SilentPush": 1,"JsonBody": "{}","RawContent": "This is me","TimeToLive": 100 }, "ADMMessage": {"Title": "ADM msg","Body": "ADM Body","ImageUrl": "ADM image","ImageIconUrl": "ADM Icon","ImageSmallIconUrl": "ADM small","MediaUrl": "ADM URL","Action": "OPEN_APP","Url": "URL ADM","SilentPush": 1,"JsonBody": "{}","RawContent": "Still nothing","TimeToLive": 1 }, "BaiduMessage": {"Title": "Baidu msg","Body": "Baidu body","ImageUrl": "Baidu Image","ImageIconUrl": "Baidu Icon","ImageSmallIconUrl": "Baidu icon","MediaUrl": "Baidu medis","Action": "URL","Url": "Baidu URL2","SilentPush": 0,"JsonBody": "{}","RawContent": "not content","TimeToLive": 122 }, "EmailMessage": {"Title": "string","Body": "string","HtmlBody": "string","FromAddress": "string" }, "SMSMessage": {"Body": "string","MessageType": "TRANSACTIONAL","SenderId": "string" }},"Schedule": { "StartTime": "string", "EndTime": "string", "Frequency": "DAILY", "IsLocalTime": 1, "Timezone": "string", "QuietTime": {"Start": "string","End": "string" }, "EventFilter": {"Dimensions": {"EventType": { "DimensionType": "INCLUSIVE", "Values": ["string" ]},"Attributes" : {"interests" : {"AttributeType" : "INCLUSIVE","Values" : [ "technology", "music", "travel" ]}},"Metrics": {"interests":{"ComparisonOperator": "GREATER_THAN_OR_EQUAL","Value":"102" }}},"FilterType": "ENDPOINT" }},"SizePercent": 23,"Id": "string","State": { "CampaignStatus": "SCHEDULED"}}]}' +headers: + 'connection': 'keep-alive' + 'x-amz-apigw-id': 'cqPaSGEQIAMFv7Q=' + 'date': 'Thu, 11 Jul 2019 12:32:01 GMT' + 'access-control-allow-origin': '*' + 'x-amz-cf-pop': 'ORD52-C2' + 'x-amz-cf-id': 'uFwXDFEomx5CkC9Q14XbBS_yMr0h5mAsWJLDOn7C9zOYIkTUNDk6_A==' + 'x-cache': 'Miss from cloudfront' + 'via': '1.1 bb8a4e32b7413c1fbb32dbaa86a9a575.cloudfront.net (CloudFront)' + 'content-type': 'application/json' + 'content-length': '1017' + 'x-amzn-requestid': 'e21a6ee9-a3d7-11e9-a377-5bb348ba481b' + 'x-amzn-trace-id': 'Root=1-5d272c41-858d10708c42e260d9596708' +status: 201 diff --git a/t/10_responses/pinpoint-getcampaignversion.response.test.yml b/t/10_responses/pinpoint-getcampaignversion.response.test.yml new file mode 100644 index 0000000000..05acf73b08 --- /dev/null +++ b/t/10_responses/pinpoint-getcampaignversion.response.test.yml @@ -0,0 +1,334 @@ +--- +call: GetCampaignVersion +service: Pinpoint +tests: + - expected: test campaign + op: eq + path: Description + - expected: a229e2976552419fa7a61a3fea89069e + op: eq + path: SegmentId + - expected: 1 + op: eq + path: SegmentVersion + - expected: e21a6ee9-a3d7-11e9-a377-5bb348ba481b + op: eq + path: _request_id + - expected: 2019-07-11T12:32:01.431Z + op: eq + path: CreationDate + - expected: fd89d30f64104bfcb4809eacbcc261af + op: eq + path: ApplicationId + - expected: f484f921960b4e11a417c926f3146229 + op: eq + path: Id + - expected: value1 + op: eq + path: Tags.Map.key1 + - expected: value2 + op: eq + path: Tags.Map.key2 + - expected: 1 + op: eq + path: Version + - expected: 2019-07-11T12:32:01.431Z + op: eq + path: LastModifiedDate + - expected: SCHEDULED + op: eq + path: State.CampaignStatus + - expected: test@test.com + op: eq + path: MessageConfiguration.EmailMessage.FromAddress + - expected: test email + op: eq + path: MessageConfiguration.EmailMessage.Body + - expected: Test email + op: eq + path: MessageConfiguration.EmailMessage.HtmlBody + - expected: Test email + op: eq + path: MessageConfiguration.EmailMessage.Title + - expected: TRANSACTIONAL + op: eq + path: MessageConfiguration.SMSMessage.MessageType + - expected: nobody + op: eq + path: MessageConfiguration.SMSMessage.SenderId + - expected: nothing + op: eq + path: MessageConfiguration.SMSMessage.Body + - expected: test101 + op: eq + path: Name + - expected: 0 + op: == + path: IsPaused + - expected: arn:aws:mobiletargeting:us-east-1:985173205561:apps/fd89d30f64104bfcb4809eacbcc261af/campaigns/f484f921960b4e11a417c926f3146229 + op: eq + path: Arn + - expected: 2019-09-16T15:53:00 + op: eq + path: Schedule.StartTime + - expected: ONCE + op: eq + path: Schedule.Frequency + - expected: Test2 + op: eq + path: AdditionalTreatments.0.TreatmentName + - expected: test Treatment + op: eq + path: AdditionalTreatments.0.TreatmentDescription + - expected: string + op: eq + path: AdditionalTreatments.0.Id + - expected: SCHEDULED + op: eq + path: AdditionalTreatments.0.State.CampaignStatus + - expected: 1 + op: == + path: AdditionalTreatments.0.Schedule.IsLocalTime + - expected: DAILY + op: eq + path: AdditionalTreatments.0.Schedule.Frequency + - expected: string + op: eq + path: AdditionalTreatments.0.Schedule.EventFilter.Dimensions.EventType.Values.0 + - expected: INCLUSIVE + op: eq + path: AdditionalTreatments.0.Schedule.EventFilter.Dimensions.EventType.DimensionType + - expected: technology + op: eq + path: AdditionalTreatments.0.Schedule.EventFilter.Dimensions.Attributes.Map.interests.Values.0 + - expected: music + op: eq + path: AdditionalTreatments.0.Schedule.EventFilter.Dimensions.Attributes.Map.interests.Values.1 + - expected: travel + op: eq + path: AdditionalTreatments.0.Schedule.EventFilter.Dimensions.Attributes.Map.interests.Values.2 + - expected: INCLUSIVE + op: eq + path: AdditionalTreatments.0.Schedule.EventFilter.Dimensions.Attributes.Map.interests.AttributeType + - expected: 102 + op: eq + path: AdditionalTreatments.0.Schedule.EventFilter.Dimensions.Metrics.Map.interests.Value + - expected: GREATER_THAN_OR_EQUAL + op: eq + path: AdditionalTreatments.0.Schedule.EventFilter.Dimensions.Metrics.Map.interests.ComparisonOperator + - expected: string + op: eq + path: AdditionalTreatments.0.Id + - expected: Test2 + op: eq + path: AdditionalTreatments.0.TreatmentName + - expected: SCHEDULED + op: eq + path: AdditionalTreatments.0.State.CampaignStatus + - expected: test Treatment + op: eq + path: AdditionalTreatments.0.TreatmentDescription + - expected: string + op: eq + path: AdditionalTreatments.0.MessageConfiguration.EmailMessage.Title + - expected: string + op: eq + path: AdditionalTreatments.0.MessageConfiguration.EmailMessage.Body + - expected: string + op: eq + path: AdditionalTreatments.0.MessageConfiguration.EmailMessage.FromAddress + - expected: string + op: eq + path: AdditionalTreatments.0.MessageConfiguration.EmailMessage.HtmlBody + - expected: string + op: eq + path: AdditionalTreatments.0.MessageConfiguration.SMSMessage.Body + - expected: TRANSACTIONAL + op: eq + path: AdditionalTreatments.0.MessageConfiguration.SMSMessage.MessageType + - expected: string + op: eq + path: AdditionalTreatments.0.MessageConfiguration.SMSMessage.SenderId + - expected: 100 + op: == + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.TimeToLive + - expected: URL media + op: eq + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.MediaUrl + - expected: '{}' + op: eq + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.JsonBody + - expected: small icon + op: eq + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.ImageSmallIconUrl + - expected: image URL + op: eq + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.ImageUrl + - expected: 1 + op: == + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.SilentPush + - expected: URL + op: eq + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.Action + - expected: GCM body + op: eq + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.Body + - expected: GCM Msg + op: eq + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.Title + - expected: This is me + op: eq + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.RawContent + - expected: Icon + op: eq + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.ImageIconUrl + - expected: YAURL + op: eq + path: AdditionalTreatments.0.MessageConfiguration.GCMMessage.Url + - expected: 12 + op: == + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.TimeToLive + - expected: Midia URL + op: eq + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.MediaUrl + - expected: '{}' + op: eq + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.JsonBody + - expected: Small Icon + op: eq + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.ImageSmallIconUrl + - expected: Image URL + op: eq + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.ImageUrl + - expected: 0 + op: == + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.SilentPush + - expected: DEEP_LINK + op: eq + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.Action + - expected: APNS Body + op: eq + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.Body + - expected: APNS Msg + op: eq + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.Title + - expected: I am Raw + op: eq + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.RawContent + - expected: Icon URL + op: eq + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.ImageIconUrl + - expected: An URL + op: eq + path: AdditionalTreatments.0.MessageConfiguration.APNSMessage.Url + - expected: 1 + op: == + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.TimeToLive + - expected: ADM URL + op: eq + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.MediaUrl + - expected: '{}' + op: eq + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.JsonBody + - expected: ADM small + op: eq + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.ImageSmallIconUrl + - expected: ADM image + op: eq + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.ImageUrl + - expected: 1 + op: == + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.SilentPush + - expected: OPEN_APP + op: eq + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.Action + - expected: ADM Body + op: eq + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.Body + - expected: ADM msg + op: eq + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.Title + - expected: Still nothing + op: eq + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.RawContent + - expected: ADM Icon + op: eq + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.ImageIconUrl + - expected: URL ADM + op: eq + path: AdditionalTreatments.0.MessageConfiguration.ADMMessage.Url + - expected: 122 + op: == + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.TimeToLive + - expected: Baidu medis + op: eq + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.MediaUrl + - expected: '{}' + op: eq + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.JsonBody + - expected: Baidu icon + op: eq + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.ImageSmallIconUrl + - expected: Baidu Image + op: eq + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.ImageUrl + - expected: 0 + op: == + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.SilentPush + - expected: URL + op: eq + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.Action + - expected: Baidu body + op: eq + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.Body + - expected: Baidu msg + op: eq + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.Title + - expected: not content + op: eq + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.RawContent + - expected: Baidu Icon + op: eq + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.ImageIconUrl + - expected: Baidu URL2 + op: eq + path: AdditionalTreatments.0.MessageConfiguration.BaiduMessage.Url + - expected: 101 + op: == + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.TimeToLive + - expected: medial url + op: eq + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.MediaUrl + - expected: '{Json:here}' + op: eq + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.JsonBody + - expected: and icong + op: eq + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.ImageSmallIconUrl + - expected: an url + op: eq + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.ImageUrl + - expected: 1 + op: == + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.SilentPush + - expected: DEEP_LINK + op: eq + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.Action + - expected: Default msg body + op: eq + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.Body + - expected: Default msg + op: eq + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.Title + - expected: This hurts + op: eq + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.RawContent + - expected: and url1 + op: eq + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.ImageIconUrl + - expected: the URL + op: eq + path: AdditionalTreatments.0.MessageConfiguration.DefaultMessage.Url + - expected: 23 + op: == + path: AdditionalTreatments.0.SizePercent diff --git a/t/10_responses/pinpoint-getcampaignversion.response_working b/t/10_responses/pinpoint-getcampaignversion.response_working new file mode 100644 index 0000000000..76d043902d --- /dev/null +++ b/t/10_responses/pinpoint-getcampaignversion.response_working @@ -0,0 +1,16 @@ +--- +content: '{ "MessageConfiguration" : { "EmailMessage" : { "Title" : "Test email", "Body" : "test email", "HtmlBody" : "Test email", "FromAddress" : "test@test.com" }, "SMSMessage" : { "Body" : "nothing", "MessageType" : "TRANSACTIONAL", "SenderId" : "nobody" } }, "Schedule" : { "StartTime" : "2019-09-16T15:53:00", "Frequency" : "ONCE" }, "Id" : "f484f921960b4e11a417c926f3146229", "ApplicationId" : "fd89d30f64104bfcb4809eacbcc261af", "CreationDate" : "2019-07-11T12:32:01.431Z", "LastModifiedDate" : "2019-07-11T12:32:01.431Z", "SegmentId" : "a229e2976552419fa7a61a3fea89069e", "SegmentVersion" : 1, "Name" : "test101", "Description" : "test campaign", "State" : { "CampaignStatus" : "SCHEDULED" }, "Version" : 1, "IsPaused" : false, "Arn" : "arn:aws:mobiletargeting:us-east-1:985173205561:apps/fd89d30f64104bfcb4809eacbcc261af/campaigns/f484f921960b4e11a417c926f3146229", "tags" : {"key1":"value1","key2":"value2"}, "AdditionalTreatments" : [{"TreatmentName": "Test2","TreatmentDescription": "test Treatment","MessageConfiguration": { "DefaultMessage": {"Title": "Default msg","Body": "Default msg body","ImageUrl": "an url","ImageIconUrl": "and url1","ImageSmallIconUrl": "and icong","MediaUrl": "medial url","Action": "DEEP_LINK","Url": "the URL","SilentPush": 1,"JsonBody": "{Json:here}","RawContent": "This hurts","TimeToLive": 101 }, "APNSMessage": {"Title": "APNS Msg","Body": "APNS Body","ImageUrl": "Image URL","ImageIconUrl": "Icon URL","ImageSmallIconUrl": "Small Icon","MediaUrl": "Midia URL","Action": "DEEP_LINK","Url": "An URL","SilentPush": 0,"JsonBody": "{}","RawContent": "I am Raw","TimeToLive": 12 }, "GCMMessage": {"Title": "GCM Msg","Body": "GCM body","ImageUrl": "image URL","ImageIconUrl": "Icon","ImageSmallIconUrl": "small icon","MediaUrl": "URL media","Action": "URL","Url": "YAURL","SilentPush": 1,"JsonBody": "{}","RawContent": "This is me","TimeToLive": 100 }, "ADMMessage": {"Title": "ADM msg","Body": "ADM Body","ImageUrl": "ADM image","ImageIconUrl": "ADM Icon","ImageSmallIconUrl": "ADM small","MediaUrl": "ADM URL","Action": "OPEN_APP","Url": "URL ADM","SilentPush": 1,"JsonBody": "{}","RawContent": "Still nothing","TimeToLive": 1 }, "BaiduMessage": {"Title": "Baidu msg","Body": "Baidu body","ImageUrl": "","ImageIconUrl": "Baidu Icon","ImageSmallIconUrl": "Baidu icon","MediaUrl": "Baidu medis","Action": "URL","Url": "Baidu URL2","SilentPush": 0,"JsonBody": "{}","RawContent": "not content","TimeToLive": 122 }, "EmailMessage": {"Title": "string","Body": "string","HtmlBody": "string","FromAddress": "string" }, "SMSMessage": {"Body": "string","MessageType": "TRANSACTIONAL","SenderId": "string" }},"Schedule": { "StartTime": "string", "EndTime": "string", "Frequency": "DAILY", "IsLocalTime": 1, "Timezone": "string", "QuietTime": {"Start": "string","End": "string" }, "EventFilter": {"Dimensions": {"EventType": { "DimensionType": "INCLUSIVE", "Values": ["string" ]},"Attributes": {},"Metrics": {}},"FilterType": "ENDPOINT" }},"SizePercent": 23,"Id": "string","State": { "CampaignStatus": "SCHEDULED"}}]}' +headers: + 'connection': 'keep-alive' + 'x-amz-apigw-id': 'cqPaSGEQIAMFv7Q=' + 'date': 'Thu, 11 Jul 2019 12:32:01 GMT' + 'access-control-allow-origin': '*' + 'x-amz-cf-pop': 'ORD52-C2' + 'x-amz-cf-id': 'uFwXDFEomx5CkC9Q14XbBS_yMr0h5mAsWJLDOn7C9zOYIkTUNDk6_A==' + 'x-cache': 'Miss from cloudfront' + 'via': '1.1 bb8a4e32b7413c1fbb32dbaa86a9a575.cloudfront.net (CloudFront)' + 'content-type': 'application/json' + 'content-length': '1017' + 'x-amzn-requestid': 'e21a6ee9-a3d7-11e9-a377-5bb348ba481b' + 'x-amzn-trace-id': 'Root=1-5d272c41-858d10708c42e260d9596708' +status: 201 diff --git a/t/10_responses/pinpoint-getcampaignversions.response b/t/10_responses/pinpoint-getcampaignversions.response new file mode 100644 index 0000000000..d6a0e4c4b0 --- /dev/null +++ b/t/10_responses/pinpoint-getcampaignversions.response @@ -0,0 +1,16 @@ +--- +content: '{"Item" : [ {"MessageConfiguration" : {"EmailMessage" : {"Title" : "Test email","Body" : "test email","HtmlBody" : "Test email","FromAddress" : "test@test.com"},"SMSMessage" : {"Body" : "nothing","MessageType" : "TRANSACTIONAL","SenderId" : "nobody"}},"Schedule" : {"StartTime" : "2019-09-16T15:53:00","Frequency" : "ONCE"},"Id" : "fc64a4994ccc4da6bcf0e7312d894a11","ApplicationId" : "d055d2968e934363b683d02366875914","CreationDate" : "2019-07-12T12:42:31.635Z","LastModifiedDate" : "2019-07-12T12:42:31.635Z","SegmentId" : "c7988efcbed549ebb240e72b7294aae4","SegmentVersion" : 1,"Name" : "test101","Description" : "test campaign","Version" : 1,"IsPaused" : false,"Arn" : "arn:aws:mobiletargeting:us-east-1:985173205561:apps/d055d2968e934363b683d02366875914/campaigns/fc64a4994ccc4da6bcf0e7312d894a11","tags" : {"key1":"value1","key2":"value2" },"AdditionalTreatments": [{"TreatmentName": "Test2","TreatmentDescription": "test Treatment","MessageConfiguration": { "DefaultMessage": {"Title": "Default msg","Body": "Default msg body","ImageUrl": "an url","ImageIconUrl": "and url1","ImageSmallIconUrl": "and icong","MediaUrl": "medial url","Action": "DEEP_LINK","Url": "the URL","SilentPush": 1,"JsonBody": "{Json:here}","RawContent": "This hurts","TimeToLive": 101 }, "APNSMessage": {"Title": "APNS Msg","Body": "APNS Body","ImageUrl": "Image URL","ImageIconUrl": "Icon URL","ImageSmallIconUrl": "Small Icon","MediaUrl": "Midia URL","Action": "DEEP_LINK","Url": "An URL","SilentPush": 0,"JsonBody": "{}","RawContent": "I am Raw","TimeToLive": 12 }, "GCMMessage": {"Title": "GCM Msg","Body": "GCM body","ImageUrl": "image URL","ImageIconUrl": "Icon","ImageSmallIconUrl": "small icon","MediaUrl": "URL media","Action": "URL","Url": "YAURL","SilentPush": 1,"JsonBody": "{}","RawContent": "This is me","TimeToLive": 100 }, "ADMMessage": {"Title": "ADM msg","Body": "ADM Body","ImageUrl": "ADM image","ImageIconUrl": "ADM Icon","ImageSmallIconUrl": "ADM small","MediaUrl": "ADM URL","Action": "OPEN_APP","Url": "URL ADM","SilentPush": 1,"JsonBody": "{}","RawContent": "Still nothing","TimeToLive": 1 }, "BaiduMessage":{"Title": "Baidu msg","Body": "Baidu body","ImageUrl": "Baidu","ImageIconUrl": "Baidu Icon","ImageSmallIconUrl": "Baidu icon","MediaUrl": "Baidu medis","Action":"URL","Url": "Baidu URL2","SilentPush": 0,"JsonBody": "{}","RawContent": "not content","TimeToLive": 122 }, "EmailMessage": {"Title": "string","Body": "string","HtmlBody": "string","FromAddress": "string" }, "SMSMessage": {"Body": "string","MessageType": "TRANSACTIONAL","SenderId": "string" }},"Schedule": { "StartTime": "string", "EndTime": "string", "Frequency": "DAILY", "IsLocalTime": 1, "Timezone": "string", "QuietTime": {"Start": "string","End": "string" }, "EventFilter": {"Dimensions": {"EventType": { "DimensionType": "INCLUSIVE", "Values": ["string" ]},"Attributes" : {"interests" : {"AttributeType": "INCLUSIVE","Values" : [ "technology", "music", "travel" ]}},"Metrics": {"interests":{"ComparisonOperator": "GREATER_THAN_OR_EQUAL","Value":"102" }}},"FilterType": "ENDPOINT" }},"SizePercent": 23,"Id": "string","State": {"CampaignStatus": "SCHEDULED"}}]} ]}' +headers: + 'x-amz-apigw-id': 'ctj4yGgToAMFhtQ=' + 'x-amz-cf-id': 'PwOlcJRBR9hdsFKFF8zUQfMkc-votwWuGEleeQQnYxepOSU-TeVZKA==' + 'x-amzn-trace-id': 'Root=1-5d288038-2b41d7a95a56526661fb940a' + 'content-type': 'application/json' + 'connection': 'keep-alive' + 'x-amzn-requestid': '8448ee20-a4a2-11e9-b35d-4fbdfe0fa038' + 'access-control-allow-origin': '*' + 'content-length': '1017' + 'via': '1.1 a9663235241a881e6187d8d87d15b277.cloudfront.net (CloudFront)' + 'x-cache': 'Miss from cloudfront' + 'date': 'Fri, 12 Jul 2019 12:42:32 GMT' + 'x-amz-cf-pop': 'ORD51' +status: 200 diff --git a/t/10_responses/pinpoint-getcampaignversions.response.test.yml b/t/10_responses/pinpoint-getcampaignversions.response.test.yml new file mode 100644 index 0000000000..0215fd9748 --- /dev/null +++ b/t/10_responses/pinpoint-getcampaignversions.response.test.yml @@ -0,0 +1,335 @@ +--- +call: GetCampaignVersions +service: Pinpoint +tests: + - expected: fc64a4994ccc4da6bcf0e7312d894a11 + op: eq + path: Item.0.Id + - expected: test campaign + op: eq + path: Item.0.Description + - expected: c7988efcbed549ebb240e72b7294aae4 + op: eq + path: Item.0.SegmentId + - expected: 1 + op: eq + path: Item.0.SegmentVersion + - expected: 8448ee20-a4a2-11e9-b35d-4fbdfe0fa038 + op: eq + path: _request_id + - expected: 2019-07-12T12:42:31.635Z + op: eq + path: Item.0.CreationDate + - expected: d055d2968e934363b683d02366875914 + op: eq + path: Item.0.ApplicationId + - expected: fc64a4994ccc4da6bcf0e7312d894a11 + op: eq + path: Item.0.Id + - expected: 1 + op: eq + path: Item.0.Version + - expected: 2019-07-12T12:42:31.635Z + op: eq + path: Item.0.LastModifiedDate + - expected: ONCE + op: eq + path: Item.0.Schedule.Frequency + - expected: 2019-09-16T15:53:00 + op: eq + path: Item.0.Schedule.StartTime + - expected: test@test.com + op: eq + path: Item.0.MessageConfiguration.EmailMessage.FromAddress + - expected: test email + op: eq + path: Item.0.MessageConfiguration.EmailMessage.Body + - expected: Test email + op: eq + path: Item.0.MessageConfiguration.EmailMessage.HtmlBody + - expected: Test email + op: eq + path: Item.0.MessageConfiguration.EmailMessage.Title + - expected: TRANSACTIONAL + op: eq + path: Item.0.MessageConfiguration.SMSMessage.MessageType + - expected: nobody + op: eq + path: Item.0.MessageConfiguration.SMSMessage.SenderId + - expected: nothing + op: eq + path: Item.0.MessageConfiguration.SMSMessage.Body + - expected: test101 + op: eq + path: Item.0.Name + - expected: 0 + op: == + path: Item.0.IsPaused + - expected: arn:aws:mobiletargeting:us-east-1:985173205561:apps/d055d2968e934363b683d02366875914/campaigns/fc64a4994ccc4da6bcf0e7312d894a11 + op: eq + path: Item.0.Arn + - expected: value1 + op: eq + path: Item.0.Tags.Map.key1 + - expected: value2 + op: eq + path: Item.0.Tags.Map.key2 + - expected: Test2 + op: eq + path: Item.0.AdditionalTreatments.0.TreatmentName + - expected: test Treatment + op: eq + path: Item.0.AdditionalTreatments.0.TreatmentDescription + - expected: string + op: eq + path: Item.0.AdditionalTreatments.0.Id + - expected: SCHEDULED + op: eq + path: Item.0.AdditionalTreatments.0.State.CampaignStatus + - expected: 1 + op: == + path: Item.0.AdditionalTreatments.0.Schedule.IsLocalTime + - expected: DAILY + op: eq + path: Item.0.AdditionalTreatments.0.Schedule.Frequency + - expected: string + op: eq + path: Item.0.AdditionalTreatments.0.Schedule.EventFilter.Dimensions.EventType.Values.0 + - expected: INCLUSIVE + op: eq + path: Item.0.AdditionalTreatments.0.Schedule.EventFilter.Dimensions.EventType.DimensionType + - expected: technology + op: eq + path: Item.0.AdditionalTreatments.0.Schedule.EventFilter.Dimensions.Attributes.Map.interests.Values.0 + - expected: music + op: eq + path: Item.0.AdditionalTreatments.0.Schedule.EventFilter.Dimensions.Attributes.Map.interests.Values.1 + - expected: travel + op: eq + path: Item.0.AdditionalTreatments.0.Schedule.EventFilter.Dimensions.Attributes.Map.interests.Values.2 + - expected: INCLUSIVE + op: eq + path: Item.0.AdditionalTreatments.0.Schedule.EventFilter.Dimensions.Attributes.Map.interests.AttributeType + - expected: 102 + op: eq + path: Item.0.AdditionalTreatments.0.Schedule.EventFilter.Dimensions.Metrics.Map.interests.Value + - expected: GREATER_THAN_OR_EQUAL + op: eq + path: Item.0.AdditionalTreatments.0.Schedule.EventFilter.Dimensions.Metrics.Map.interests.ComparisonOperator + - expected: string + op: eq + path: Item.0.AdditionalTreatments.0.Id + - expected: Test2 + op: eq + path: Item.0.AdditionalTreatments.0.TreatmentName + - expected: SCHEDULED + op: eq + path: Item.0.AdditionalTreatments.0.State.CampaignStatus + - expected: test Treatment + op: eq + path: Item.0.AdditionalTreatments.0.TreatmentDescription + - expected: string + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.EmailMessage.Title + - expected: string + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.EmailMessage.Body + - expected: string + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.EmailMessage.FromAddress + - expected: string + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.EmailMessage.HtmlBody + - expected: string + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.SMSMessage.Body + - expected: TRANSACTIONAL + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.SMSMessage.MessageType + - expected: string + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.SMSMessage.SenderId + - expected: 100 + op: == + path: Item.0.AdditionalTreatments.0.MessageConfiguration.GCMMessage.TimeToLive + - expected: URL media + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.GCMMessage.MediaUrl + - expected: '{}' + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.GCMMessage.JsonBody + - expected: small icon + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.GCMMessage.ImageSmallIconUrl + - expected: image URL + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.GCMMessage.ImageUrl + - expected: 1 + op: == + path: Item.0.AdditionalTreatments.0.MessageConfiguration.GCMMessage.SilentPush + - expected: URL + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.GCMMessage.Action + - expected: GCM body + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.GCMMessage.Body + - expected: GCM Msg + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.GCMMessage.Title + - expected: This is me + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.GCMMessage.RawContent + - expected: Icon + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.GCMMessage.ImageIconUrl + - expected: YAURL + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.GCMMessage.Url + - expected: 12 + op: == + path: Item.0.AdditionalTreatments.0.MessageConfiguration.APNSMessage.TimeToLive + - expected: Midia URL + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.APNSMessage.MediaUrl + - expected: '{}' + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.APNSMessage.JsonBody + - expected: Small Icon + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.APNSMessage.ImageSmallIconUrl + - expected: Image URL + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.APNSMessage.ImageUrl + - expected: 0 + op: == + path: Item.0.AdditionalTreatments.0.MessageConfiguration.APNSMessage.SilentPush + - expected: DEEP_LINK + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.APNSMessage.Action + - expected: APNS Body + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.APNSMessage.Body + - expected: APNS Msg + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.APNSMessage.Title + - expected: I am Raw + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.APNSMessage.RawContent + - expected: Icon URL + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.APNSMessage.ImageIconUrl + - expected: An URL + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.APNSMessage.Url + - expected: 1 + op: == + path: Item.0.AdditionalTreatments.0.MessageConfiguration.ADMMessage.TimeToLive + - expected: ADM URL + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.ADMMessage.MediaUrl + - expected: '{}' + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.ADMMessage.JsonBody + - expected: ADM small + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.ADMMessage.ImageSmallIconUrl + - expected: ADM image + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.ADMMessage.ImageUrl + - expected: 1 + op: == + path: Item.0.AdditionalTreatments.0.MessageConfiguration.ADMMessage.SilentPush + - expected: OPEN_APP + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.ADMMessage.Action + - expected: ADM Body + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.ADMMessage.Body + - expected: ADM msg + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.ADMMessage.Title + - expected: Still nothing + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.ADMMessage.RawContent + - expected: ADM Icon + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.ADMMessage.ImageIconUrl + - expected: URL ADM + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.ADMMessage.Url + - expected: 122 + op: == + path: Item.0.AdditionalTreatments.0.MessageConfiguration.BaiduMessage.TimeToLive + - expected: Baidu medis + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.BaiduMessage.MediaUrl + - expected: '{}' + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.BaiduMessage.JsonBody + - expected: Baidu icon + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.BaiduMessage.ImageSmallIconUrl + - expected: Baidu + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.BaiduMessage.ImageUrl + - expected: 0 + op: == + path: Item.0.AdditionalTreatments.0.MessageConfiguration.BaiduMessage.SilentPush + - expected: URL + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.BaiduMessage.Action + - expected: Baidu body + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.BaiduMessage.Body + - expected: Baidu msg + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.BaiduMessage.Title + - expected: not content + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.BaiduMessage.RawContent + - expected: Baidu Icon + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.BaiduMessage.ImageIconUrl + - expected: Baidu URL2 + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.BaiduMessage.Url + - expected: 101 + op: == + path: Item.0.AdditionalTreatments.0.MessageConfiguration.DefaultMessage.TimeToLive + - expected: medial url + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.DefaultMessage.MediaUrl + - expected: '{Json:here}' + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.DefaultMessage.JsonBody + - expected: and icong + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.DefaultMessage.ImageSmallIconUrl + - expected: an url + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.DefaultMessage.ImageUrl + - expected: 1 + op: == + path: Item.0.AdditionalTreatments.0.MessageConfiguration.DefaultMessage.SilentPush + - expected: DEEP_LINK + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.DefaultMessage.Action + - expected: Default msg body + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.DefaultMessage.Body + - expected: Default msg + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.DefaultMessage.Title + - expected: This hurts + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.DefaultMessage.RawContent + - expected: and url1 + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.DefaultMessage.ImageIconUrl + - expected: the URL + op: eq + path: Item.0.AdditionalTreatments.0.MessageConfiguration.DefaultMessage.Url + - expected: 23 + op: == + path: Item.0.AdditionalTreatments.0.SizePercent + diff --git a/t/10_responses/pinpoint-getchannels.response b/t/10_responses/pinpoint-getchannels.response new file mode 100644 index 0000000000..9f8c4b6f5d --- /dev/null +++ b/t/10_responses/pinpoint-getchannels.response @@ -0,0 +1,16 @@ +--- +content: '{"Channels":{"testchannel":{"ApplicationId":"fd89d30f64104bfcb4809eacbcc261af","CreationDate":"2019-07-11T12:32:01.063Z","Enabled":"true","HasCredential":"false","Id":"a229e2976552419fa7a61a3fea89069e","IsArchived":"true","LastModifiedBy":"Testme","LastModifiedDate":"2019-07-11T12:32:01.063Z","Version":"2"}}}' +headers: + 'date': 'Fri, 12 Jul 2019 12:42:32 GMT' + 'x-amz-cf-pop': 'ORD51' + 'x-amzn-requestid': '84659e8f-a4a2-11e9-b99c-9b75f4ae6e34' + 'content-length': '15' + 'via': '1.1 a9663235241a881e6187d8d87d15b277.cloudfront.net (CloudFront)' + 'access-control-allow-origin': '*' + 'x-cache': 'Miss from cloudfront' + 'x-amzn-trace-id': 'Root=1-5d288038-ec9382001d51660098795000' + 'content-type': 'application/json' + 'connection': 'keep-alive' + 'x-amz-apigw-id': 'ctj40HOJIAMFZUg=' + 'x-amz-cf-id': '_7ikp1Wr-zxMXRgrLL927Qda8MzlTEGtlGhDrF6p2Bb1ilUNW2pHPg==' +status: 200 diff --git a/t/10_responses/pinpoint-getchannels.response.test.yml b/t/10_responses/pinpoint-getchannels.response.test.yml new file mode 100644 index 0000000000..2eba2aa8d1 --- /dev/null +++ b/t/10_responses/pinpoint-getchannels.response.test.yml @@ -0,0 +1,31 @@ +--- +call: GetChannels +service: Pinpoint +tests: + - expected: 1 + op: == + path: Channels.Map.testchannel.IsArchived + - expected: 2019-07-11T12:32:01.063Z + op: eq + path: Channels.Map.testchannel.CreationDate + - expected: a229e2976552419fa7a61a3fea89069e + op: eq + path: Channels.Map.testchannel.Id + - expected: 0 + op: == + path: Channels.Map.testchannel.HasCredential + - expected: 2 + op: == + path: Channels.Map.testchannel.Version + - expected: 1 + op: == + path: Channels.Map.testchannel.Enabled + - expected: 2019-07-11T12:32:01.063Z + op: eq + path: Channels.Map.testchannel.LastModifiedDate + - expected: Testme + op: eq + path: Channels.Map.testchannel.LastModifiedBy + - expected: fd89d30f64104bfcb4809eacbcc261af + op: eq + path: Channels.Map.testchannel.ApplicationId diff --git a/t/10_responses/pinpoint-getendpoint.response b/t/10_responses/pinpoint-getendpoint.response new file mode 100644 index 0000000000..4bafd6ff2f --- /dev/null +++ b/t/10_responses/pinpoint-getendpoint.response @@ -0,0 +1,16 @@ +--- +content: '{"ChannelType":"SMS","Address":"1-939-555-3226","EndpointStatus":"ACTIVE","OptOut":"NONE","RequestId":"8483fb44-a4a2-11e9-9b4a-eb68e20dc15c","EffectiveDate":"2019-07-12T12:42:31.256Z","ApplicationId":"d055d2968e934363b683d02366875914","Id":"test-473080","CohortId":"40","CreationDate":"2019-07-12T12:42:31.256Z"}' +headers: + 'x-amz-apigw-id': 'ctj42EqEoAMFlrA=' + 'x-amz-cf-id': 'i-V1maot-p2VgbT_C4dZ_M57q9ucpYA7qyFyR7edEr1owB-QuidDbw==' + 'connection': 'keep-alive' + 'x-amzn-trace-id': 'Root=1-5d288038-7b9d47ea870c1706744dc37c' + 'content-type': 'application/json' + 'x-cache': 'Miss from cloudfront' + 'x-amzn-requestid': '8483fb44-a4a2-11e9-9b4a-eb68e20dc15c' + 'via': '1.1 a9663235241a881e6187d8d87d15b277.cloudfront.net (CloudFront)' + 'content-length': '312' + 'access-control-allow-origin': '*' + 'date': 'Fri, 12 Jul 2019 12:42:32 GMT' + 'x-amz-cf-pop': 'ORD51' +status: 200 diff --git a/t/10_responses/pinpoint-getendpoint.response.test.yml b/t/10_responses/pinpoint-getendpoint.response.test.yml new file mode 100644 index 0000000000..5fd9db79cd --- /dev/null +++ b/t/10_responses/pinpoint-getendpoint.response.test.yml @@ -0,0 +1,22 @@ +--- +call: GetEndpoint +service: Pinpoint +tests: + - expected: SMS + op: eq + path: ChannelType + - expected: 1-939-555-3226 + op: eq + path: Address + - expected: ACTIVE + op: eq + path: EndpointStatus + - expected: NONE + op: eq + path: OptOut + - expected: 8483fb44-a4a2-11e9-9b4a-eb68e20dc15c + op: eq + path: RequestId + - expected: 2019-07-12T12:42:31.256Z + op: eq + path: EffectiveDate diff --git a/t/10_responses/pinpoint-phonenumbervalidate.response b/t/10_responses/pinpoint-phonenumbervalidate.response new file mode 100644 index 0000000000..849cf5774c --- /dev/null +++ b/t/10_responses/pinpoint-phonenumbervalidate.response @@ -0,0 +1,16 @@ +--- +content: '{"CountryCodeIso2":"US","CountryCodeNumeric":"1","Country":"United States","City":"Ann Arbor","ZipCode":"48104","County":"Washtenaw","Timezone":"America/New_York","CleansedPhoneNumberNational":"9395550113","CleansedPhoneNumberE164":"+19395550113","Carrier":"Verizon Wireless","PhoneTypeCode":0,"PhoneType":"MOBILE","OriginalPhoneNumber":"+19395550113"}' +headers: + 'x-amzn-requestid': '84adca3b-a4a2-11e9-9db1-fd016d35ac6e' + 'access-control-allow-origin': '*' + 'content-length': '352' + 'via': '1.1 a9663235241a881e6187d8d87d15b277.cloudfront.net (CloudFront)' + 'x-cache': 'Miss from cloudfront' + 'date': 'Fri, 12 Jul 2019 12:42:33 GMT' + 'x-amz-cf-pop': 'ORD51' + 'x-amz-apigw-id': 'ctj45E-fIAMF-fQ=' + 'x-amz-cf-id': 'jODqpgZ9akQs3buHTlB7DKvQ0P7_VGkkDK-KugR8saoeeayhyPKgXw==' + 'x-amzn-trace-id': 'Root=1-5d288038-1eefb283fd0a73b9133c7e4f' + 'content-type': 'application/json' + 'connection': 'keep-alive' +status: 200 diff --git a/t/10_responses/pinpoint-phonenumbervalidate.response.test.yml b/t/10_responses/pinpoint-phonenumbervalidate.response.test.yml new file mode 100644 index 0000000000..7536e4c285 --- /dev/null +++ b/t/10_responses/pinpoint-phonenumbervalidate.response.test.yml @@ -0,0 +1,44 @@ +--- +call: PhoneNumberValidate +service: Pinpoint +tests: + - expected: US + op: eq + path: CountryCodeIso2 + - expected: 1 + op: == + path: CountryCodeNumeric + - expected: United States + op: eq + path: Country + - expected: Ann Arbor + op: eq + path: City + - expected: 48104 + op: eq + path: ZipCode + - expected: Washtenaw + op: eq + path: County + - expected: America/New_York + op: eq + path: Timezone + - expected: 9395550113 + op: eq + path: CleansedPhoneNumberNational + - expected: +19395550113 + op: eq + path: CleansedPhoneNumberE164 + - expected: Verizon Wireless + op: eq + path: Carrier + - expected: 0 + op: == + path: PhoneTypeCode + - expected: MOBILE + op: eq + path: PhoneType + - expected: +19395550113 + op: eq + path: OriginalPhoneNumber + diff --git a/t/10_responses/pinpoint-sendsms.response b/t/10_responses/pinpoint-sendsms.response new file mode 100644 index 0000000000..1eb5d607b0 --- /dev/null +++ b/t/10_responses/pinpoint-sendsms.response @@ -0,0 +1,16 @@ +--- +content: '{"ApplicationId":"c00d1a15a99e4cbeaaab39e3dccd66e1","RequestId":"1432a912-a4b9-11e9-ad48-95ff3a078952","Result":{"1-939-555-0113":{"DeliveryStatus":"SUCCESSFUL","StatusCode":200,"StatusMessage":"MessageId: af6279vo9087299nu28mupnmbpb7sa23q2aguh80","MessageId":"af6279vo9087299nu28mupnmbpb7sa23q2aguh80"}}}' +headers: + 'x-amz-cf-id': 'q5ejg7SrfDtQ7x2QaCa9BWpTXYul3kNPXNJwwodnzw_bll8SydRFRQ==' + 'content-length': '305' + 'date': 'Fri, 12 Jul 2019 15:24:02 GMT' + 'access-control-allow-origin': '*' + 'x-amzn-requestid': '1432a912-a4b9-11e9-ad48-95ff3a078952' + 'connection': 'keep-alive' + 'x-amz-cf-pop': 'ORD52-C2' + 'x-amzn-trace-id': 'Root=1-5d28a612-84b887b0486432b837648ae0' + 'content-type': 'application/json' + 'x-amz-apigw-id': 'ct7i6Hv-oAMFqgA=' + 'via': '1.1 c8a21a7610b30a71d259ed6dd5d8a6bb.cloudfront.net (CloudFront)' + 'x-cache': 'Miss from cloudfront' +status: 200 diff --git a/t/10_responses/pinpoint-sendsms.response.test.yml b/t/10_responses/pinpoint-sendsms.response.test.yml new file mode 100644 index 0000000000..9f858ca80c --- /dev/null +++ b/t/10_responses/pinpoint-sendsms.response.test.yml @@ -0,0 +1,25 @@ +--- +call: SendMessages +service: Pinpoint +tests: + - expected: c00d1a15a99e4cbeaaab39e3dccd66e1 + op: eq + path: ApplicationId + - expected: 1432a912-a4b9-11e9-ad48-95ff3a078952 + op: eq + path: RequestId + - expected: 1432a912-a4b9-11e9-ad48-95ff3a078952 + op: eq + path: _request_id + - expected: SUCCESSFUL + op: eq + path: Result.Map.1-939-555-0113.DeliveryStatus + - expected: 200 + op: eq + path: Result.Map.1-939-555-0113.StatusCode + - expected: af6279vo9087299nu28mupnmbpb7sa23q2aguh80 + op: eq + path: Result.Map.1-939-555-0113.MessageId + - expected: 'MessageId: af6279vo9087299nu28mupnmbpb7sa23q2aguh80' + op: eq + path: Result.Map.1-939-555-0113.StatusMessage diff --git a/t/10_responses/s3-copy-object.2.response.test.yml b/t/10_responses/s3-copy-object.2.response.test.yml index 0ef75f0a82..b1b54ef844 100644 --- a/t/10_responses/s3-copy-object.2.response.test.yml +++ b/t/10_responses/s3-copy-object.2.response.test.yml @@ -7,8 +7,11 @@ tests: expected: C535DE4BB867ECF3 - path: message op: eq - expected: Not Found + expected: The specified key does not exist. - path: code + op: eq + expected: NoSuchKey + - path: http_status op: eq expected: 404 diff --git a/t/10_responses/s3-create-bucket.1.response.test.yml b/t/10_responses/s3-create-bucket.1.response.test.yml index 21663d8bab..d52ee46bd9 100644 --- a/t/10_responses/s3-create-bucket.1.response.test.yml +++ b/t/10_responses/s3-create-bucket.1.response.test.yml @@ -7,7 +7,10 @@ tests: expected: 195AF4042CD6DF80 - path: message op: eq - expected: Bad Request + expected: The unspecified location constraint is incompatible for the region specific endpoint this request was sent to. - path: code + op: eq + expected: IllegalLocationConstraintException + - path: http_status op: eq expected: 400 diff --git a/t/10_responses/s3-create-bucket.3.response.test.yml b/t/10_responses/s3-create-bucket.3.response.test.yml index 8ba1ffc1f1..5851b95413 100644 --- a/t/10_responses/s3-create-bucket.3.response.test.yml +++ b/t/10_responses/s3-create-bucket.3.response.test.yml @@ -7,7 +7,10 @@ tests: expected: EF9D1C89539E2208 - path: message op: eq - expected: Conflict + expected: Your previous request to create the named bucket succeeded and you already own it. - path: code + op: eq + expected: BucketAlreadyOwnedByYou + - path: http_status op: eq expected: 409 diff --git a/t/10_responses/s3-delete-bucket-analytics.response b/t/10_responses/s3-delete-bucket-analytics.response new file mode 100644 index 0000000000..3a0eeb9c6f --- /dev/null +++ b/t/10_responses/s3-delete-bucket-analytics.response @@ -0,0 +1,9 @@ +--- +content: ~ +headers: + connection: close + date: 'Tue, 01 Nov 2016 21:28:16 GMT' + server: AmazonS3 + x-amz-id-2: XQLL93GOKnkHG1stW1FysFBWzlazvI60lFlWWr0hx5+qWmQD7E6qerrepkTPRtUg9xy6nhKGe74= + x-amz-request-id: A07B155318EEA65F +status: 204 diff --git a/t/10_responses/s3-delete-bucket-analytics.response.test.yml b/t/10_responses/s3-delete-bucket-analytics.response.test.yml new file mode 100644 index 0000000000..2e00a24cdd --- /dev/null +++ b/t/10_responses/s3-delete-bucket-analytics.response.test.yml @@ -0,0 +1,7 @@ +--- +call: DeleteBucketAnalyticsConfiguration +service: S3 +tests: + - path: _request_id + op: eq + expected: A07B155318EEA65F diff --git a/t/10_responses/s3-delete-bucket-cors.response b/t/10_responses/s3-delete-bucket-cors.response new file mode 100644 index 0000000000..d9c7137de6 --- /dev/null +++ b/t/10_responses/s3-delete-bucket-cors.response @@ -0,0 +1,5 @@ +--- +content: '' +headers: + x-amz-request-id: EE3379DA02E1B7DD4 +status: 200 diff --git a/t/10_responses/s3-delete-bucket-cors.response.test.yml b/t/10_responses/s3-delete-bucket-cors.response.test.yml new file mode 100644 index 0000000000..a72e947817 --- /dev/null +++ b/t/10_responses/s3-delete-bucket-cors.response.test.yml @@ -0,0 +1,7 @@ +--- +call: DeleteBucketCors +service: S3 +Tests: + - expected: EE3379DA02E1B7DD4 + op: eq + path: _request_id diff --git a/t/10_responses/s3-delete-bucket-encryption.response b/t/10_responses/s3-delete-bucket-encryption.response new file mode 100644 index 0000000000..e4d31035b0 --- /dev/null +++ b/t/10_responses/s3-delete-bucket-encryption.response @@ -0,0 +1,5 @@ +--- +content: '' +headers: + x-amz-request-id: XXXX79DA02E1B7DD4 +status: 200 diff --git a/t/10_responses/s3-delete-bucket-encryption.response.test.yml b/t/10_responses/s3-delete-bucket-encryption.response.test.yml new file mode 100644 index 0000000000..76cfba5836 --- /dev/null +++ b/t/10_responses/s3-delete-bucket-encryption.response.test.yml @@ -0,0 +1,7 @@ +--- +call: DeleteBucketEncryption +service: S3 +Tests: + - expected: XXXX79DA02E1B7DD4 + op: eq + path: _request_id diff --git a/t/10_responses/s3-delete-bucket-inventoryconfiguration.response b/t/10_responses/s3-delete-bucket-inventoryconfiguration.response new file mode 100644 index 0000000000..b84cb5c801 --- /dev/null +++ b/t/10_responses/s3-delete-bucket-inventoryconfiguration.response @@ -0,0 +1,5 @@ +--- +content: '' +headers: + x-amz-request-id: B1B5552784608QQQ +status: 204 diff --git a/t/10_responses/s3-delete-bucket-inventoryconfiguration.response.test.yml b/t/10_responses/s3-delete-bucket-inventoryconfiguration.response.test.yml new file mode 100644 index 0000000000..bac8199831 --- /dev/null +++ b/t/10_responses/s3-delete-bucket-inventoryconfiguration.response.test.yml @@ -0,0 +1,7 @@ +--- +call: DeleteBucketInventoryConfiguration +service: S3 +tests: + - expected: B1B5552784608QQQ + op: eq + path: _request_id diff --git a/t/10_responses/s3-delete-bucket-lifecycle.response b/t/10_responses/s3-delete-bucket-lifecycle.response new file mode 100644 index 0000000000..219dded3a2 --- /dev/null +++ b/t/10_responses/s3-delete-bucket-lifecycle.response @@ -0,0 +1,5 @@ +--- +content: '' +headers: + x-amz-request-id: BQB5552784608B76 +status: 200 diff --git a/t/10_responses/s3-delete-bucket-lifecycle.response.test.yml b/t/10_responses/s3-delete-bucket-lifecycle.response.test.yml new file mode 100644 index 0000000000..e6ff1e2168 --- /dev/null +++ b/t/10_responses/s3-delete-bucket-lifecycle.response.test.yml @@ -0,0 +1,8 @@ +--- +call: DeleteBucketLifecycle +service: S3 +tests: + - expected: BQB5552784608B76 + op: eq + path: _request_id + diff --git a/t/10_responses/s3-delete-bucket-metricsconfiguration.response b/t/10_responses/s3-delete-bucket-metricsconfiguration.response new file mode 100644 index 0000000000..d8abba8dd8 --- /dev/null +++ b/t/10_responses/s3-delete-bucket-metricsconfiguration.response @@ -0,0 +1,5 @@ +--- +content: '' +headers: + x-amz-request-id: QA3379DA02E1B7DD4 +status: 200 diff --git a/t/10_responses/s3-delete-bucket-metricsconfiguration.response.test.yml b/t/10_responses/s3-delete-bucket-metricsconfiguration.response.test.yml new file mode 100644 index 0000000000..ae513294e6 --- /dev/null +++ b/t/10_responses/s3-delete-bucket-metricsconfiguration.response.test.yml @@ -0,0 +1,7 @@ +--- +call: DeleteBucketMetricsConfiguration +service: S3 +Tests: + - expected: QA3379DA02E1B7DD4 + op: eq + path: _request_id diff --git a/t/10_responses/s3-delete-bucket-policy.response b/t/10_responses/s3-delete-bucket-policy.response new file mode 100644 index 0000000000..8e36a7094d --- /dev/null +++ b/t/10_responses/s3-delete-bucket-policy.response @@ -0,0 +1,5 @@ +--- +content: '' +headers: + x-amz-request-id: QQ3379DA02E1B7DD4 +status: 204 diff --git a/t/10_responses/s3-delete-bucket-policy.response.test.yml b/t/10_responses/s3-delete-bucket-policy.response.test.yml new file mode 100644 index 0000000000..bc3c210564 --- /dev/null +++ b/t/10_responses/s3-delete-bucket-policy.response.test.yml @@ -0,0 +1,7 @@ +--- +call: DeleteBucketPolicy +service: S3 +Tests: + - expected: QQ3379DA02E1B7DD4 + op: eq + path: _request_id diff --git a/t/10_responses/s3-delete-bucket-replication.response b/t/10_responses/s3-delete-bucket-replication.response new file mode 100644 index 0000000000..37ee44852f --- /dev/null +++ b/t/10_responses/s3-delete-bucket-replication.response @@ -0,0 +1,5 @@ +--- +content: '' +headers: + x-amz-request-id: CEA1D86C48FB265A +status: 200 diff --git a/t/10_responses/s3-delete-bucket-replication.response.test.yml b/t/10_responses/s3-delete-bucket-replication.response.test.yml new file mode 100644 index 0000000000..142bbd121b --- /dev/null +++ b/t/10_responses/s3-delete-bucket-replication.response.test.yml @@ -0,0 +1,7 @@ +--- +call: DeleteBucketReplication +service: S3 +tests: + - expected: CEA1D86C48FB265A + op: eq + path: _request_id diff --git a/t/10_responses/s3-delete-bucket-website.response b/t/10_responses/s3-delete-bucket-website.response new file mode 100644 index 0000000000..49b3454c1a --- /dev/null +++ b/t/10_responses/s3-delete-bucket-website.response @@ -0,0 +1,5 @@ +--- +content: '' +headers: + x-amz-request-id: C24304B731C3F719 +status: 200 diff --git a/t/10_responses/s3-delete-bucket-website.response.test.yml b/t/10_responses/s3-delete-bucket-website.response.test.yml new file mode 100644 index 0000000000..636865a42c --- /dev/null +++ b/t/10_responses/s3-delete-bucket-website.response.test.yml @@ -0,0 +1,7 @@ +--- +call: DeleteBucketWebsite +service: S3 +tests: + - expected: C24304B731C3F719 + op: eq + path: _request_id diff --git a/t/10_responses/s3-delete-object-tagging.response b/t/10_responses/s3-delete-object-tagging.response new file mode 100644 index 0000000000..ea2556335c --- /dev/null +++ b/t/10_responses/s3-delete-object-tagging.response @@ -0,0 +1,6 @@ +--- +content: '' +headers: + x-amz-request-id: B1B5552784608B76 + x-amz-version-id: B8fS4HKDLzvoZVCxg6imKZTnzWF.jSer +status: 204 diff --git a/t/10_responses/s3-delete-object-tagging.response.test.yml b/t/10_responses/s3-delete-object-tagging.response.test.yml new file mode 100644 index 0000000000..f71a76280d --- /dev/null +++ b/t/10_responses/s3-delete-object-tagging.response.test.yml @@ -0,0 +1,10 @@ +--- +call: DeleteObjectTagging +service: S3 +tests: + - expected: B8fS4HKDLzvoZVCxg6imKZTnzWF.jSer + op: eq + path: VersionId + - expected: B1B5552784608B76 + op: eq + path: _request_id diff --git a/t/10_responses/s3-delete-objects.1.response b/t/10_responses/s3-delete-objects.1.response new file mode 100644 index 0000000000..f3dbeab4c1 --- /dev/null +++ b/t/10_responses/s3-delete-objects.1.response @@ -0,0 +1,16 @@ +--- +content: |- + + + + sample2.txt + + + sample3.txt + AccessDenied + Access Denied + + +headers: + x-amz-request-id: SSB1B5552784608B76 +status: 200 diff --git a/t/10_responses/s3-delete-objects.1.response.test.yml b/t/10_responses/s3-delete-objects.1.response.test.yml new file mode 100644 index 0000000000..0a2bb54674 --- /dev/null +++ b/t/10_responses/s3-delete-objects.1.response.test.yml @@ -0,0 +1,19 @@ +--- +call: DeleteObjects +service: S3 +tests: + - expected: SSB1B5552784608B76 + op: eq + path: _request_id + - expected: sample2.txt + op: eq + path: Deleted.0.Key + - expected: Access Denied + op: eq + path: Errors.0.Message + - expected: sample3.txt + op: eq + path: Errors.0.Key + - expected: AccessDenied + op: eq + path: Errors.0.Code diff --git a/t/10_responses/s3-delete-objects.response b/t/10_responses/s3-delete-objects.response new file mode 100644 index 0000000000..ae30135e99 --- /dev/null +++ b/t/10_responses/s3-delete-objects.response @@ -0,0 +1,24 @@ +--- +content: |- + + + + sample1.txt + + + sample2.txt + + + sample3.txt + AccessDenied + Access Denied + + + sample4.txt + AccessDenied + Access Denied + + +headers: + x-amz-request-id: B1B5552784608B76 +status: 200 diff --git a/t/10_responses/s3-delete-objects.response.test.yml b/t/10_responses/s3-delete-objects.response.test.yml new file mode 100644 index 0000000000..30f8206c53 --- /dev/null +++ b/t/10_responses/s3-delete-objects.response.test.yml @@ -0,0 +1,31 @@ +--- +call: DeleteObjects +service: S3 +tests: + - expected: B1B5552784608B76 + op: eq + path: _request_id + - expected: sample1.txt + op: eq + path: Deleted.0.Key + - expected: sample2.txt + op: eq + path: Deleted.1.Key + - expected: Access Denied + op: eq + path: Errors.0.Message + - expected: sample3.txt + op: eq + path: Errors.0.Key + - expected: AccessDenied + op: eq + path: Errors.0.Code + - expected: Access Denied + op: eq + path: Errors.1.Message + - expected: AccessDenied + op: eq + path: Errors.1.Code + - expected: sample4.txt + op: eq + path: Errors.1.Key diff --git a/t/10_responses/s3-delete-public-accessblock.response b/t/10_responses/s3-delete-public-accessblock.response new file mode 100644 index 0000000000..8679f8140c --- /dev/null +++ b/t/10_responses/s3-delete-public-accessblock.response @@ -0,0 +1,5 @@ +--- +content: '' +headers: + x-amz-request-id: 7E58444613D9E9D1 +status: 200 diff --git a/t/10_responses/s3-delete-public-accessblock.response.test.yml b/t/10_responses/s3-delete-public-accessblock.response.test.yml new file mode 100644 index 0000000000..f4febf86a9 --- /dev/null +++ b/t/10_responses/s3-delete-public-accessblock.response.test.yml @@ -0,0 +1,7 @@ +--- +call: DeletePublicAccessBlock +service: S3 +tests: + - expected: 7E58444613D9E9D1 + op: eq + path: _request_id diff --git a/t/10_responses/s3-get-bucket-accelerateconfiguration.response b/t/10_responses/s3-get-bucket-accelerateconfiguration.response new file mode 100644 index 0000000000..7a1dc5e19a --- /dev/null +++ b/t/10_responses/s3-get-bucket-accelerateconfiguration.response @@ -0,0 +1,7 @@ +--- +content: |- + + Suspended +headers: + x-amz-request-id: 964915ED7C371FA1 +status: 200 diff --git a/t/10_responses/s3-get-bucket-accelerateconfiguration.response.test.yml b/t/10_responses/s3-get-bucket-accelerateconfiguration.response.test.yml new file mode 100644 index 0000000000..1effa68342 --- /dev/null +++ b/t/10_responses/s3-get-bucket-accelerateconfiguration.response.test.yml @@ -0,0 +1,10 @@ +--- +call: GetBucketAccelerateConfiguration +service: S3 +tests: + - expected: Suspended + op: eq + path: Status + - expected: 964915ED7C371FA1 + op: eq + path: _request_id diff --git a/t/10_responses/s3-get-bucket-analytics.response b/t/10_responses/s3-get-bucket-analytics.response new file mode 100644 index 0000000000..3a0eeb9c6f --- /dev/null +++ b/t/10_responses/s3-get-bucket-analytics.response @@ -0,0 +1,9 @@ +--- +content: ~ +headers: + connection: close + date: 'Tue, 01 Nov 2016 21:28:16 GMT' + server: AmazonS3 + x-amz-id-2: XQLL93GOKnkHG1stW1FysFBWzlazvI60lFlWWr0hx5+qWmQD7E6qerrepkTPRtUg9xy6nhKGe74= + x-amz-request-id: A07B155318EEA65F +status: 204 diff --git a/t/10_responses/s3-get-bucket-analytics.response.test.yml b/t/10_responses/s3-get-bucket-analytics.response.test.yml new file mode 100644 index 0000000000..5e83e216a0 --- /dev/null +++ b/t/10_responses/s3-get-bucket-analytics.response.test.yml @@ -0,0 +1,8 @@ +--- +call: GetBucketAnalyticsConfiguration +service: S3 +tests: + - path: _request_id + op: eq + expected: A07B155318EEA65F + diff --git a/t/10_responses/s3-get-bucket-cors.response b/t/10_responses/s3-get-bucket-cors.response new file mode 100644 index 0000000000..31c12a1f46 --- /dev/null +++ b/t/10_responses/s3-get-bucket-cors.response @@ -0,0 +1,6 @@ +--- +content: |- + + http://www.example.comPUTPOSTDELETE*http://www.aws.comPUTPOST* +headers: [] +status: 200 diff --git a/t/10_responses/s3-get-bucket-cors.response.test.yml b/t/10_responses/s3-get-bucket-cors.response.test.yml new file mode 100644 index 0000000000..c99dfd4406 --- /dev/null +++ b/t/10_responses/s3-get-bucket-cors.response.test.yml @@ -0,0 +1,31 @@ +--- +call: GetBucketCors +service: S3 +tests: + - expected: '*' + op: eq + path: CORSRules.0.AllowedHeaders.0 + - expected: PUT + op: eq + path: CORSRules.0.AllowedMethods.0 + - expected: POST + op: eq + path: CORSRules.0.AllowedMethods.1 + - expected: DELETE + op: eq + path: CORSRules.0.AllowedMethods.2 + - expected: http://www.example.com + op: eq + path: CORSRules.0.AllowedOrigins.0 + - expected: '*' + op: eq + path: CORSRules.1.AllowedHeaders.0 + - expected: PUT + op: eq + path: CORSRules.1.AllowedMethods.0 + - expected: POST + op: eq + path: CORSRules.1.AllowedMethods.1 + - expected: http://www.aws.com + op: eq + path: CORSRules.1.AllowedOrigins.0 diff --git a/t/10_responses/s3-get-bucket-encryption.response b/t/10_responses/s3-get-bucket-encryption.response new file mode 100644 index 0000000000..010308e315 --- /dev/null +++ b/t/10_responses/s3-get-bucket-encryption.response @@ -0,0 +1,6 @@ +--- +content: |- + + aws:kmsxxxxxswsddfsdfsrew +headers: [] +status: 200 diff --git a/t/10_responses/s3-get-bucket-encryption.response.test.yml b/t/10_responses/s3-get-bucket-encryption.response.test.yml new file mode 100644 index 0000000000..e71c3d9bbc --- /dev/null +++ b/t/10_responses/s3-get-bucket-encryption.response.test.yml @@ -0,0 +1,10 @@ +--- +call: GetBucketEncryption +service: S3 +tests: + - expected: xxxxxswsddfsdfsrew + op: eq + path: ServerSideEncryptionConfiguration.Rules.0.ApplyServerSideEncryptionByDefault.KMSMasterKeyID + - expected: aws:kms + op: eq + path: ServerSideEncryptionConfiguration.Rules.0.ApplyServerSideEncryptionByDefault.SSEAlgorithm diff --git a/t/10_responses/s3-get-bucket-inventoryconfiguration.response b/t/10_responses/s3-get-bucket-inventoryconfiguration.response new file mode 100644 index 0000000000..038377be5c --- /dev/null +++ b/t/10_responses/s3-get-bucket-inventoryconfiguration.response @@ -0,0 +1,4 @@ +--- +content: 'Test_InventoryfalseCSVarn:aws:s3:::dev.somesite.paws.configWeeklyCurrent' +headers: [] +status: 200 diff --git a/t/10_responses/s3-get-bucket-inventoryconfiguration.response.test.yml b/t/10_responses/s3-get-bucket-inventoryconfiguration.response.test.yml new file mode 100644 index 0000000000..ea816573a1 --- /dev/null +++ b/t/10_responses/s3-get-bucket-inventoryconfiguration.response.test.yml @@ -0,0 +1,22 @@ +--- +call: GetBucketInventoryConfiguration +service: S3 +tests: + - expected: arn:aws:s3:::dev.somesite.paws.config + op: eq + path: InventoryConfiguration.Destination.S3BucketDestination.Bucket + - expected: CSV + op: eq + path: InventoryConfiguration.Destination.S3BucketDestination.Format + - expected: Test_Inventory + op: eq + path: InventoryConfiguration.Id + - expected: Current + op: eq + path: InventoryConfiguration.IncludedObjectVersions + - expected: 0 + op: eq + path: InventoryConfiguration.IsEnabled + - expected: Weekly + op: eq + path: InventoryConfiguration.Schedule.Frequency diff --git a/t/10_responses/s3-get-bucket-lifecycleconfiguration.response b/t/10_responses/s3-get-bucket-lifecycleconfiguration.response new file mode 100644 index 0000000000..58f00dce7d --- /dev/null +++ b/t/10_responses/s3-get-bucket-lifecycleconfiguration.response @@ -0,0 +1,6 @@ +--- +content: |- + + Rule1testEnabled365 +headers: [] +status: 200 diff --git a/t/10_responses/s3-get-bucket-lifecycleconfiguration.response.test.yml b/t/10_responses/s3-get-bucket-lifecycleconfiguration.response.test.yml new file mode 100644 index 0000000000..43dc54e92d --- /dev/null +++ b/t/10_responses/s3-get-bucket-lifecycleconfiguration.response.test.yml @@ -0,0 +1,19 @@ +--- +call: GetBucketLifecycleConfiguration +service: S3 +tests: + - expected: 365 + op: eq + path: Rules.0.Expiration.Days + - expected: test + op: eq + path: Rules.0.Filter.And.Prefix + - expected: test + op: eq + path: Rules.0.Filter.Prefix + - expected: Rule1 + op: eq + path: Rules.0.ID + - expected: Enabled + op: eq + path: Rules.0.Status diff --git a/t/10_responses/s3-get-bucket-location.response b/t/10_responses/s3-get-bucket-location.response index 1bb94f43aa..2e300ea7f6 100644 --- a/t/10_responses/s3-get-bucket-location.response +++ b/t/10_responses/s3-get-bucket-location.response @@ -2,5 +2,6 @@ content: | EU -headers: [] +headers: + content-type: application/xml status: 200 diff --git a/t/10_responses/s3-get-bucket-location.response.test.yml b/t/10_responses/s3-get-bucket-location.response.test.yml index cb33d40446..37a6840eee 100644 --- a/t/10_responses/s3-get-bucket-location.response.test.yml +++ b/t/10_responses/s3-get-bucket-location.response.test.yml @@ -1,5 +1,4 @@ --- -todo: 'S3 is not stable' call: GetBucketLocation service: S3 tests: diff --git a/t/10_responses/s3-get-bucket-logging.1.response b/t/10_responses/s3-get-bucket-logging.1.response new file mode 100644 index 0000000000..01879ffac4 --- /dev/null +++ b/t/10_responses/s3-get-bucket-logging.1.response @@ -0,0 +1,5 @@ +--- +content: 'mybucketlogs mybucket-access_loguser@company.comREADuser@company.comREAD' +headers: + x-amz-request-id: 6B2C62638C5862C3 +status: 200 diff --git a/t/10_responses/s3-get-bucket-logging.1.response.test.yml b/t/10_responses/s3-get-bucket-logging.1.response.test.yml new file mode 100644 index 0000000000..941fd1d823 --- /dev/null +++ b/t/10_responses/s3-get-bucket-logging.1.response.test.yml @@ -0,0 +1,23 @@ +--- +call: GetBucketLogging +service: S3 +tests: + - expected: mybucketlogs + op: eq + path: LoggingEnabled.TargetBucket + - expected: user@company.com + op: eq + path: LoggingEnabled.TargetGrants.0.Grantee.EmailAddress + - expected: READ + op: eq + path: LoggingEnabled.TargetGrants.0.Permission + - expected: mybucket-access_log + op: eq + path: LoggingEnabled.TargetPrefix + - expected: user@company.com + op: eq + path: LoggingEnabled.TargetGrants.1.Grantee.EmailAddress + - expected: READ + op: eq + path: LoggingEnabled.TargetGrants.1.Permission + diff --git a/t/10_responses/s3-get-bucket-logging.response b/t/10_responses/s3-get-bucket-logging.response index 780a5bd8cb..c1d9b876b9 100644 --- a/t/10_responses/s3-get-bucket-logging.response +++ b/t/10_responses/s3-get-bucket-logging.response @@ -4,11 +4,10 @@ content: | mybucketlogs - mybucket-access_log-/ + mybucket-access_log - + user@company.com READ @@ -16,5 +15,6 @@ content: | -headers: [] +headers: + x-amz-request-id: 6B2C62638C5862C3 status: 200 diff --git a/t/10_responses/s3-get-bucket-logging.response.test.yml b/t/10_responses/s3-get-bucket-logging.response.test.yml index 623797ae6d..3affdc1e52 100644 --- a/t/10_responses/s3-get-bucket-logging.response.test.yml +++ b/t/10_responses/s3-get-bucket-logging.response.test.yml @@ -11,6 +11,6 @@ tests: - expected: READ op: eq path: LoggingEnabled.TargetGrants.0.Permission - - expected: mybucket-access_log-/ + - expected: mybucket-access_log op: eq path: LoggingEnabled.TargetPrefix diff --git a/t/10_responses/s3-get-bucket-metricsconfiguration.response b/t/10_responses/s3-get-bucket-metricsconfiguration.response new file mode 100644 index 0000000000..ba662a8ab7 --- /dev/null +++ b/t/10_responses/s3-get-bucket-metricsconfiguration.response @@ -0,0 +1,4 @@ +--- +content: 'ImportantBlueDocumentsdocumentspriorityhighclassblue' +headers: [] +status: 200 diff --git a/t/10_responses/s3-get-bucket-metricsconfiguration.response.test.yml b/t/10_responses/s3-get-bucket-metricsconfiguration.response.test.yml new file mode 100644 index 0000000000..c49862bf17 --- /dev/null +++ b/t/10_responses/s3-get-bucket-metricsconfiguration.response.test.yml @@ -0,0 +1,22 @@ +--- +call: GetBucketMetricsConfiguration +service: S3 +tests: + - expected: documents + op: eq + path: MetricsConfiguration.Filter.And.Prefix + - expected: priority + op: eq + path: MetricsConfiguration.Filter.And.Tags.0.Key + - expected: high + op: eq + path: MetricsConfiguration.Filter.And.Tags.0.Value + - expected: class + op: eq + path: MetricsConfiguration.Filter.And.Tags.1.Key + - expected: blue + op: eq + path: MetricsConfiguration.Filter.And.Tags.1.Value + - expected: ImportantBlueDocuments + op: eq + path: MetricsConfiguration.Id diff --git a/t/10_responses/s3-get-bucket-notificationconfiguration.response b/t/10_responses/s3-get-bucket-notificationconfiguration.response new file mode 100644 index 0000000000..a818b5d5da --- /dev/null +++ b/t/10_responses/s3-get-bucket-notificationconfiguration.response @@ -0,0 +1,7 @@ +--- +content: |- + + EventOneoffPawsarn:aws:sqs:us-east-1:985173205561:oneoffpawss3:ObjectCreated:Puts3:ObjectCreated:Posts3:ObjectCreated:CopySuffix.jpg +headers: + x-amz-request-id: 6B2C62638C5862C3 +status: 200 diff --git a/t/10_responses/s3-get-bucket-notificationconfiguration.response.test.yml b/t/10_responses/s3-get-bucket-notificationconfiguration.response.test.yml new file mode 100644 index 0000000000..cd3d4805dd --- /dev/null +++ b/t/10_responses/s3-get-bucket-notificationconfiguration.response.test.yml @@ -0,0 +1,28 @@ +--- +call: GetBucketNotificationConfiguration +service: S3 +tests: + - expected: s3:ObjectCreated:Put + op: eq + path: QueueConfigurations.0.Events.0 + - expected: s3:ObjectCreated:Post + op: eq + path: QueueConfigurations.0.Events.1 + - expected: s3:ObjectCreated:Copy + op: eq + path: QueueConfigurations.0.Events.2 + - expected: Suffix + op: eq + path: QueueConfigurations.0.Filter.Key.FilterRules.0.Name + - expected: .jpg + op: eq + path: QueueConfigurations.0.Filter.Key.FilterRules.0.Value + - expected: EventOneoffPaws + op: eq + path: QueueConfigurations.0.Id + - expected: arn:aws:sqs:us-east-1:985173205561:oneoffpaws + op: eq + path: QueueConfigurations.0.QueueArn + - expected: 6B2C62638C5862C3 + op: eq + path: _request_id diff --git a/t/10_responses/s3-get-bucket-policy.response b/t/10_responses/s3-get-bucket-policy.response index 57be74c696..efe3acc3b9 100644 --- a/t/10_responses/s3-get-bucket-policy.response +++ b/t/10_responses/s3-get-bucket-policy.response @@ -1,5 +1,5 @@ --- -content: | - {"Version":"2012-10-17","Statement":[{"Sid":"AddPerm","Effect":"Allow","Principal":"*","Action":"s3:GetObject","Resource":"arn:aws:s3:::bucket-name/*"}]} -headers: [] +content: '{"Version":"2012-10-17","Statement":[{"Sid":"AddPerm","Effect":"Allow","Principal":"*","Action":"s3:GetObject","Resource":"arn:aws:s3:::bucket-name/*"}]}' +headers: + content-type: application/json status: 200 diff --git a/t/10_responses/s3-get-bucket-policy.response.test.yml b/t/10_responses/s3-get-bucket-policy.response.test.yml index d047bd4c56..4412b70cb7 100644 --- a/t/10_responses/s3-get-bucket-policy.response.test.yml +++ b/t/10_responses/s3-get-bucket-policy.response.test.yml @@ -1,4 +1,7 @@ --- -todo: test not completed call: GetBucketPolicy service: S3 +tests: + - expected: '{"Version":"2012-10-17","Statement":[{"Sid":"AddPerm","Effect":"Allow","Principal":"*","Action":"s3:GetObject","Resource":"arn:aws:s3:::bucket-name/*"}]}' + op: eq + path: Policy diff --git a/t/10_responses/s3-get-bucket-policystatus.response b/t/10_responses/s3-get-bucket-policystatus.response new file mode 100644 index 0000000000..2fec692c59 --- /dev/null +++ b/t/10_responses/s3-get-bucket-policystatus.response @@ -0,0 +1,7 @@ +--- +content: |- + + true +headers: + x-amz-request-id: FBFF735467D561F6 +status: 200 diff --git a/t/10_responses/s3-get-bucket-policystatus.response.test.yml b/t/10_responses/s3-get-bucket-policystatus.response.test.yml new file mode 100644 index 0000000000..a37a7567a6 --- /dev/null +++ b/t/10_responses/s3-get-bucket-policystatus.response.test.yml @@ -0,0 +1,10 @@ +--- +call: GetBucketPolicyStatus +service: S3 +tests: + - expected: 1 + op: eq + path: PolicyStatus.IsPublic + - expected: FBFF735467D561F6 + op: eq + path: _request_id diff --git a/t/10_responses/s3-get-bucket-replication.response b/t/10_responses/s3-get-bucket-replication.response new file mode 100644 index 0000000000..96a0bba220 --- /dev/null +++ b/t/10_responses/s3-get-bucket-replication.response @@ -0,0 +1,7 @@ +--- +content: |- + + Rule11EnabledDisabledarn:aws:s3:::oneoffpaws.configarn:aws:iam::985173205561:role/service-role/s3crr_role_for_oneoffpaws_to_oneoffpaws.config +headers: + x-amz-request-id: B78D1D3D1B577FB1 +status: 200 diff --git a/t/10_responses/s3-get-bucket-replication.response.test.yml b/t/10_responses/s3-get-bucket-replication.response.test.yml new file mode 100644 index 0000000000..b4b0370cd7 --- /dev/null +++ b/t/10_responses/s3-get-bucket-replication.response.test.yml @@ -0,0 +1,28 @@ +--- +call: GetBucketReplication +service: S3 +tests: + - expected: arn:aws:iam::985173205561:role/service-role/s3crr_role_for_oneoffpaws_to_oneoffpaws.config + op: eq + path: ReplicationConfiguration.Role + - expected: Disabled + op: eq + path: ReplicationConfiguration.Rules.0.DeleteMarkerReplication.Status + - expected: arn:aws:s3:::oneoffpaws.config + op: eq + path: ReplicationConfiguration.Rules.0.Destination.Bucket + - expected: Rule1 + op: eq + path: ReplicationConfiguration.Rules.0.ID + - expected: 1 + op: eq + path: ReplicationConfiguration.Rules.0.Priority + - expected: Enabled + op: eq + path: ReplicationConfiguration.Rules.0.SourceSelectionCriteria.SseKmsEncryptedObjects.Status + - expected: Enabled + op: eq + path: ReplicationConfiguration.Rules.0.Status + - expected: B78D1D3D1B577FB1 + op: eq + path: _request_id diff --git a/t/10_responses/s3-get-bucket-requestpayment.response b/t/10_responses/s3-get-bucket-requestpayment.response new file mode 100644 index 0000000000..7b04d8e5d7 --- /dev/null +++ b/t/10_responses/s3-get-bucket-requestpayment.response @@ -0,0 +1,7 @@ +--- +content: |- + + Requester +headers: + x-amz-request-id: 33EE6872697D6DE1 +status: 200 diff --git a/t/10_responses/s3-get-bucket-requestpayment.response.test.yml b/t/10_responses/s3-get-bucket-requestpayment.response.test.yml new file mode 100644 index 0000000000..b7d2677bd8 --- /dev/null +++ b/t/10_responses/s3-get-bucket-requestpayment.response.test.yml @@ -0,0 +1,10 @@ +--- +call: GetBucketRequestPayment +service: S3 +tests: + - expected: Requester + op: eq + path: Payer + - expected: 33EE6872697D6DE1 + op: eq + path: _request_id diff --git a/t/10_responses/s3-get-bucket-tagging.response b/t/10_responses/s3-get-bucket-tagging.response new file mode 100644 index 0000000000..d5258ba7e8 --- /dev/null +++ b/t/10_responses/s3-get-bucket-tagging.response @@ -0,0 +1,7 @@ +--- +content: |- + + AKeya valuebKeyb value +headers: + x-amz-request-id: 6B94E6B432EA5788 +status: 200 diff --git a/t/10_responses/s3-get-bucket-tagging.response.test.yml b/t/10_responses/s3-get-bucket-tagging.response.test.yml new file mode 100644 index 0000000000..0c14c32241 --- /dev/null +++ b/t/10_responses/s3-get-bucket-tagging.response.test.yml @@ -0,0 +1,19 @@ +--- +call: GetBucketTagging +service: S3 +tests: + - expected: AKey + op: eq + path: TagSet.0.Key + - expected: a value + op: eq + path: TagSet.0.Value + - expected: bKey + op: eq + path: TagSet.1.Key + - expected: b value + op: eq + path: TagSet.1.Value + - expected: 6B94E6B432EA5788 + op: eq + path: _request_id diff --git a/t/10_responses/s3-get-bucket-versioning.response b/t/10_responses/s3-get-bucket-versioning.response new file mode 100644 index 0000000000..bd75d08957 --- /dev/null +++ b/t/10_responses/s3-get-bucket-versioning.response @@ -0,0 +1,7 @@ +--- +content: |- + + Enabled +headers: + x-amz-request-id: 353AB75B94C091C8 +status: 200 diff --git a/t/10_responses/s3-get-bucket-versioning.response.test.yml b/t/10_responses/s3-get-bucket-versioning.response.test.yml new file mode 100644 index 0000000000..63c339996d --- /dev/null +++ b/t/10_responses/s3-get-bucket-versioning.response.test.yml @@ -0,0 +1,10 @@ +--- +call: GetBucketVersioning +service: S3 +tests: + - expected: Enabled + op: eq + path: Status + - expected: 353AB75B94C091C8 + op: eq + path: _request_id diff --git a/t/10_responses/s3-get-bucket-website.response b/t/10_responses/s3-get-bucket-website.response new file mode 100644 index 0000000000..4f2cd81c06 --- /dev/null +++ b/t/10_responses/s3-get-bucket-website.response @@ -0,0 +1,7 @@ +--- +content: |- + + index.htmlSomeErrorDocument.html +headers: + x-amz-request-id: 4F549587A44E64B2 +status: 200 diff --git a/t/10_responses/s3-get-bucket-website.response.test.yml b/t/10_responses/s3-get-bucket-website.response.test.yml new file mode 100644 index 0000000000..f4b230fba3 --- /dev/null +++ b/t/10_responses/s3-get-bucket-website.response.test.yml @@ -0,0 +1,13 @@ +--- +call: GetBucketWebsite +service: S3 +tests: + - expected: SomeErrorDocument.html + op: eq + path: ErrorDocument.Key + - expected: index.html + op: eq + path: IndexDocument.Suffix + - expected: 4F549587A44E64B2 + op: eq + path: _request_id diff --git a/t/10_responses/s3-get-object-acl.response b/t/10_responses/s3-get-object-acl.response new file mode 100644 index 0000000000..efdc38f6b0 --- /dev/null +++ b/t/10_responses/s3-get-object-acl.response @@ -0,0 +1,7 @@ +--- +content: |- + + 61fc60cb3564d2688646074ceaa202e56ee65cf6e56c28b3a034eabd193d54c8mr squanchy61fc60cb3564d2688646074ceaa202e56ee65cf6e56c28b3a034eabd193d54c8mr squanchyFULL_CONTROL +headers: + x-amz-request-id: 1B2A37336046737E +status: 200 diff --git a/t/10_responses/s3-get-object-acl.response.test.yml b/t/10_responses/s3-get-object-acl.response.test.yml new file mode 100644 index 0000000000..bb9b118827 --- /dev/null +++ b/t/10_responses/s3-get-object-acl.response.test.yml @@ -0,0 +1,25 @@ +--- +call: GetObjectAcl +service: S3 +tests: + - expected: mr squanchy + op: eq + path: Grants.0.Grantee.DisplayName + - expected: 61fc60cb3564d2688646074ceaa202e56ee65cf6e56c28b3a034eabd193d54c8 + op: eq + path: Grants.0.Grantee.ID + - expected: CanonicalUser + op: eq + path: Grants.0.Grantee.Type + - expected: FULL_CONTROL + op: eq + path: Grants.0.Permission + - expected: mr squanchy + op: eq + path: Owner.DisplayName + - expected: 61fc60cb3564d2688646074ceaa202e56ee65cf6e56c28b3a034eabd193d54c8 + op: eq + path: Owner.ID + - expected: 1B2A37336046737E + op: eq + path: _request_id diff --git a/t/10_responses/s3-get-object-legalhold.response b/t/10_responses/s3-get-object-legalhold.response new file mode 100644 index 0000000000..d8d35d8c35 --- /dev/null +++ b/t/10_responses/s3-get-object-legalhold.response @@ -0,0 +1,7 @@ +--- +content: |- + + ON +headers: + x-amz-request-id: 913E7AF31729005D +status: 200 diff --git a/t/10_responses/s3-get-object-legalhold.response.test.yml b/t/10_responses/s3-get-object-legalhold.response.test.yml new file mode 100644 index 0000000000..bda993730b --- /dev/null +++ b/t/10_responses/s3-get-object-legalhold.response.test.yml @@ -0,0 +1,10 @@ +--- +call: GetObjectLegalHold +service: S3 +tests: + - expected: ON + op: eq + path: LegalHold.Status + - expected: 913E7AF31729005D + op: eq + path: _request_id diff --git a/t/10_responses/s3-get-object-lockconfiguration.response b/t/10_responses/s3-get-object-lockconfiguration.response new file mode 100644 index 0000000000..89640fcd11 --- /dev/null +++ b/t/10_responses/s3-get-object-lockconfiguration.response @@ -0,0 +1,7 @@ +--- +content: |- + + Enabled +headers: + x-amz-request-id: A4A21CAF428E490D +status: 200 diff --git a/t/10_responses/s3-get-object-lockconfiguration.response.test.yml b/t/10_responses/s3-get-object-lockconfiguration.response.test.yml new file mode 100644 index 0000000000..e102de940e --- /dev/null +++ b/t/10_responses/s3-get-object-lockconfiguration.response.test.yml @@ -0,0 +1,10 @@ +--- +call: GetObjectLockConfiguration +service: S3 +tests: + - expected: Enabled + op: eq + path: ObjectLockConfiguration.ObjectLockEnabled + - expected: A4A21CAF428E490D + op: eq + path: _request_id diff --git a/t/10_responses/s3-get-object-retention.response b/t/10_responses/s3-get-object-retention.response new file mode 100644 index 0000000000..d807f72f7b --- /dev/null +++ b/t/10_responses/s3-get-object-retention.response @@ -0,0 +1,7 @@ +--- +content: |- + + GOVERNANCE2070-01-01T01:00:00.000Z +headers: + x-amz-request-id: 1C0808712A62A80F +status: 200 diff --git a/t/10_responses/s3-get-object-retention.response.test.yml b/t/10_responses/s3-get-object-retention.response.test.yml new file mode 100644 index 0000000000..b9d9cdfa83 --- /dev/null +++ b/t/10_responses/s3-get-object-retention.response.test.yml @@ -0,0 +1,13 @@ +--- +call: GetObjectRetention +service: S3 +tests: + - expected: GOVERNANCE + op: eq + path: Retention.Mode + - expected: 2070-01-01T01:00:00.000Z + op: eq + path: Retention.RetainUntilDate + - expected: 1C0808712A62A80F + op: eq + path: _request_id diff --git a/t/10_responses/s3-get-object-tagging.response b/t/10_responses/s3-get-object-tagging.response new file mode 100644 index 0000000000..2288c69cc6 --- /dev/null +++ b/t/10_responses/s3-get-object-tagging.response @@ -0,0 +1,8 @@ +--- +content: |- + + AKeya valuebKeyb value +headers: + x-amz-request-id: B1B5552784608B76 + x-amz-version-id: B8fS4HKDLzvoZVCxg6imKZTnzWF.jSer +status: 200 diff --git a/t/10_responses/s3-get-object-tagging.response.test.yml b/t/10_responses/s3-get-object-tagging.response.test.yml new file mode 100644 index 0000000000..a03a49a5f7 --- /dev/null +++ b/t/10_responses/s3-get-object-tagging.response.test.yml @@ -0,0 +1,22 @@ +--- +call: GetObjectTagging +service: S3 +tests: + - expected: AKey + op: eq + path: TagSet.0.Key + - expected: a value + op: eq + path: TagSet.0.Value + - expected: bKey + op: eq + path: TagSet.1.Key + - expected: b value + op: eq + path: TagSet.1.Value + - expected: B8fS4HKDLzvoZVCxg6imKZTnzWF.jSer + op: eq + path: VersionId + - expected: B1B5552784608B76 + op: eq + path: _request_id diff --git a/t/10_responses/s3-get-object-torrent.response b/t/10_responses/s3-get-object-torrent.response new file mode 100644 index 0000000000..e3e1fa7724 --- /dev/null +++ b/t/10_responses/s3-get-object-torrent.response @@ -0,0 +1,5 @@ +--- +content: "d8:announce42:http://tracker.amazonaws.com:6969/announce13:announce-listll42:http://tracker.amazonaws.com:6969/announceee4:infod6:lengthi7211e4:name8:fish.jpg12:piece lengthi262144e6:pieces20:º©Çªõ—­\x02\rß{>‚æ%[+€\x1912:x-amz-bucket10:oneoffpaws9:x-amz-key8:fish.jpgee" +headers: + x-amz-request-id: 3B4BFFBD40B03491 +status: 200 diff --git a/t/10_responses/s3-get-object-torrent.response.test.yml b/t/10_responses/s3-get-object-torrent.response.test.yml new file mode 100644 index 0000000000..8e372b139b --- /dev/null +++ b/t/10_responses/s3-get-object-torrent.response.test.yml @@ -0,0 +1,10 @@ +--- +call: GetObjectTorrent +service: S3 +tests: + - expected: "d8:announce42:http://tracker.amazonaws.com:6969/announce13:announce-listll42:http://tracker.amazonaws.com:6969/announceee4:infod6:lengthi7211e4:name8:fish.jpg12:piece lengthi262144e6:pieces20:º©Çªõ—­\x02\rß{>‚æ%[+€\x1912:x-amz-bucket10:oneoffpaws9:x-amz-key8:fish.jpgee" + op: eq + path: Body + - expected: 3B4BFFBD40B03491 + op: eq + path: _request_id diff --git a/t/10_responses/s3-get-object.2.response.test.yml b/t/10_responses/s3-get-object.2.response.test.yml index d41ee729a5..ea883cba92 100644 --- a/t/10_responses/s3-get-object.2.response.test.yml +++ b/t/10_responses/s3-get-object.2.response.test.yml @@ -7,7 +7,10 @@ tests: expected: E4845140F3F4C4AB - path: message op: eq - expected: Not Found + expected: The specified key does not exist. - path: code + op: eq + expected: NoSuchKey + - path: http_status op: eq expected: 404 diff --git a/t/10_responses/s3-get-object.tagging.response b/t/10_responses/s3-get-object.tagging.response new file mode 100644 index 0000000000..2032a89ae1 --- /dev/null +++ b/t/10_responses/s3-get-object.tagging.response @@ -0,0 +1,17 @@ +--- +content: |- + + + + + move_to_glacier3 + 3 + + move_to_glacier4 + 4 + + + +headers: + x-amz-request-id: EB2083CE119102A4 +status: 200 diff --git a/t/10_responses/s3-get-object.tagging.response.test.yml b/t/10_responses/s3-get-object.tagging.response.test.yml new file mode 100644 index 0000000000..af08a12021 --- /dev/null +++ b/t/10_responses/s3-get-object.tagging.response.test.yml @@ -0,0 +1,22 @@ +--- +call: GetObjectTagging +service: S3 +tests: + - path: TagSet.0.Key + op: eq + expected: move_to_glacier3 + - path: TagSet.0.Value + op: eq + expected: 3 + - path: TagSet.1.Key + op: eq + expected: move_to_glacier4 + - path: TagSet.1.Value + op: eq + expected: 4 + - path: _request_id + op: eq + expected: EB2083CE119102A4 + - path: VersionId + op: eq + expected: diff --git a/t/10_responses/s3-get-public-accessblock.response b/t/10_responses/s3-get-public-accessblock.response new file mode 100644 index 0000000000..b52531ff96 --- /dev/null +++ b/t/10_responses/s3-get-public-accessblock.response @@ -0,0 +1,7 @@ +--- +content: |- + + truetruetruetrue +headers: + x-amz-request-id: A7B79823CE53314F +status: 200 diff --git a/t/10_responses/s3-get-public-accessblock.response.test.yml b/t/10_responses/s3-get-public-accessblock.response.test.yml new file mode 100644 index 0000000000..c187ca7021 --- /dev/null +++ b/t/10_responses/s3-get-public-accessblock.response.test.yml @@ -0,0 +1,19 @@ +--- +call: GetPublicAccessBlock +service: S3 +tests: + - expected: 1 + op: eq + path: PublicAccessBlockConfiguration.BlockPublicAcls + - expected: 1 + op: eq + path: PublicAccessBlockConfiguration.BlockPublicPolicy + - expected: 1 + op: eq + path: PublicAccessBlockConfiguration.IgnorePublicAcls + - expected: 1 + op: eq + path: PublicAccessBlockConfiguration.RestrictPublicBuckets + - expected: A7B79823CE53314F + op: eq + path: _request_id diff --git a/t/10_responses/s3-head-bucket.response b/t/10_responses/s3-head-bucket.response new file mode 100644 index 0000000000..cce4d61263 --- /dev/null +++ b/t/10_responses/s3-head-bucket.response @@ -0,0 +1,5 @@ +--- +content: '' +headers: + x-amz-request-id: 0EFD66B0EB339181 +status: 200 diff --git a/t/10_responses/s3-head-bucket.response.test.yml b/t/10_responses/s3-head-bucket.response.test.yml new file mode 100644 index 0000000000..43f1b7be88 --- /dev/null +++ b/t/10_responses/s3-head-bucket.response.test.yml @@ -0,0 +1,7 @@ +--- +call: HeadBucket +service: S3 +tests: + - expected: 0EFD66B0EB339181 + op: eq + path: _request_id diff --git a/t/10_responses/s3-head-object.response b/t/10_responses/s3-head-object.response new file mode 100644 index 0000000000..ddce40002d --- /dev/null +++ b/t/10_responses/s3-head-object.response @@ -0,0 +1,11 @@ +--- +content: '' +headers: + x-amz-request-id: 69532AF8EC8DDCB9 + accept-ranges: bytes + Content-Length: 7211 + Content-Type: image/jpeg + ETag: 4eb621a762b59d1a7130c1904e23a6e2 + Last-Modified: 'Tue, 10 Dec 2019 23:48:17 GMT' + x-amz-version-id: pl_2CX7EKJGuzliYwf0ad0nrIpip_4LY +status: 200 diff --git a/t/10_responses/s3-head-object.response.test.yml b/t/10_responses/s3-head-object.response.test.yml new file mode 100644 index 0000000000..b7d0c5678f --- /dev/null +++ b/t/10_responses/s3-head-object.response.test.yml @@ -0,0 +1,25 @@ +--- +call: HeadObject +service: S3 +tests: + - expected: bytes + op: eq + path: AcceptRanges + - expected: 7211 + op: eq + path: ContentLength + - expected: image/jpeg + op: eq + path: ContentType + - expected: 4eb621a762b59d1a7130c1904e23a6e2 + op: eq + path: ETag + - expected: 'Tue, 10 Dec 2019 23:48:17 GMT' + op: eq + path: LastModified + - expected: pl_2CX7EKJGuzliYwf0ad0nrIpip_4LY + op: eq + path: VersionId + - expected: 69532AF8EC8DDCB9 + op: eq + path: _request_id diff --git a/t/10_responses/s3-list-bucket-analyticsconfigurations.response b/t/10_responses/s3-list-bucket-analyticsconfigurations.response new file mode 100644 index 0000000000..e9e4b6b69f --- /dev/null +++ b/t/10_responses/s3-list-bucket-analyticsconfigurations.response @@ -0,0 +1,5 @@ +--- +content: 'false' +headers: + x-amz-request-id: E671BFABB8521E40 +status: 200 diff --git a/t/10_responses/s3-list-bucket-analyticsconfigurations.response.test.yml b/t/10_responses/s3-list-bucket-analyticsconfigurations.response.test.yml new file mode 100644 index 0000000000..77da8f973f --- /dev/null +++ b/t/10_responses/s3-list-bucket-analyticsconfigurations.response.test.yml @@ -0,0 +1,10 @@ +--- +call: ListBucketAnalyticsConfigurations +service: S3 +tests: + - expected: 0 + op: eq + path: IsTruncated + - expected: E671BFABB8521E40 + op: eq + path: _request_id diff --git a/t/10_responses/s3-list-bucket-inventoryconfigurations.response b/t/10_responses/s3-list-bucket-inventoryconfigurations.response new file mode 100644 index 0000000000..c2178fc87b --- /dev/null +++ b/t/10_responses/s3-list-bucket-inventoryconfigurations.response @@ -0,0 +1,4 @@ +--- +content: 'Test_InventoryfalseCSVarn:aws:s3:::dev.somesite.paws.configWeeklyCurrentfalse' +headers: [] +status: 200 diff --git a/t/10_responses/s3-list-bucket-inventoryconfigurations.response.test.yml b/t/10_responses/s3-list-bucket-inventoryconfigurations.response.test.yml new file mode 100644 index 0000000000..d9900607c8 --- /dev/null +++ b/t/10_responses/s3-list-bucket-inventoryconfigurations.response.test.yml @@ -0,0 +1,25 @@ +--- +call: ListBucketInventoryConfigurations +service: S3 +tests: + - expected: arn:aws:s3:::dev.somesite.paws.config + op: eq + path: InventoryConfigurationList.0.Destination.S3BucketDestination.Bucket + - expected: CSV + op: eq + path: InventoryConfigurationList.0.Destination.S3BucketDestination.Format + - expected: Test_Inventory + op: eq + path: InventoryConfigurationList.0.Id + - expected: Current + op: eq + path: InventoryConfigurationList.0.IncludedObjectVersions + - expected: 0 + op: eq + path: InventoryConfigurationList.0.IsEnabled + - expected: Weekly + op: eq + path: InventoryConfigurationList.0.Schedule.Frequency + - expected: 0 + op: eq + path: IsTruncated diff --git a/t/10_responses/s3-list-bucket-metricsconfigurations.response b/t/10_responses/s3-list-bucket-metricsconfigurations.response new file mode 100644 index 0000000000..f163a290cd --- /dev/null +++ b/t/10_responses/s3-list-bucket-metricsconfigurations.response @@ -0,0 +1,4 @@ +--- +content: 'ImportantBlueDocumentsdocumentspriorityhighclassbluefalse' +headers: [] +status: 200 diff --git a/t/10_responses/s3-list-bucket-metricsconfigurations.response.test.yml b/t/10_responses/s3-list-bucket-metricsconfigurations.response.test.yml new file mode 100644 index 0000000000..1346d88045 --- /dev/null +++ b/t/10_responses/s3-list-bucket-metricsconfigurations.response.test.yml @@ -0,0 +1,25 @@ +--- +call: ListBucketMetricsConfigurations +service: S3 +tests: + - expected: 0 + op: eq + path: IsTruncated + - expected: documents + op: eq + path: MetricsConfigurationList.0.Filter.And.Prefix + - expected: priority + op: eq + path: MetricsConfigurationList.0.Filter.And.Tags.0.Key + - expected: high + op: eq + path: MetricsConfigurationList.0.Filter.And.Tags.0.Value + - expected: class + op: eq + path: MetricsConfigurationList.0.Filter.And.Tags.1.Key + - expected: blue + op: eq + path: MetricsConfigurationList.0.Filter.And.Tags.1.Value + - expected: ImportantBlueDocuments + op: eq + path: MetricsConfigurationList.0.Id diff --git a/t/10_responses/s3-list-object-versions.response.test.yml b/t/10_responses/s3-list-object-versions.response.test.yml index 1a8f103dcf..de918dae83 100644 --- a/t/10_responses/s3-list-object-versions.response.test.yml +++ b/t/10_responses/s3-list-object-versions.response.test.yml @@ -1,4 +1,3 @@ --- -todo: test not completed call: ListObjectVersions service: S3 diff --git a/t/10_responses/s3-put-bucket-accelerateconfiguration.response b/t/10_responses/s3-put-bucket-accelerateconfiguration.response new file mode 100644 index 0000000000..cd6aaf3444 --- /dev/null +++ b/t/10_responses/s3-put-bucket-accelerateconfiguration.response @@ -0,0 +1,5 @@ +--- +content: '' +headers: + x-amz-request-id: BA418D17C565D929 +status: 200 diff --git a/t/10_responses/s3-put-bucket-accelerateconfiguration.response.test.yml b/t/10_responses/s3-put-bucket-accelerateconfiguration.response.test.yml new file mode 100644 index 0000000000..82556f2b2f --- /dev/null +++ b/t/10_responses/s3-put-bucket-accelerateconfiguration.response.test.yml @@ -0,0 +1,7 @@ +--- +call: PutBucketAccelerateConfiguration +service: S3 +tests: + - expected: BA418D17C565D929 + op: eq + path: _request_id diff --git a/t/10_responses/s3-put-bucket-acl.response b/t/10_responses/s3-put-bucket-acl.response new file mode 100644 index 0000000000..6d207be81c --- /dev/null +++ b/t/10_responses/s3-put-bucket-acl.response @@ -0,0 +1,5 @@ +--- +content: '' +headers: + x-amz-request-id: 6A1E957777D49C68 +status: 200 diff --git a/t/10_responses/s3-put-bucket-acl.response.test.yml b/t/10_responses/s3-put-bucket-acl.response.test.yml new file mode 100644 index 0000000000..a96e011e7e --- /dev/null +++ b/t/10_responses/s3-put-bucket-acl.response.test.yml @@ -0,0 +1,7 @@ +--- +call: PutBucketAcl +service: S3 +tests: + - expected: 6A1E957777D49C68 + op: eq + path: _request_id diff --git a/t/10_responses/s3-put-bucket-analyticsconfiguration.response b/t/10_responses/s3-put-bucket-analyticsconfiguration.response new file mode 100644 index 0000000000..3ae4883e33 --- /dev/null +++ b/t/10_responses/s3-put-bucket-analyticsconfiguration.response @@ -0,0 +1,5 @@ +--- +content: '' +headers: + x-amz-request-id: 40015A2BB4D1F1B0 +status: 200 diff --git a/t/10_responses/s3-put-bucket-analyticsconfiguration.response.test.yml b/t/10_responses/s3-put-bucket-analyticsconfiguration.response.test.yml new file mode 100644 index 0000000000..1d6cdb8855 --- /dev/null +++ b/t/10_responses/s3-put-bucket-analyticsconfiguration.response.test.yml @@ -0,0 +1,7 @@ +--- +call: PutBucketAnalyticsConfiguration +service: S3 +tests: + - expected: 40015A2BB4D1F1B0 + op: eq + path: _request_id diff --git a/t/10_responses/s3-put-bucket-cors.response b/t/10_responses/s3-put-bucket-cors.response new file mode 100644 index 0000000000..5f76930476 --- /dev/null +++ b/t/10_responses/s3-put-bucket-cors.response @@ -0,0 +1,5 @@ +--- +content: '' +headers: + x-amz-request-id: ZZ3379DA02E1B7DD4 +status: 200 diff --git a/t/10_responses/s3-put-bucket-cors.response.test.yml b/t/10_responses/s3-put-bucket-cors.response.test.yml new file mode 100644 index 0000000000..5370543f98 --- /dev/null +++ b/t/10_responses/s3-put-bucket-cors.response.test.yml @@ -0,0 +1,7 @@ +--- +call: PutBucketCors +service: S3 +Tests: + - expected: ZZ3379DA02E1B7DD4 + op: eq + path: _request_id diff --git a/t/10_responses/s3-put-bucket-encryption.response b/t/10_responses/s3-put-bucket-encryption.response new file mode 100644 index 0000000000..7f8228f0c9 --- /dev/null +++ b/t/10_responses/s3-put-bucket-encryption.response @@ -0,0 +1,5 @@ +--- +content: '' +headers: + x-amz-request-id: KKCE45417D610C2DC +status: 200 diff --git a/t/10_responses/s3-put-bucket-encryption.response.test.yml b/t/10_responses/s3-put-bucket-encryption.response.test.yml new file mode 100644 index 0000000000..c6cad4a1cc --- /dev/null +++ b/t/10_responses/s3-put-bucket-encryption.response.test.yml @@ -0,0 +1,7 @@ +--- +call: PutBucketEncryption +service: S3 +tests: + - expected: KKCE45417D610C2DC + op: eq + path: _request_id diff --git a/t/10_responses/s3-put-bucket-inventoryconfiguration.response b/t/10_responses/s3-put-bucket-inventoryconfiguration.response new file mode 100644 index 0000000000..49a5516214 --- /dev/null +++ b/t/10_responses/s3-put-bucket-inventoryconfiguration.response @@ -0,0 +1,5 @@ +--- +content: '' +headers: + x-amz-request-id: 'XX3379DA02E1B7DD4' +status: 200 diff --git a/t/10_responses/s3-put-bucket-inventoryconfiguration.response.test.yml b/t/10_responses/s3-put-bucket-inventoryconfiguration.response.test.yml new file mode 100644 index 0000000000..5f2f144c91 --- /dev/null +++ b/t/10_responses/s3-put-bucket-inventoryconfiguration.response.test.yml @@ -0,0 +1,11 @@ +--- +call: PutBucketInventoryConfiguration +service: S3 +Tests: + - expected: XX3379DA02E1B7DD4 + op: eq + path: _request_id + - path: status + op: eq + expected: 200` + diff --git a/t/10_responses/s3-put-bucket-lifecycleconfiguration.response b/t/10_responses/s3-put-bucket-lifecycleconfiguration.response new file mode 100644 index 0000000000..6bb42b22d0 --- /dev/null +++ b/t/10_responses/s3-put-bucket-lifecycleconfiguration.response @@ -0,0 +1,6 @@ +--- +content: |- + + InternalErrorWe encountered an internal error. Please try again.DF9C23B890EE4B40S0LDJu8e/xinpdiyNq1b7u7PHIQnYL4OSPZZh3dWTii9SgbnwxlXYtSGWaCGeU3X4ixYGErWkMg= +headers: [] +status: 500 diff --git a/t/10_responses/s3-put-bucket-lifecycleconfiguration.response.test.yml b/t/10_responses/s3-put-bucket-lifecycleconfiguration.response.test.yml new file mode 100644 index 0000000000..0db2e9757d --- /dev/null +++ b/t/10_responses/s3-put-bucket-lifecycleconfiguration.response.test.yml @@ -0,0 +1,13 @@ +--- +call: PutBucketLifecycleConfiguration +service: S3 +tests: + - expected: InternalError + op: eq + path: code + - expected: 500 + op: eq + path: http_status + - expected: DF9C23B890EE4B40 + op: eq + path: request_id diff --git a/t/10_responses/s3-put-bucket-logging.response b/t/10_responses/s3-put-bucket-logging.response new file mode 100644 index 0000000000..bdcfa6ddc5 --- /dev/null +++ b/t/10_responses/s3-put-bucket-logging.response @@ -0,0 +1,5 @@ +--- +content: +headers: + x-amz-request-id: 3CE45417D610C2DC +status: 200 diff --git a/t/10_responses/s3-put-bucket-logging.response.test.yml b/t/10_responses/s3-put-bucket-logging.response.test.yml new file mode 100644 index 0000000000..f1179ccfd7 --- /dev/null +++ b/t/10_responses/s3-put-bucket-logging.response.test.yml @@ -0,0 +1,7 @@ +--- +call: PutBucketLogging +service: S3 +tests: + - expected: 3CE45417D610C2DC + op: eq + path: _request_id diff --git a/t/10_responses/s3-put-bucket-metricsconfiguration.response b/t/10_responses/s3-put-bucket-metricsconfiguration.response new file mode 100644 index 0000000000..e052869333 --- /dev/null +++ b/t/10_responses/s3-put-bucket-metricsconfiguration.response @@ -0,0 +1,5 @@ +--- +content: '' +headers: + x-amz-request-id: 3CE45417D610C2DC +status: 204 diff --git a/t/10_responses/s3-put-bucket-metricsconfiguration.response.test.yml b/t/10_responses/s3-put-bucket-metricsconfiguration.response.test.yml new file mode 100644 index 0000000000..149e60e694 --- /dev/null +++ b/t/10_responses/s3-put-bucket-metricsconfiguration.response.test.yml @@ -0,0 +1,8 @@ +--- +call: PutBucketMetricsConfiguration +service: S3 +tests: + - expected: 3CE45417D610C2DC + op: eq + path: _request_id + diff --git a/t/10_responses/s3-put-bucket-notificationconfiguration.response b/t/10_responses/s3-put-bucket-notificationconfiguration.response new file mode 100644 index 0000000000..d2fa1b27d6 --- /dev/null +++ b/t/10_responses/s3-put-bucket-notificationconfiguration.response @@ -0,0 +1,5 @@ +--- +content: +headers: + x-amz-request-id: 1121037C92F5F5E4 +status: 200 diff --git a/t/10_responses/s3-put-bucket-notificationconfiguration.response.test.yml b/t/10_responses/s3-put-bucket-notificationconfiguration.response.test.yml new file mode 100644 index 0000000000..6b6138a6e7 --- /dev/null +++ b/t/10_responses/s3-put-bucket-notificationconfiguration.response.test.yml @@ -0,0 +1,7 @@ +--- +call: PutBucketNotificationConfiguration +service: S3 +tests: + - expected: 1121037C92F5F5E4 + op: eq + path: _request_id diff --git a/t/10_responses/s3-put-bucket-policy.response b/t/10_responses/s3-put-bucket-policy.response new file mode 100644 index 0000000000..af2754e0d3 --- /dev/null +++ b/t/10_responses/s3-put-bucket-policy.response @@ -0,0 +1,5 @@ +--- +content: +headers: + x-amz-request-id: 48900E4A260D810F +status: 200 diff --git a/t/10_responses/s3-put-bucket-policy.response.test.yml b/t/10_responses/s3-put-bucket-policy.response.test.yml new file mode 100644 index 0000000000..22e3b32095 --- /dev/null +++ b/t/10_responses/s3-put-bucket-policy.response.test.yml @@ -0,0 +1,7 @@ +--- +call: PutBucketPolicy +service: S3 +tests: + - expected: 48900E4A260D810F + op: eq + path: _request_id diff --git a/t/10_responses/s3-put-bucket-replication.response b/t/10_responses/s3-put-bucket-replication.response new file mode 100644 index 0000000000..b8ed1505d5 --- /dev/null +++ b/t/10_responses/s3-put-bucket-replication.response @@ -0,0 +1,5 @@ +--- +content: +headers: + x-amz-request-id: 3B572AEA0C118EBD +status: 200 diff --git a/t/10_responses/s3-put-bucket-replication.response.test.yml b/t/10_responses/s3-put-bucket-replication.response.test.yml new file mode 100644 index 0000000000..0558ca4240 --- /dev/null +++ b/t/10_responses/s3-put-bucket-replication.response.test.yml @@ -0,0 +1,7 @@ +--- +call: PutBucketReplication +service: S3 +tests: + - expected: 3B572AEA0C118EBD + op: eq + path: _request_id diff --git a/t/10_responses/s3-put-bucket-requestpayment.response b/t/10_responses/s3-put-bucket-requestpayment.response new file mode 100644 index 0000000000..880ed188e6 --- /dev/null +++ b/t/10_responses/s3-put-bucket-requestpayment.response @@ -0,0 +1,5 @@ +--- +content: '' +headers: + x-amz-request-id: 9978E1E1DBD151DE +status: 200 diff --git a/t/10_responses/s3-put-bucket-requestpayment.response.test.yml b/t/10_responses/s3-put-bucket-requestpayment.response.test.yml new file mode 100644 index 0000000000..bb8c6a842a --- /dev/null +++ b/t/10_responses/s3-put-bucket-requestpayment.response.test.yml @@ -0,0 +1,7 @@ +--- +call: PutBucketRequestPayment +service: S3 +tests: + - expected: 9978E1E1DBD151DE + op: eq + path: _request_id diff --git a/t/10_responses/s3-put-bucket-versioning.response b/t/10_responses/s3-put-bucket-versioning.response new file mode 100644 index 0000000000..13e5a9221f --- /dev/null +++ b/t/10_responses/s3-put-bucket-versioning.response @@ -0,0 +1,5 @@ +--- +content: +headers: + x-amz-request-id: 63314030D5C34AB2 +status: 200 diff --git a/t/10_responses/s3-put-bucket-versioning.response.test.yml b/t/10_responses/s3-put-bucket-versioning.response.test.yml new file mode 100644 index 0000000000..a543ba31fa --- /dev/null +++ b/t/10_responses/s3-put-bucket-versioning.response.test.yml @@ -0,0 +1,7 @@ +--- +call: PutBucketVersioning +service: S3 +tests: + - expected: 63314030D5C34AB2 + op: eq + path: _request_id diff --git a/t/10_responses/s3-put-bucket-website.response b/t/10_responses/s3-put-bucket-website.response new file mode 100644 index 0000000000..b6f1ed80ff --- /dev/null +++ b/t/10_responses/s3-put-bucket-website.response @@ -0,0 +1,5 @@ +--- +content: '' +headers: + x-amz-request-id: CB808010C5EF3452 +status: 200 diff --git a/t/10_responses/s3-put-bucket-website.response.test.yml b/t/10_responses/s3-put-bucket-website.response.test.yml new file mode 100644 index 0000000000..f7d05f5880 --- /dev/null +++ b/t/10_responses/s3-put-bucket-website.response.test.yml @@ -0,0 +1,7 @@ +--- +call: PutBucketWebsite +service: S3 +tests: + - expected: CB808010C5EF3452 + op: eq + path: _request_id diff --git a/t/10_responses/s3-put-object-acl.response b/t/10_responses/s3-put-object-acl.response new file mode 100644 index 0000000000..1c17177e6e --- /dev/null +++ b/t/10_responses/s3-put-object-acl.response @@ -0,0 +1,6 @@ +--- +content: +headers: + x-amz-request-charged: mrs poopy buthole + x-amz-request-id: 'A3379DA02E1B7DD4' +status: 200 diff --git a/t/10_responses/s3-put-object-acl.response.test.yml b/t/10_responses/s3-put-object-acl.response.test.yml new file mode 100644 index 0000000000..fde5412b61 --- /dev/null +++ b/t/10_responses/s3-put-object-acl.response.test.yml @@ -0,0 +1,10 @@ +--- +call: PutObjectAcl +service: S3 +tests: + - path: RequestCharged + op: eq + expected: mrs poopy buthole + - expected: A3379DA02E1B7DD4 + op: eq + path: _request_id diff --git a/t/10_responses/s3-put-object-legalhold.response b/t/10_responses/s3-put-object-legalhold.response new file mode 100644 index 0000000000..f9f1b3ad7e --- /dev/null +++ b/t/10_responses/s3-put-object-legalhold.response @@ -0,0 +1,6 @@ +--- +content: '' +headers: + x-amz-request-id: 460712B16E42692C + x-amz-request-charged: mr poopy buthole +status: 200 diff --git a/t/10_responses/s3-put-object-legalhold.response.test.yml b/t/10_responses/s3-put-object-legalhold.response.test.yml new file mode 100644 index 0000000000..1f3cb96431 --- /dev/null +++ b/t/10_responses/s3-put-object-legalhold.response.test.yml @@ -0,0 +1,10 @@ +--- +call: PutObjectLegalHold +service: S3 +tests: + - expected: 460712B16E42692C + op: eq + path: _request_id + - expected: mr poopy buthole + op: eq + path: RequestCharged diff --git a/t/10_responses/s3-put-object-lockconfiguration.response b/t/10_responses/s3-put-object-lockconfiguration.response new file mode 100644 index 0000000000..0cc84142b4 --- /dev/null +++ b/t/10_responses/s3-put-object-lockconfiguration.response @@ -0,0 +1,6 @@ +--- +content: +headers: + x-amz-request-id: C3736C5ACACC71FC + x-amz-request-charged: mr poopy buthole +status: 200 diff --git a/t/10_responses/s3-put-object-lockconfiguration.response.test.yml b/t/10_responses/s3-put-object-lockconfiguration.response.test.yml new file mode 100644 index 0000000000..b5a4839a2a --- /dev/null +++ b/t/10_responses/s3-put-object-lockconfiguration.response.test.yml @@ -0,0 +1,10 @@ +--- +call: PutObjectLockConfiguration +service: S3 +tests: + - expected: mr poopy buthole + op: eq + path: RequestCharged + - expected: C3736C5ACACC71FC + op: eq + path: _request_id diff --git a/t/10_responses/s3-put-object-retention.response b/t/10_responses/s3-put-object-retention.response new file mode 100644 index 0000000000..a8d41097c9 --- /dev/null +++ b/t/10_responses/s3-put-object-retention.response @@ -0,0 +1,5 @@ +--- +content: '' +headers: + x-amz-request-id: 051B79A667880E4F +status: 200 diff --git a/t/10_responses/s3-put-object-retention.response.test.yml b/t/10_responses/s3-put-object-retention.response.test.yml new file mode 100644 index 0000000000..e46e90df3a --- /dev/null +++ b/t/10_responses/s3-put-object-retention.response.test.yml @@ -0,0 +1,7 @@ +--- +call: PutObjectRetention +service: S3 +tests: + - expected: 051B79A667880E4F + op: eq + path: _request_id diff --git a/t/10_responses/s3-put-object-tagging.response b/t/10_responses/s3-put-object-tagging.response new file mode 100644 index 0000000000..af335da447 --- /dev/null +++ b/t/10_responses/s3-put-object-tagging.response @@ -0,0 +1,6 @@ +--- +content: '' +headers: + x-amz-version-id: jkhsfdkjheweSSS + x-amz-request-id: A3379DA02E1B7DD4 +status: 200 diff --git a/t/10_responses/s3-put-object-tagging.response.test.yml b/t/10_responses/s3-put-object-tagging.response.test.yml new file mode 100644 index 0000000000..a715215369 --- /dev/null +++ b/t/10_responses/s3-put-object-tagging.response.test.yml @@ -0,0 +1,10 @@ +--- +call: PutObjectTagging +service: S3 +tests: + - path: VersionId + op: eq + expected: jkhsfdkjheweSSS + - path: _request_id + op: eq + expected: "A3379DA02E1B7DD4" diff --git a/t/10_responses/s3-put-public-accessblock.response b/t/10_responses/s3-put-public-accessblock.response new file mode 100644 index 0000000000..f710a57d73 --- /dev/null +++ b/t/10_responses/s3-put-public-accessblock.response @@ -0,0 +1,5 @@ +--- +content: '' +headers: + x-amz-request-id: 8184EE4B44B563FA +status: 200 diff --git a/t/10_responses/s3-put-public-accessblock.response.test.yml b/t/10_responses/s3-put-public-accessblock.response.test.yml new file mode 100644 index 0000000000..2b90a7647d --- /dev/null +++ b/t/10_responses/s3-put-public-accessblock.response.test.yml @@ -0,0 +1,7 @@ +--- +call: PutPublicAccessBlock +service: S3 +tests: + - expected: 8184EE4B44B563FA + op: eq + path: _request_id diff --git a/t/10_responses/s3-restore-object.1.response b/t/10_responses/s3-restore-object.1.response new file mode 100644 index 0000000000..2252ca8ed5 --- /dev/null +++ b/t/10_responses/s3-restore-object.1.response @@ -0,0 +1,9 @@ +--- +content: ~ +headers: + connection: close + date: 's3-restore-object.response' + server: AmazonS3 + x-amz-id-2: F/Aqv8iKKyDxL9zJdqkDtm4iBgKtL2B+AXlEiNE7HzjwcDaLroGM7duOZTCCIYT/ITxFqlu3teU= + x-amz-request-id: 9C4494F17CFA569D +status: 200 diff --git a/t/10_responses/s3-restore-object.1.response.test.yml b/t/10_responses/s3-restore-object.1.response.test.yml new file mode 100644 index 0000000000..232b9a46ba --- /dev/null +++ b/t/10_responses/s3-restore-object.1.response.test.yml @@ -0,0 +1,10 @@ +--- +call: RestoreObject +service: S3 +tests: + - path: _request_id + op: eq + expected: 9C4494F17CFA569D +# - path: Status +# op: eq +# expected: 200 diff --git a/t/10_responses/s3-restore-object.2.response b/t/10_responses/s3-restore-object.2.response new file mode 100644 index 0000000000..32a4482644 --- /dev/null +++ b/t/10_responses/s3-restore-object.2.response @@ -0,0 +1,9 @@ +--- +content: ~ +headers: + connection: close + date: 's3-restore-object.response' + server: AmazonS3 + x-amz-id-2: F/Aqv8iKKyDxL9zJdqkDtm4iBgKtL2B+AXlEiNE7HzjwcDaLroGM7duOZTCCIYT/ITxFqlu3teU= + x-amz-request-id: 9C4494F17CFA569D +status: 202 diff --git a/t/10_responses/s3-restore-object.2.response.test.yml b/t/10_responses/s3-restore-object.2.response.test.yml new file mode 100644 index 0000000000..2a802f0cb5 --- /dev/null +++ b/t/10_responses/s3-restore-object.2.response.test.yml @@ -0,0 +1,10 @@ +--- +call: RestoreObject +service: S3 +tests: + - path: _request_id + op: eq + expected: 9C4494F17CFA569D +# - path: Status +# op: eq +# expected: 202 diff --git a/t/10_responses/s3-restore-object.3.response b/t/10_responses/s3-restore-object.3.response new file mode 100644 index 0000000000..3b68045fdb --- /dev/null +++ b/t/10_responses/s3-restore-object.3.response @@ -0,0 +1,18 @@ +--- +content: |- + + + RestoreAlreadyInProgress + Object restore is already in progress + AC65B3BF8AC3AA34 + 1Wlw6Edlx3uplC85VIcAwe12xfU8BgcaFHXTlyNBhilk4Xv2sbOJs80FjvAvW9weQkwtKJXcnJg= + +headers: + connection: close + content-type: application/xml + date: 'Wed, 25 Sep 2019 21:04:17 GMT' + server: AmazonS3 + transfer-encoding: chunked + x-amz-id-2: 1Wlw6Edlx3uplC85VIcAwe12xfU8BgcaFHXTlyNBhilk4Xv2sbOJs80FjvAvW9weQkwtKJXcnJg= + x-amz-request-id: C65B3BF8AC3AA34 +status: 409 diff --git a/t/10_responses/s3-restore-object.3.response.test.yml b/t/10_responses/s3-restore-object.3.response.test.yml new file mode 100644 index 0000000000..ca57d8ff83 --- /dev/null +++ b/t/10_responses/s3-restore-object.3.response.test.yml @@ -0,0 +1,16 @@ +--- +call: RestoreObject +service: S3 +tests: + - path: request_id + op: eq + expected: AC65B3BF8AC3AA34 + - path: message + op: eq + expected: Object restore is already in progress + - path: code + op: eq + expected: RestoreAlreadyInProgress + - path: http_status + op: eq + expected: 409 diff --git a/t/10_responses/s3-select-object-content.response b/t/10_responses/s3-select-object-content.response new file mode 100644 index 0000000000..8d5df33020 --- /dev/null +++ b/t/10_responses/s3-select-object-content.response @@ -0,0 +1,27 @@ +--- +content: |- + + + + blob + + +
+ 1024 + 2048 + 4096 +
+
+ +
+ 256 + 178 + 1024 +
+
+ + +
+headers: + x-amz-request-id: 3858f62230ac3c915f300c664312c63f +status: 200 diff --git a/t/10_responses/s3-select-object-content.response.test.yml b/t/10_responses/s3-select-object-content.response.test.yml new file mode 100644 index 0000000000..57eb1d4b00 --- /dev/null +++ b/t/10_responses/s3-select-object-content.response.test.yml @@ -0,0 +1,28 @@ +--- +call: SelectObjectContent +service: S3 +tests: + - expected: 3858f62230ac3c915f300c664312c63f + op: eq + path: _request_id + - path: Payload.Records.Payload + expected: blob + op: eq + - path: Payload.Progress.Details.BytesProcessed + expected: 256 + op: eq + - path: Payload.Progress.Details.BytesReturned + expected: 178 + op: eq + - path: Payload.Progress.Details.BytesScanned + expected: 1024 + op: eq + - path: Payload.Stats.Details.BytesProcessed + expected: 1024 + op: eq + - path: Payload.Stats.Details.BytesScanned + expected: 4096 + op: eq + - path: Payload.Stats.Details.BytesReturned + expected: 2048 + op: eq diff --git a/t/10_responses/s3-upload-part-copy.response b/t/10_responses/s3-upload-part-copy.response new file mode 100644 index 0000000000..4878355b86 --- /dev/null +++ b/t/10_responses/s3-upload-part-copy.response @@ -0,0 +1,16 @@ +--- +content: |- + + + 2016-11-02T09:06:53.000Z + 3858f62230ac3c915f300c664312c63f + +headers: + x-amz-request-id: 418521EC473D3599 + x-amz-copy-source-version-id: id + x-amz-request-charged: charged + x-amz-server-side-encryption: encryption + x-amz-server-side-encryption-customer-algorithm: algorithm + x-amz-server-side-encryption-customer-key-MD5: key-MD5 + x-amz-server-side-encryption-aws-kms-key-id: key-id +status: 200 diff --git a/t/10_responses/s3-upload-part-copy.response.test.yml b/t/10_responses/s3-upload-part-copy.response.test.yml new file mode 100644 index 0000000000..09e6e09768 --- /dev/null +++ b/t/10_responses/s3-upload-part-copy.response.test.yml @@ -0,0 +1,31 @@ +--- +call: UploadPartCopy +service: S3 +tests: + - expected: 418521EC473D3599 + op: eq + path: _request_id + - path: CopyPartResult.ETag + expected: 3858f62230ac3c915f300c664312c63f + op: eq + - path: CopyPartResult.LastModified + expected: 2016-11-02T09:06:53.000Z + op: eq + - path: CopySourceVersionId + expected: id + op: eq + - path: RequestCharged + expected: charged + op: eq + - path: ServerSideEncryption + expected: encryption + op: eq + - path: SSECustomerAlgorithm + expected: algorithm + op: eq + - path: SSECustomerKeyMD5 + expected: key-MD5 + op: eq + - path: SSEKMSKeyId + expected: key-id + op: eq diff --git a/t/11_client_exceptions.t b/t/11_client_exceptions.t index 4db162f648..6783819795 100644 --- a/t/11_client_exceptions.t +++ b/t/11_client_exceptions.t @@ -94,8 +94,9 @@ foreach my $caller_name ('Paws::Net::FurlCaller', 'Paws::Net::Caller', 'Paws::Ne $p->service('S3', region => 'eu-west-1')->ListBuckets; } 'Paws::Exception', 'got exception'; - cmp_ok($@->message, 'eq', 'Forbidden', 'S3 exception'); - cmp_ok($@->code, 'eq', '403', 'Correct code'); + cmp_ok($@->message, 'eq', 'The AWS Access Key Id you provided does not exist in our records.', 'S3 exception'); + cmp_ok($@->code, 'eq', 'InvalidAccessKeyId', 'Correct code'); + cmp_ok($@->http_status, 'eq', '403', 'Correct code'); cmp_ok($@->request_id, 'eq', '000000000000000000000000000000000000', 'Correct Request ID'); throws_ok { diff --git a/t/lib/FileCaller.pm b/t/lib/FileCaller.pm index 71a92e3d51..d106766b09 100644 --- a/t/lib/FileCaller.pm +++ b/t/lib/FileCaller.pm @@ -1,7 +1,7 @@ # # Caller to use a local file as a fake response from the API # -# The local file must be a YAML file with a structure that will fake a +# The local file must be a YAML file with a structure that will fake a # response from the API # # --- @@ -24,45 +24,56 @@ # - environment variable PAWS_RESPONSE_FILE package FileCaller; - use Moose; - use Carp qw(croak); - use YAML qw/LoadFile/; +use Moose; +use Carp qw(croak); +use YAML qw/LoadFile/; - with 'Paws::Net::CallerRole'; - use Paws::Net::APIResponse; +with 'Paws::Net::CallerRole'; +use Paws::Net::APIResponse; +use Paws::Net::APIRequest; +has response_file => + ( is => 'rw', default => sub { $ENV{'PAWS_RESPONSE_FILE'} } ); +has debug => ( is => 'rw', default => 0 ); +has request_only => ( is => 'rw', default => 0 ); - has response_file => ( is => 'rw', default => sub { $ENV{'PAWS_RESPONSE_FILE'} } ); - has debug => ( is => 'rw', default => 0 ); +sub do_call { + my ( $self, $service, $call_object ) = @_; + my $response; - sub do_call { - my ($self, $service, $call_object) = @_; + if ( $self->request_only ) { + return $service->prepare_request_for_call($call_object); + } + else { - my $response = $self->_file_response; + my $response = $self->_file_response; - if (ref($response->{headers}) eq 'ARRAY') { $response->{headers} = {} } + if ( ref( $response->{headers} ) eq 'ARRAY' ) { + $response->{headers} = {}; + } - my $res = Paws::Net::APIResponse->new( - status => $response->{status}, - content => $response->{content}, - headers => $response->{headers} - ); + my $res = Paws::Net::APIResponse->new( + status => $response->{status}, + content => $response->{content}, + headers => $response->{headers} + ); - return $service->response_to_object->process($call_object, $res); - } + return $service->response_to_object->process( $call_object, $res ); + } +} - # Return a fake HTTP-like response cooked in a YAML file - sub _file_response { +# Return a fake HTTP-like response cooked in a YAML file +sub _file_response { my ($self) = @_; - my $res = LoadFile($self->response_file); - if ($self->debug) { - print STDERR "Loading from file " . $self->response_file . "\n"; - use Data::Dumper; - print Dumper($res); + my $res = LoadFile( $self->response_file ); + if ( $self->debug ) { + print STDERR "Loading from file " . $self->response_file . "\n"; + use Data::Dumper; + print Dumper($res); } return $res; - } +} - no Moose; +no Moose; 1; diff --git a/t/lib/FullTestMakerLWPCaller.pm b/t/lib/FullTestMakerLWPCaller.pm new file mode 100644 index 0000000000..b2d5b668eb --- /dev/null +++ b/t/lib/FullTestMakerLWPCaller.pm @@ -0,0 +1,260 @@ +package FullTestMakerLWPCaller; + +# A copy of TestMakerLWPCaller, but using Paws::Net::LWPCaller and makeing +# both a request and a response test +use Moose; +extends 'Paws::Net::LWPCaller'; +use Carp; +use feature qw(say); +use JSON; +use YAML qw/DumpFile Dump/; +use DataStruct::Flat; +use Data::Dumper; + +has [ + qw(make_response_test + make_request_test + warn_response + warn_request + ) + ] => ( + is => 'ro', + isa => 'Bool', + default => 0, + ); + +has [ + qw(response_test_dir + request_test_dir + ) + ] => ( + is => 'ro', + isa => 'Str', + default => "", + ); + +override do_call => sub { + my ( $self, $service, $call_object ) = @_; + + my $requestObj = $service->prepare_request_for_call($call_object); + + warn( "FullTestMakerLWPCaller: Raw request=" . Dumper($requestObj) ) + if ( $self->warn_request() ); + + my @services = split("::",ref($service)); + + $self->write_request_test( $call_object, $requestObj, $service,$services[1] ) + if ( $self->make_request_test() ); + + my $headers = $requestObj->header_hash; + + # HTTP::Tiny has made setting Host header illegal. It derives Host from URL + delete $headers->{Host}; + + my $method = lc $requestObj->method; + my $response = $self->ua->$method( + $requestObj->url, + %$headers, + ( defined $requestObj->content ) + ? ( content => $requestObj->content ) + : (), + ); + + warn( "FullTestMakerLWPCaller: Raw Response=" . Dumper($response) ) + if ( $self->warn_response() ); + + my $lcheaders = {}; + $response->headers->scan( sub { $lcheaders->{ lc $_[0] } = $_[1] } ); + + my $net_response = Paws::Net::APIResponse->new( + status => $response->code, + content => $response->content, + headers => $lcheaders, + ); + + my $result = + $service->response_to_object->process( $call_object, $net_response ); + + $self->write_response_test( $call_object, $net_response, $result, $service,$services[1] ) + if ( $self->make_response_test ); + + return $result; +}; + +sub write_request_test { + + my $self = shift(@_); + my ( $call, $request, $service,$load_service ) = @_; + my $skip_header_keys = { + '::std_case' => 1, + 'authorization' => 1, + 'date' => 1, + 'x-amz-date' => 1, + }; + + my $call_params = $service->to_hash($call); + + my $file_name = + 't/09_requests/' + . $service->service + . '-' + . lc( $call->_api_call + . '.request' ); + + my $method = uc($request->method()); + + my $test_name = $file_name . ".test.yml"; + my $test_hash = { + call => $call->_api_call, + service => $load_service, + tests => [ + { + expected => $request->content, + op => 'eq', + path => 'content' + }, + { + expected => $method, + op => 'eq', + path => 'method' + } + ] + }; + + my @tests = (); + + foreach my $path (qw[headers parameters]) { + my $attribute_hash = $request->$path; + foreach my $key ( sort( keys( %{$attribute_hash} ) ) ) { + next + if ( $path eq "headers" and exists( $skip_header_keys->{$key} ) ); + + push( + @{ $test_hash->{tests} }, + { + expected => $attribute_hash->{$key}, + op => 'eq', + key => $key, + path => $path + } + ); + } + } + + my @url = split( /\?/, $request->url ); + my @uri = split( /\?/, $request->uri ); + push( + @{ $test_hash->{tests} }, + { + expected => $url[0], + op => 'eq', + path => "url" + } + ); + if ( $uri[0] ) { + push( + @{ $test_hash->{tests} }, + { + expected => $uri[0], + op => 'eq', + path => "url" + } + ); + push( + @{ $test_hash->{tests} }, + { + expected => $uri[0], + op => 'eq', + path => "uri" + } + ); + + if ( index( "&", $uri[1] ) != -1 ) { + my @params = split( "&", $uri[1] ); + foreach my $param (@params) { + push( + @{ $test_hash->{tests} }, + { + expected => $param, + op => 'eq', + path => "uri" + } + ); + } + } + else { + push( + @{ $test_hash->{tests} }, + { + expected => $uri[1], + op => 'eq', + path => "uri" + } + ); + } + } + + #warn("JSP call_params=".Dumper($call_params)); + YAML::DumpFile( $self->request_test_dir() . "/" . $file_name, $call_params ); + YAML::DumpFile( $self->request_test_dir() . "/" . $test_name, $test_hash ); + #say("Request Test: '$test_name' Written!") +} + +sub write_response_test { + my $self = shift(@_); + my ( $call, $response, $result_oject, $service,$load_service ) = @_; + my $headers = $response->headers(); + my $response_hash = { + content => $response->content, + headers => {%$headers}, + #{'x-amz-request-id'=>exists($response->{headers}->{'x-amz-request-id'})?$response->{headers}->{'x-amz-request-id'}:$response->{headers}->{'x-amzn-requestid'}}, + status => $response->status + }; + + my $result_hash = $service->to_hash($result_oject); + my $file_name = + 't/10_responses/' + . $service->service . '-' + . lc( $call->_api_call . '.response' ); + my $test_name = $file_name . ".test.yml"; + + my $test_hash = { + call => $call->_api_call, + service => $load_service, + }; + my $o = DataStruct::Flat->new( + { + HashDelimiter => ',', + ArrayDelimiter => '.', + } + ); + + my $flat = $o->flatten($result_hash); + + foreach my $path ( sort( keys( %{$flat} ) ) ) { + push( + @{ $test_hash->{tests} }, + { + expected => $flat->{$path}, + op => 'eq', + path => $path + } + ); + } + + push( + @{ $test_hash->{tests} }, + { + expected =>exists($response->{headers}->{'x-amz-request-id'})?$response->{headers}->{'x-amz-request-id'}:$response->{headers}->{'x-amzn-requestid'}, + op => 'eq', + path => '_request_id' + } + ); #always have at least one of these + + YAML::DumpFile( $self->request_test_dir() . "/" . $file_name, + $response_hash ); + YAML::DumpFile( $self->request_test_dir() . "/" . $test_name, $test_hash ); + #say("Response Test: '$test_name' Written!") + +} +1; diff --git a/templates/default/object.tt b/templates/default/object.tt index 582cc8c33f..577cce805c 100644 --- a/templates/default/object.tt +++ b/templates/default/object.tt @@ -1,4 +1,4 @@ -[%- -%] +[%- xml_attributes = [] -%] package [% inner_class %]; use Moose; [% FOREACH param_name IN shape.members.keys.sort -%] @@ -6,14 +6,29 @@ package [% inner_class %]; [%- member_shape_name = shape.members.$param_name.shape %] [%- member = c.shape(member_shape_name) -%] has [% param_name %] => (is => 'ro', isa => '[% member.perl_type %]' - [%- IF (member.type == 'list' and member.member.locationName.defined) %][% traits.push('NameInRequest') %], request_name => '[% member.member.locationName %]'[% END %] + [%- IF (shape.members.${param_name}.xmlAttribute == 1); traits.push('XMLAtribute'); xml_attributes.push(param_name); %], xml_attribute_name => '[% shape.members.$param_name.locationName %]' + [%- ELSE %] + [%- IF (member.type == 'list' and member.member.locationName.defined) %][% traits.push('NameInRequest','ListNameInRequest') %], request_name => '[% member.member.locationName %]' + [%- IF (shape.members.${param_name}.locationName != member.member.locationName) %], list_request_name => '[%- IF (!shape.members.${param_name}.locationName.defined) %][%param_name%][% ELSE %][% shape.members.${param_name}.locationName %][% END %]' + [%- ELSE %] + , list_request_name => '[%member.member.locationName %]' + [% END %] + [%- ELSE %] [%- IF (shape.members.${param_name}.locationName); traits.push('NameInRequest') %], request_name => '[% shape.members.${param_name}.locationName %]'[% END %] [%- IF (shape.members.$param_name.streaming == 1); traits.push('ParamInBody'); END %] + [%- IF (member.flattened == 1); traits.push('Flatten'); END %] [%- encoder = c.encoders_struct.$member_shape_name; IF (encoder); traits.push('JSONAttribute') %], decode_as => '[% encoder.encoding %]', method => '[% encoder.alias %]'[% END %] [%- IF (member.members.xmlname and (member.members.xmlname != 'item')) %], traits => ['NameInRequest'], request_name => '[% member.members.xmlname %]'[% END %] +[%- END %] +[%- END %] [%- IF (traits.size) %], traits => [[% FOREACH trait=traits %]'[% trait %]'[% IF (NOT loop.last) %],[% END %][% END %]][% END -%] - [%- IF (c.required_in_shape(shape,param_name)) %], required => 1[% END %]); + [% IF (c.required_in_shape(shape,param_name)) %], required => 1[% END %]); [% END -%] -1; + [%- IF (xml_attributes.size) %] +sub _xml_attributes { + return [[% FOREACH xml_attribute= xml_attributes %]'[% xml_attribute %]'[% IF (NOT loop.last) %],[% END %][% END %]]; +} + [% END %] +1; [% iclass=shape; INCLUDE 'innerclass_documentation.tt' %] diff --git a/templates/restxml/callargs_class.tt b/templates/restxml/callargs_class.tt index 7afbe0ef69..4dce9436ed 100644 --- a/templates/restxml/callargs_class.tt +++ b/templates/restxml/callargs_class.tt @@ -3,28 +3,39 @@ package [% c.api %]::[% op_name %]; use Moose; [% FOREACH param_name IN shape.members.keys.sort -%] + [% NEXT IF param_name == 'ContentMD5' %] [%- member = c.shape(shape.members.$param_name.shape) -%] [%- traits = [] -%] - has [% param_name %] => (is => 'ro', isa => '[% member.perl_type %]' - [%- IF (shape.members.$param_name.location == 'header') %], header_name => '[% shape.members.$param_name.locationName %]' - [%- IF (param_name == 'ContentMD5'); traits.push('AutoInHeader') %], auto => 'MD5' - [%- ELSE; traits.push('ParamInHeader') %] - [%- END %] + has [% param_name %] => (is => 'ro', isa => '[% member.perl_type %]' + [%- IF (shape.members.$param_name.location == 'header'); traits.push('ParamInHeader') %], header_name => '[% shape.members.$param_name.locationName %]' [%- ELSIF (shape.members.$param_name.location == 'headers'); traits.push('ParamInHeaders') %], header_prefix => '[% shape.members.$param_name.locationName %]' [%- ELSIF (shape.members.$param_name.location == 'querystring'); traits.push('ParamInQuery') %], query_name => '[% shape.members.$param_name.locationName %]' [%- ELSIF (shape.members.$param_name.location == 'uri'); traits.push('ParamInURI') %], uri_name => '[% shape.members.$param_name.locationName %]' - [%- ELSIF (shape.members.$param_name.streaming == 1); traits.push('ParamInBody'); %][% stream_param = param_name -%] - [%- ELSE %][% IF (shape.members.$param_name.locationName != '') -%] - [%- IF (shape.members.$param_name.locationName == 'x-amz-meta-') %] - [%- ELSIF (shape.members.$param_name.locationName != param_name); traits.push('NameInRequest'); %], request_name => '[% shape.members.$param_name.locationName -%]' - [%- END -%] - [%- END -%] - [%- END -%] - [%- IF (traits.size) %], traits => [[% FOREACH trait=traits %]'[% trait %]'[% ',' IF (NOT loop.last) %][% END %]][% END -%] - [%- IF (c.required_in_shape(shape,param_name)) %], required => 1[% END %]); + [%- ELSIF (shape.members.$param_name.streaming == 1); traits.push('ParamInBody'); %][% stream_param = param_name %] + [%- ELSE %] + [% IF (shape.members.$param_name.locationName != '' || member.member.locationName != param_name) %] + [%- IF (shape.members.$param_name.locationName == 'x-amz-meta-') %] + [%- ELSIF (shape.members.$param_name.locationName and shape.members.$param_name.locationName != param_name); traits.push('NameInRequest'); %], request_name => '[% shape.members.$param_name.locationName %]' + [%- ELSIF ( member.member.locationName != '' and member.member.locationName != param_name); traits.push('NameInRequest'); %], request_name => '[% member.member.locationName %]' + [%- END %] + [%- END %] +[%- END %] +[%- IF (traits.size) %], traits => [[% FOREACH trait=traits %]'[% trait %]'[% ',' IF (NOT loop.last) %][% END %]][% END -%] + [%- IF (shape.members.$param_name.xmlNamespace) %] [% namspace_uri = shape.members.$param_name.xmlNamespace.uri %][% END %] + [%- IF (c.required_in_shape(shape,param_name)) %], required => 1[%- END %]); [% END %] - use MooseX::ClassAttribute; + has ContentMD5 => (is => 'ro', isa => 'Str', header_name => 'Content-MD5', auto => 'MD5', traits => ['AutoInHeader'] ); + +[%- IF operation.input.locationName -%] + has _location => (is => 'ro', isa => 'Str', default => '[% operation.input.locationName %]', traits => ['IsLocal']); +[%- END %] +[%- IF operation.input.xmlNamespace %] + has _xmlNamespace => (is => 'ro', isa => 'Str', default => '[% operation.input.xmlNamespace.uri %]',traits => ['IsLocal'] ); +[%- END %] + use MooseX::ClassAttribute; + [%- IF namspace_uri %] + class_has _namspace_uri => (isa => 'Str', is => 'ro', default => '[% namspace_uri %]');[% END %] class_has _api_call => (isa => 'Str', is => 'ro', default => '[% op_name %]'); class_has _api_uri => (isa => 'Str', is => 'ro', default => '[% operation.http.requestUri %]'); class_has _api_method => (isa => 'Str', is => 'ro', default => '[% operation.http.method %]'); diff --git a/templates/restxml/callresult_class.tt b/templates/restxml/callresult_class.tt index 8fa6e325e5..b5d3ac6523 100644 --- a/templates/restxml/callresult_class.tt +++ b/templates/restxml/callresult_class.tt @@ -8,22 +8,29 @@ package [% c.api %]::[% op_name %]; [%- member = c.shape(shape.members.$param_name.shape) -%] has [% param_name %] => (is => 'ro', isa => '[% member.perl_type %]' [%- IF (shape.members.$param_name.locationName) %] - [%- IF (shape.members.$param_name.location == 'header') %], traits => ['ParamInHeader'], header_name => '[% shape.members.$param_name.locationName %]' - [%- ELSIF (shape.members.$param_name.location == 'headers') %], traits => ['ParamInHeaders'], header_prefix => '[% shape.members.$param_name.locationName %]' - [%- ELSIF (shape.members.$param_name.location == 'querystring') %], traits => ['ParamInQuery'], query_name => '[% shape.members.$param_name.locationName -%]' - [%- ELSIF (shape.members.$param_name.location == 'uri') %], traits => ['ParamInURI'], uri_name => '[% shape.members.$param_name.locationName -%]' - [%- ELSE %], traits => ['NameInRequest'], request_name => '[% shape.members.$param_name.locationName %]'[%- END -%][%- END -%] + [%- IF (shape.members.$param_name.location == 'header') %], traits => ['ParamInHeader'] , header_name => '[% shape.members.$param_name.locationName %]' + [%- ELSIF (shape.members.$param_name.location == 'statusCode') %], traits => ['ParamInStatus'] , response_name => '[% shape.members.$param_name.locationName %]' + [%- ELSIF (shape.members.$param_name.location == 'headers') %], traits => ['ParamInHeaders'], header_prefix => '[% shape.members.$param_name.locationName %]' + [%- ELSIF (shape.members.$param_name.location == 'querystring')%], traits => ['ParamInQuery'] , query_name => '[% shape.members.$param_name.locationName %]' + [%- ELSIF (shape.members.$param_name.location == 'uri') %], traits => ['ParamInURI'] , uri_name => '[% shape.members.$param_name.locationName %]' + [%- ELSIF (shape.members.$param_name.location == 'statusCode') %], traits => ['NameInResponse'], reponse_name => '[% shape.members.$param_name.locationName %]' + [%- ELSE %], traits => ['NameInRequest'] , request_name => '[% shape.members.$param_name.locationName %]' + [%- END -%] + [%- END -%] [%- IF (shape.members.$param_name.streaming == 1) %], traits => ['ParamInBody'][% stream_param = param_name %][% END %] + [%- IF (shape.payload) %] [% has_payload=shape.payload %] [% END %] [%- IF (c.required_in_shape(shape,param_name)) %], required => 1[% END %]); + [% END %] - [%- IF (stream_param or shape.payload == param_name) %] - use MooseX::ClassAttribute; - [%- IF (stream_param) %] - class_has _stream_param => (is => 'ro', default => '[% c.to_payload_shape_name(stream_param) %]');[% END %] - [%- IF (shape.payload == param_name) %] - class_has _payload => (is => 'ro', default => '[% param_name %]');[% END %] - [%- END %] + has _request_id => (is => 'ro', isa => 'Str'); + [%- IF (stream_param or has_payload ) %] + use MooseX::ClassAttribute; + [%- IF (stream_param) %] + class_has _stream_param => (is => 'ro', default => '[% c.to_payload_shape_name(stream_param) %]');[% END %] + [%- IF (has_payload) %] + class_has _payload => (is => 'ro', default => '[% has_payload %]');[% END %] + [%- END %] [%- END %] 1;