NAME
    AWS::Networks - Parse and query official AWS network ranges

SYNOPSIS
      use AWS::Networks;

      my $nets = AWS::Networks->new();

      say $nets->sync_token->iso8601;

      foreach my $cidr (@{ $nets->cidrs }){
        say $cidr
      }

DESCRIPTION
    This module parses the official public IP network information published
    by Amazon Web Services at https://ip-ranges.amazonaws.com/ip-ranges.json

    Please read and understand the information can be found at
    http://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html to make
    sense of the data retured by this module.

USAGE
    Instance an object, and use it to filter information of interest to you
    with the attributes and methods provided.

METHODS
  new([ url => 'http....' ])
    Standard Moose constructor. Can specify a custom URL to download a
    document that follows the same schema

  url
    Returns the URL from which the information was retrieved. Returns undef
    on filtered datasets

  sync_token
    Returns a DateTime object created from the current timestamp of the
    syncToken reported from the service

  networks
    Returns an ArrayRef with HashRefs following the following structure:

    { ip_prefix => '0.0.0.0/0', region => '...', service => '...' }

    The keys and values in the HashRefs are the ones returned by the Network
    service

    service can be one of: AMAZON | EC2 | CLOUDFRONT | ROUTE53 |
    ROUTE53_HEALTHCHECKS, but expect new values to appear

    region can be one of: ap-northeast-1 | ap-southeast-1 | ap-southeast-2 |
    cn-north-1 | eu-central-1 | eu-west-1 | sa-east-1 | us-east-1 |
    us-gov-west-1 | us-west-1 | us-west-2 | GLOBAL, but expect new values to
    appear

  services
    Returns an ArrayRef of the different services present in the current
    dataset

  regions
    Returns an ArrayRef of the different regions present in the current
    dataset

  cidrs
    Returns an ArrayRef with the CIDR blocks in the dataset

  by_region($region)
    Returns a new AWS::Networks object with the data filtered to only the
    objects in the specified region

  by_service($service)
    Returns a new AWS::Networks object with the data filtered to only the
    services specified

CONTRIBUTE
    The source code is located here: https://github.com/pplu/aws-networks

  SEE ALSO
    The dist is bundled with a couple of sample scripts in bin that play
    around with the information returned by this module, these scripts try
    to determine the number of IP addresses that AWS has, and given an IP
    address, if it pertains to AWS, and what service.

AUTHOR
        Jose Luis Martinez
        CPAN ID: JLMARTIN
        CAPSiDE
        jlmartinez@capside.com
        http://www.pplusdomain.net

COPYRIGHT
    Copyright (c) 2014 by Jose Luis Martinez Torres

    This program is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

    The full text of the license can be found in the LICENSE file included
    with this module.

