The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Paws::EC2::CreateLaunchTemplate - Arguments for method CreateLaunchTemplate on Paws::EC2

DESCRIPTION

This class represents the parameters used for calling the method CreateLaunchTemplate on the Amazon Elastic Compute Cloud service. Use the attributes of this class as arguments to method CreateLaunchTemplate.

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

SYNOPSIS

    my $ec2 = Paws->service('EC2');
    my $CreateLaunchTemplateResult = $ec2->CreateLaunchTemplate(
      LaunchTemplateData => {
        BlockDeviceMappings => [
          {
            DeviceName => 'MyString',    # OPTIONAL
            Ebs        => {
              DeleteOnTermination => 1,                 # OPTIONAL
              Encrypted           => 1,                 # OPTIONAL
              Iops                => 1,                 # OPTIONAL
              KmsKeyId            => 'MyString',        # OPTIONAL
              SnapshotId          => 'MySnapshotId',    # OPTIONAL
              VolumeSize          => 1,                 # OPTIONAL
              VolumeType =>
                'standard',    # values: standard, io1, gp2, sc1, st1; OPTIONAL
            },    # OPTIONAL
            NoDevice    => 'MyString',    # OPTIONAL
            VirtualName => 'MyString',    # OPTIONAL
          },
          ...
        ],                                # OPTIONAL
        CapacityReservationSpecification => {
          CapacityReservationPreference =>
            'open',                       # values: open, none; OPTIONAL
          CapacityReservationTarget => {
            CapacityReservationId => 'MyCapacityReservationId',    # OPTIONAL
          },    # OPTIONAL
        },    # OPTIONAL
        CpuOptions => {
          CoreCount      => 1,    # OPTIONAL
          ThreadsPerCore => 1,    # OPTIONAL
        },    # OPTIONAL
        CreditSpecification => {
          CpuCredits => 'MyString',    # OPTIONAL

        },    # OPTIONAL
        DisableApiTermination    => 1,    # OPTIONAL
        EbsOptimized             => 1,    # OPTIONAL
        ElasticGpuSpecifications => [
          {
            Type => 'MyString',           # OPTIONAL

          },
          ...
        ],                                # OPTIONAL
        ElasticInferenceAccelerators => [
          {
            Type  => 'MyString',          # OPTIONAL
            Count => 1,                   # min: 1; OPTIONAL
          },
          ...
        ],                                # OPTIONAL
        HibernationOptions => {
          Configured => 1,                # OPTIONAL
        },    # OPTIONAL
        IamInstanceProfile => {
          Arn  => 'MyString',    # OPTIONAL
          Name => 'MyString',    # OPTIONAL
        },    # OPTIONAL
        ImageId => 'MyImageId',    # OPTIONAL
        InstanceInitiatedShutdownBehavior =>
          'stop',                  # values: stop, terminate; OPTIONAL
        InstanceMarketOptions => {
          MarketType  => 'spot',    # values: spot; OPTIONAL
          SpotOptions => {
            BlockDurationMinutes => 1,    # OPTIONAL
            InstanceInterruptionBehavior =>
              'hibernate',    # values: hibernate, stop, terminate; OPTIONAL
            MaxPrice => 'MyString',    # OPTIONAL
            SpotInstanceType =>
              'one-time',              # values: one-time, persistent; OPTIONAL
            ValidUntil => '1970-01-01T01:00:00',    # OPTIONAL
          },    # OPTIONAL
        },    # OPTIONAL
        InstanceType => 't1.micro'
        , # values: t1.micro, t2.nano, t2.micro, t2.small, t2.medium, t2.large, t2.xlarge, t2.2xlarge, t3.nano, t3.micro, t3.small, t3.medium, t3.large, t3.xlarge, t3.2xlarge, t3a.nano, t3a.micro, t3a.small, t3a.medium, t3a.large, t3a.xlarge, t3a.2xlarge, m1.small, m1.medium, m1.large, m1.xlarge, m3.medium, m3.large, m3.xlarge, m3.2xlarge, m4.large, m4.xlarge, m4.2xlarge, m4.4xlarge, m4.10xlarge, m4.16xlarge, m2.xlarge, m2.2xlarge, m2.4xlarge, cr1.8xlarge, r3.large, r3.xlarge, r3.2xlarge, r3.4xlarge, r3.8xlarge, r4.large, r4.xlarge, r4.2xlarge, r4.4xlarge, r4.8xlarge, r4.16xlarge, r5.large, r5.xlarge, r5.2xlarge, r5.4xlarge, r5.8xlarge, r5.12xlarge, r5.16xlarge, r5.24xlarge, r5.metal, r5a.large, r5a.xlarge, r5a.2xlarge, r5a.4xlarge, r5a.8xlarge, r5a.12xlarge, r5a.16xlarge, r5a.24xlarge, r5d.large, r5d.xlarge, r5d.2xlarge, r5d.4xlarge, r5d.8xlarge, r5d.12xlarge, r5d.16xlarge, r5d.24xlarge, r5d.metal, r5ad.large, r5ad.xlarge, r5ad.2xlarge, r5ad.4xlarge, r5ad.8xlarge, r5ad.12xlarge, r5ad.16xlarge, r5ad.24xlarge, x1.16xlarge, x1.32xlarge, x1e.xlarge, x1e.2xlarge, x1e.4xlarge, x1e.8xlarge, x1e.16xlarge, x1e.32xlarge, i2.xlarge, i2.2xlarge, i2.4xlarge, i2.8xlarge, i3.large, i3.xlarge, i3.2xlarge, i3.4xlarge, i3.8xlarge, i3.16xlarge, i3.metal, i3en.large, i3en.xlarge, i3en.2xlarge, i3en.3xlarge, i3en.6xlarge, i3en.12xlarge, i3en.24xlarge, i3en.metal, hi1.4xlarge, hs1.8xlarge, c1.medium, c1.xlarge, c3.large, c3.xlarge, c3.2xlarge, c3.4xlarge, c3.8xlarge, c4.large, c4.xlarge, c4.2xlarge, c4.4xlarge, c4.8xlarge, c5.large, c5.xlarge, c5.2xlarge, c5.4xlarge, c5.9xlarge, c5.12xlarge, c5.18xlarge, c5.24xlarge, c5.metal, c5d.large, c5d.xlarge, c5d.2xlarge, c5d.4xlarge, c5d.9xlarge, c5d.12xlarge, c5d.18xlarge, c5d.24xlarge, c5d.metal, c5n.large, c5n.xlarge, c5n.2xlarge, c5n.4xlarge, c5n.9xlarge, c5n.18xlarge, cc1.4xlarge, cc2.8xlarge, g2.2xlarge, g2.8xlarge, g3.4xlarge, g3.8xlarge, g3.16xlarge, g3s.xlarge, g4dn.xlarge, g4dn.2xlarge, g4dn.4xlarge, g4dn.8xlarge, g4dn.12xlarge, g4dn.16xlarge, cg1.4xlarge, p2.xlarge, p2.8xlarge, p2.16xlarge, p3.2xlarge, p3.8xlarge, p3.16xlarge, p3dn.24xlarge, d2.xlarge, d2.2xlarge, d2.4xlarge, d2.8xlarge, f1.2xlarge, f1.4xlarge, f1.16xlarge, m5.large, m5.xlarge, m5.2xlarge, m5.4xlarge, m5.8xlarge, m5.12xlarge, m5.16xlarge, m5.24xlarge, m5.metal, m5a.large, m5a.xlarge, m5a.2xlarge, m5a.4xlarge, m5a.8xlarge, m5a.12xlarge, m5a.16xlarge, m5a.24xlarge, m5d.large, m5d.xlarge, m5d.2xlarge, m5d.4xlarge, m5d.8xlarge, m5d.12xlarge, m5d.16xlarge, m5d.24xlarge, m5d.metal, m5ad.large, m5ad.xlarge, m5ad.2xlarge, m5ad.4xlarge, m5ad.8xlarge, m5ad.12xlarge, m5ad.16xlarge, m5ad.24xlarge, h1.2xlarge, h1.4xlarge, h1.8xlarge, h1.16xlarge, z1d.large, z1d.xlarge, z1d.2xlarge, z1d.3xlarge, z1d.6xlarge, z1d.12xlarge, z1d.metal, u-6tb1.metal, u-9tb1.metal, u-12tb1.metal, u-18tb1.metal, u-24tb1.metal, a1.medium, a1.large, a1.xlarge, a1.2xlarge, a1.4xlarge, a1.metal, m5dn.large, m5dn.xlarge, m5dn.2xlarge, m5dn.4xlarge, m5dn.8xlarge, m5dn.12xlarge, m5dn.16xlarge, m5dn.24xlarge, m5n.large, m5n.xlarge, m5n.2xlarge, m5n.4xlarge, m5n.8xlarge, m5n.12xlarge, m5n.16xlarge, m5n.24xlarge, r5dn.large, r5dn.xlarge, r5dn.2xlarge, r5dn.4xlarge, r5dn.8xlarge, r5dn.12xlarge, r5dn.16xlarge, r5dn.24xlarge, r5n.large, r5n.xlarge, r5n.2xlarge, r5n.4xlarge, r5n.8xlarge, r5n.12xlarge, r5n.16xlarge, r5n.24xlarge, inf1.xlarge, inf1.2xlarge, inf1.6xlarge, inf1.24xlarge; OPTIONAL
        KernelId              => 'MyKernelId',       # OPTIONAL
        KeyName               => 'MyKeyPairName',    # OPTIONAL
        LicenseSpecifications => [
          {
            LicenseConfigurationArn => 'MyString',    # OPTIONAL
          },
          ...
        ],                                            # OPTIONAL
        MetadataOptions => {
          HttpEndpoint => 'disabled',    # values: disabled, enabled; OPTIONAL
          HttpPutResponseHopLimit => 1,  # OPTIONAL
          HttpTokens => 'optional',      # values: optional, required; OPTIONAL
        },    # OPTIONAL
        Monitoring => {
          Enabled => 1,    # OPTIONAL
        },    # OPTIONAL
        NetworkInterfaces => [
          {
            AssociatePublicIpAddress => 1,                            # OPTIONAL
            DeleteOnTermination      => 1,                            # OPTIONAL
            Description              => 'MyString',                   # OPTIONAL
            DeviceIndex              => 1,                            # OPTIONAL
            Groups                   => [ 'MySecurityGroupId', ... ], # OPTIONAL
            InterfaceType            => 'MyString',                   # OPTIONAL
            Ipv6AddressCount         => 1,                            # OPTIONAL
            Ipv6Addresses            => [
              {
                Ipv6Address => 'MyString',                            # OPTIONAL
              },
              ...
            ],                                                        # OPTIONAL
            NetworkInterfaceId => 'MyNetworkInterfaceId',             # OPTIONAL
            PrivateIpAddress   => 'MyString',                         # OPTIONAL
            PrivateIpAddresses => [
              {
                Primary          => 1,                                # OPTIONAL
                PrivateIpAddress => 'MyString',                       # OPTIONAL
              },
              ...
            ],                                                        # OPTIONAL
            SecondaryPrivateIpAddressCount => 1,                      # OPTIONAL
            SubnetId                       => 'MySubnetId',           # OPTIONAL
          },
          ...
        ],                                                            # OPTIONAL
        Placement => {
          Affinity             => 'MyString',                         # OPTIONAL
          AvailabilityZone     => 'MyString',                         # OPTIONAL
          GroupName            => 'MyPlacementGroupName',             # OPTIONAL
          HostId               => 'MyDedicatedHostId',                # OPTIONAL
          HostResourceGroupArn => 'MyString',                         # OPTIONAL
          PartitionNumber      => 1,                                  # OPTIONAL
          SpreadDomain         => 'MyString',                         # OPTIONAL
          Tenancy => 'default',    # values: default, dedicated, host; OPTIONAL
        },    # OPTIONAL
        RamDiskId         => 'MyRamdiskId',                     # OPTIONAL
        SecurityGroupIds  => [ 'MySecurityGroupId', ... ],      # OPTIONAL
        SecurityGroups    => [ 'MySecurityGroupName', ... ],    # OPTIONAL
        TagSpecifications => [
          {
            ResourceType => 'client-vpn-endpoint'
            , # values: client-vpn-endpoint, customer-gateway, dedicated-host, dhcp-options, elastic-ip, fleet, fpga-image, host-reservation, image, instance, internet-gateway, key-pair, launch-template, natgateway, network-acl, network-interface, placement-group, reserved-instances, route-table, security-group, snapshot, spot-fleet-request, spot-instances-request, subnet, traffic-mirror-filter, traffic-mirror-session, traffic-mirror-target, transit-gateway, transit-gateway-attachment, transit-gateway-multicast-domain, transit-gateway-route-table, volume, vpc, vpc-peering-connection, vpn-connection, vpn-gateway; OPTIONAL
            Tags => [
              {
                Key   => 'MyString',    # OPTIONAL
                Value => 'MyString',    # OPTIONAL
              },
              ...
            ],                          # OPTIONAL
          },
          ...
        ],                              # OPTIONAL
        UserData => 'MyString',         # OPTIONAL
      },
      LaunchTemplateName => 'MyLaunchTemplateName',
      ClientToken        => 'MyString',               # OPTIONAL
      DryRun             => 1,                        # OPTIONAL
      TagSpecifications  => [
        {
          ResourceType => 'client-vpn-endpoint'
          , # values: client-vpn-endpoint, customer-gateway, dedicated-host, dhcp-options, elastic-ip, fleet, fpga-image, host-reservation, image, instance, internet-gateway, key-pair, launch-template, natgateway, network-acl, network-interface, placement-group, reserved-instances, route-table, security-group, snapshot, spot-fleet-request, spot-instances-request, subnet, traffic-mirror-filter, traffic-mirror-session, traffic-mirror-target, transit-gateway, transit-gateway-attachment, transit-gateway-multicast-domain, transit-gateway-route-table, volume, vpc, vpc-peering-connection, vpn-connection, vpn-gateway; OPTIONAL
          Tags => [
            {
              Key   => 'MyString',    # OPTIONAL
              Value => 'MyString',    # OPTIONAL
            },
            ...
          ],                          # OPTIONAL
        },
        ...
      ],                              # OPTIONAL
      VersionDescription => 'MyVersionDescription',    # OPTIONAL
    );

    # Results:
    my $LaunchTemplate = $CreateLaunchTemplateResult->LaunchTemplate;

    # Returns a L<Paws::EC2::CreateLaunchTemplateResult> 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/ec2/CreateLaunchTemplate

ATTRIBUTES

ClientToken => Str

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html).

Constraint: Maximum 128 ASCII characters.

DryRun => Bool

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

REQUIRED LaunchTemplateData => Paws::EC2::RequestLaunchTemplateData

The information for the launch template.

REQUIRED LaunchTemplateName => Str

A name for the launch template.

TagSpecifications => ArrayRef[Paws::EC2::TagSpecification]

The tags to apply to the launch template during creation.

VersionDescription => Str

A description for the first version of the launch template.

SEE ALSO

This class forms part of Paws, documenting arguments for method CreateLaunchTemplate in Paws::EC2

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