NAME

Paws::CloudFront::CreateDistribution - Arguments for method CreateDistribution on Paws::CloudFront

DESCRIPTION

This class represents the parameters used for calling the method CreateDistribution2020_05_31 on the Amazon CloudFront service. Use the attributes of this class as arguments to method CreateDistribution2020_05_31.

You shouldn't make instances of this class. Each attribute should be used as a named argument in the call to CreateDistribution2020_05_31.

SYNOPSIS

my $cloudfront = Paws->service('CloudFront');
my $CreateDistributionResult = $cloudfront->CreateDistribution(
  DistributionConfig => {
    CallerReference      => 'Mystring',
    Comment              => 'MyCommentType',
    DefaultCacheBehavior => {
      TargetOriginId       => 'Mystring',
      ViewerProtocolPolicy =>
        'allow-all',    # values: allow-all, https-only, redirect-to-https
      AllowedMethods => {
        Items => [
          'GET', ...  # values: GET, HEAD, POST, PUT, PATCH, OPTIONS, DELETE
        ],
        Quantity      => 1,
        CachedMethods => {
          Items => [
            'GET',
            ...       # values: GET, HEAD, POST, PUT, PATCH, OPTIONS, DELETE
          ],
          Quantity => 1,

        },    # OPTIONAL
      },    # OPTIONAL
      CachePolicyId          => 'Mystring',
      Compress               => 1,            # OPTIONAL
      DefaultTTL             => 1,            # OPTIONAL
      FieldLevelEncryptionId => 'Mystring',
      ForwardedValues        => {
        Cookies => {
          Forward          => 'none',         # values: none, whitelist, all
          WhitelistedNames => {
            Quantity => 1,
            Items    => [ 'Mystring', ... ],    # OPTIONAL
          },    # OPTIONAL
        },
        QueryString => 1,    # OPTIONAL
        Headers     => {
          Quantity => 1,
          Items    => [ 'Mystring', ... ],    # OPTIONAL
        },    # OPTIONAL
        QueryStringCacheKeys => {
          Quantity => 1,
          Items    => [ 'Mystring', ... ],    # OPTIONAL
        },    # OPTIONAL
      },    # OPTIONAL
      FunctionAssociations => {
        Quantity => 1,
        Items    => [
          {
            EventType => 'viewer-request'
            , # values: viewer-request, viewer-response, origin-request, origin-response
            FunctionARN => 'MyFunctionARN',    # max: 108

          },
          ...
        ],    # OPTIONAL
      },    # OPTIONAL
      LambdaFunctionAssociations => {
        Quantity => 1,
        Items    => [
          {
            EventType => 'viewer-request'
            , # values: viewer-request, viewer-response, origin-request, origin-response
            LambdaFunctionARN => 'MyLambdaFunctionARN',
            IncludeBody       => 1,                       # OPTIONAL
          },
          ...
        ],    # OPTIONAL
      },    # OPTIONAL
      MaxTTL                => 1,            # OPTIONAL
      MinTTL                => 1,            # OPTIONAL
      OriginRequestPolicyId => 'Mystring',
      RealtimeLogConfigArn  => 'Mystring',
      SmoothStreaming       => 1,            # OPTIONAL
      TrustedKeyGroups      => {
        Enabled  => 1,                       # OPTIONAL
        Quantity => 1,
        Items    => [ 'Mystring', ... ],     # OPTIONAL
      },    # OPTIONAL
      TrustedSigners => {
        Enabled  => 1,                      # OPTIONAL
        Quantity => 1,
        Items    => [ 'Mystring', ... ],    # OPTIONAL
      },    # OPTIONAL
    },
    Enabled => 1,    # OPTIONAL
    Origins => {
      Items => [
        {
          DomainName         => 'Mystring',
          Id                 => 'Mystring',
          ConnectionAttempts => 1,
          ConnectionTimeout  => 1,
          CustomHeaders      => {
            Quantity => 1,
            Items    => [
              {
                HeaderName  => 'Mystring',
                HeaderValue => 'Mystring',

              },
              ...
            ],    # OPTIONAL
          },    # OPTIONAL
          CustomOriginConfig => {
            HTTPPort             => 1,
            HTTPSPort            => 1,
            OriginProtocolPolicy =>
              'http-only',    # values: http-only, match-viewer, https-only
            OriginKeepaliveTimeout => 1,
            OriginReadTimeout      => 1,
            OriginSslProtocols     => {
              Items => [
                'SSLv3', ...    # values: SSLv3, TLSv1, TLSv1.1, TLSv1.2
              ],
              Quantity => 1,

            },    # OPTIONAL
          },    # OPTIONAL
          OriginPath   => 'Mystring',
          OriginShield => {
            Enabled            => 1,     # OPTIONAL
            OriginShieldRegion =>
              'MyOriginShieldRegion',    # min: 1, max: 32; OPTIONAL
          },    # OPTIONAL
          S3OriginConfig => {
            OriginAccessIdentity => 'Mystring',

          },    # OPTIONAL
        },
        ...
      ],    # min: 1
      Quantity => 1,

    },
    Aliases => {
      Quantity => 1,
      Items    => [ 'Mystring', ... ],    # OPTIONAL
    },    # OPTIONAL
    CacheBehaviors => {
      Quantity => 1,
      Items    => [
        {
          PathPattern          => 'Mystring',
          TargetOriginId       => 'Mystring',
          ViewerProtocolPolicy =>
            'allow-all',  # values: allow-all, https-only, redirect-to-https
          AllowedMethods => {
            Items => [
              'GET',
              ...    # values: GET, HEAD, POST, PUT, PATCH, OPTIONS, DELETE
            ],
            Quantity      => 1,
            CachedMethods => {
              Items => [
                'GET',
                ...   # values: GET, HEAD, POST, PUT, PATCH, OPTIONS, DELETE
              ],
              Quantity => 1,

            },    # OPTIONAL
          },    # OPTIONAL
          CachePolicyId          => 'Mystring',
          Compress               => 1,            # OPTIONAL
          DefaultTTL             => 1,            # OPTIONAL
          FieldLevelEncryptionId => 'Mystring',
          ForwardedValues        => {
            Cookies => {
              Forward          => 'none',    # values: none, whitelist, all
              WhitelistedNames => {
                Quantity => 1,
                Items    => [ 'Mystring', ... ],    # OPTIONAL
              },    # OPTIONAL
            },
            QueryString => 1,    # OPTIONAL
            Headers     => {
              Quantity => 1,
              Items    => [ 'Mystring', ... ],    # OPTIONAL
            },    # OPTIONAL
            QueryStringCacheKeys => {
              Quantity => 1,
              Items    => [ 'Mystring', ... ],    # OPTIONAL
            },    # OPTIONAL
          },    # OPTIONAL
          FunctionAssociations => {
            Quantity => 1,
            Items    => [
              {
                EventType => 'viewer-request'
                , # values: viewer-request, viewer-response, origin-request, origin-response
                FunctionARN => 'MyFunctionARN',    # max: 108

              },
              ...
            ],    # OPTIONAL
          },    # OPTIONAL
          LambdaFunctionAssociations => {
            Quantity => 1,
            Items    => [
              {
                EventType => 'viewer-request'
                , # values: viewer-request, viewer-response, origin-request, origin-response
                LambdaFunctionARN => 'MyLambdaFunctionARN',
                IncludeBody       => 1,                       # OPTIONAL
              },
              ...
            ],    # OPTIONAL
          },    # OPTIONAL
          MaxTTL                => 1,            # OPTIONAL
          MinTTL                => 1,            # OPTIONAL
          OriginRequestPolicyId => 'Mystring',
          RealtimeLogConfigArn  => 'Mystring',
          SmoothStreaming       => 1,            # OPTIONAL
          TrustedKeyGroups      => {
            Enabled  => 1,                       # OPTIONAL
            Quantity => 1,
            Items    => [ 'Mystring', ... ],     # OPTIONAL
          },    # OPTIONAL
          TrustedSigners => {
            Enabled  => 1,                      # OPTIONAL
            Quantity => 1,
            Items    => [ 'Mystring', ... ],    # OPTIONAL
          },    # OPTIONAL
        },
        ...
      ],    # OPTIONAL
    },    # OPTIONAL
    CustomErrorResponses => {
      Quantity => 1,
      Items    => [
        {
          ErrorCode          => 1,
          ErrorCachingMinTTL => 1,            # OPTIONAL
          ResponseCode       => 'Mystring',
          ResponsePagePath   => 'Mystring',
        },
        ...
      ],    # OPTIONAL
    },    # OPTIONAL
    DefaultRootObject => 'Mystring',
    HttpVersion       => 'http1.1',    # values: http1.1, http2; OPTIONAL
    IsIPV6Enabled     => 1,            # OPTIONAL
    Logging           => {
      Bucket         => 'Mystring',
      Enabled        => 1,             # OPTIONAL
      IncludeCookies => 1,             # OPTIONAL
      Prefix         => 'Mystring',

    },    # OPTIONAL
    OriginGroups => {
      Quantity => 1,
      Items    => [
        {
          FailoverCriteria => {
            StatusCodes => {
              Items    => [ 1, ... ],    # min: 1
              Quantity => 1,

            },

          },
          Id      => 'Mystring',
          Members => {
            Items => [
              {
                OriginId => 'Mystring',

              },
              ...
            ],    # min: 2, max: 2
            Quantity => 1,

          },

        },
        ...
      ],    # OPTIONAL
    },    # OPTIONAL
    PriceClass => 'PriceClass_100'
    ,     # values: PriceClass_100, PriceClass_200, PriceClass_All; OPTIONAL
    Restrictions => {
      GeoRestriction => {
        Quantity        => 1,
        RestrictionType => 'blacklist', # values: blacklist, whitelist, none
        Items           => [ 'Mystring', ... ],    # OPTIONAL
      },

    },    # OPTIONAL
    ViewerCertificate => {
      ACMCertificateArn => 'Mystring',
      Certificate       => 'Mystring',
      CertificateSource =>
        'cloudfront',    # values: cloudfront, iam, acm; OPTIONAL
      CloudFrontDefaultCertificate => 1,            # OPTIONAL
      IAMCertificateId             => 'Mystring',
      MinimumProtocolVersion       => 'SSLv3'
      , # values: SSLv3, TLSv1, TLSv1_2016, TLSv1.1_2016, TLSv1.2_2018, TLSv1.2_2019, TLSv1.2_2021; OPTIONAL
      SSLSupportMethod =>
        'sni-only',    # values: sni-only, vip, static-ip; OPTIONAL
    },    # OPTIONAL
    WebACLId => 'Mystring',
  },

);

# Results:
my $Distribution = $CreateDistributionResult->Distribution;
my $ETag         = $CreateDistributionResult->ETag;
my $Location     = $CreateDistributionResult->Location;

# Returns a L<Paws::CloudFront::CreateDistributionResult> object.

Values for attributes that are native types (Int, String, Float, etc) can passed as-is (scalar values). Values for complex Types (objects) can be passed as a HashRef. The keys and values of the hashref will be used to instance the underlying object. For the AWS API documentation, see https://docs.aws.amazon.com/goto/WebAPI/cloudfront/CreateDistribution

ATTRIBUTES

REQUIRED DistributionConfig => Paws::CloudFront::DistributionConfig

The distribution's configuration information.

SEE ALSO

This class forms part of Paws, documenting arguments for method CreateDistribution2020_05_31 in Paws::CloudFront

BUGS and CONTRIBUTIONS

The source code is located here: https://github.com/pplu/aws-sdk-perl

Please report bugs to: https://github.com/pplu/aws-sdk-perl/issues