o .&a @sddlZddlZddlZddlmZmZddlmZmZm Z m Z ddl m Z dZ dZdZdZd Zd Zd d d ddZdddddZddZddZddZddZddZddZdS) N)urlopenURLError)SystemUbuntuWindowsRHELtimeoutd z^[A-Za-z0-9+=,.@_-]+$z2^arn:aws:iam::[0-9]{12}:user/[A-Za-z0-9/+=,.@_-]+$z instance-namez--instance-name Tz/Required. The name of the on-premises instance.)namesynopsisrequired help_textz iam-user-arnz--iam-user-arn Fz@Optional. The IAM user associated with the on-premises instance.cCs0|jr|j|_n|jd|_|jstddS)NregionzRegion not specified.)rsessionget_config_variable RuntimeError)paramsparsed_globalsrH/usr/lib/python3/dist-packages/awscli/customizations/codedeploy/utils.pyvalidate_region2s  rcCsT|jr&tt|jstd|jdrtdt|jtkr(tdtdSdS)Nz*Instance name contains invalid characters.zi-z%Instance name cannot start with 'i-'.z3Instance name cannot be longer than {0} characters.) instance_namerematchINSTANCE_NAME_PATTERN ValueError startswithlenMAX_INSTANCE_NAME_LENGTHformatrrrrvalidate_instance_name;s r%cCsr|jr5t|jtkrtdt|jD]"}t|dtkr%tdtt|dtkr4tdtqdSdS)Nz.Instances can only have a maximum of {0} tags.Keyz-Tag Key cannot be longer than {0} characters.Valuez/Tag Value cannot be longer than {0} characters.)tagsr!MAX_TAGS_PER_INSTANCErr#MAX_TAG_KEY_LENGTHMAX_TAG_VALUE_LENGTH)rtagrrr validate_tagsIs. r-cCs$|jrtt|jstddSdS)NzInvalid IAM user ARN.) iam_user_arnrrIAM_USER_ARN_PATTERNrr$rrrvalidate_iam_user_arn`s  r0c Cstdkr tjd}d|vrt||_d|vrt||_n tdkr+t||_d|vr4tt j z t ddd td t t fyJYdSw) NLinuxrrzRed Hat Enterprise Linux Serverrsystemz(http://169.254.169.254/latest/meta-data/rz'Amazon EC2 instances are not supported.)platformr2awsclicompatlinux_distributionrrrrrUNSUPPORTED_SYSTEM_MSGrrr )r distributionrrrvalidate_instancefs&      r:cCsp|dd}||vr4t||}|r6tdt|}|r)|d|_|d|_dStd |dddSdS)N-_zs3://(.+?)/(.+)r3zC--{0} must specify the Amazon S3 URL format as s3:///.) replacegetattrrrstrgroupbucketkeyrr#)rarg_name s3_locationmatcherrrrvalidate_s3_locationzs    rG)r4r awscli.compatr5rr(awscli.customizations.codedeploy.systemsrrrrsocketr r"r)r*r+rr/INSTANCE_NAME_ARGIAM_USER_ARN_ARGrr%r-r0r:rGrrrrs8