From 23542ba6cdc4fe95df63968ac31a7c51ec38ca67 Mon Sep 17 00:00:00 2001 From: Matthias Gatto Date: Fri, 26 Jul 2024 11:53:59 +0200 Subject: [PATCH 1/4] update json-search for CI Signed-off-by: Matthias Gatto --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e24f0b0..1a39251 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,7 +15,7 @@ jobs: - uses: snickerbockers/submodules-init@v4 - name: apt is for w__p run: | - wget https://github.com/cosmo-ray/json-search/releases/download/0.2/json-search-x86_64.AppImage + wget https://github.com/cosmo-ray/json-search/releases/download/0.3.1/json-search-x86_64.AppImage chmod +x json-search-x86_64.AppImage sudo cp json-search-x86_64.AppImage /bin/json-search sudo wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/bin/yq From 23b02eecf1a76be6bc63ca3c983d6043cdd01b04 Mon Sep 17 00:00:00 2001 From: Matthias Gatto Date: Fri, 26 Jul 2024 15:34:25 +0200 Subject: [PATCH 2/4] update cognac & osc-sdk-C Signed-off-by: Matthias Gatto --- COGNAC | 2 +- local-tests.sh | 2 +- main-helper.h | 14 +- main.c | 14649 ++++++++++++++++++++++++++++++++++++++--------- osc-sdk-C | 2 +- osc_sdk.c | 5941 +++++++++---------- osc_sdk.h | 7349 ++++++++++++------------ 7 files changed, 18519 insertions(+), 9440 deletions(-) diff --git a/COGNAC b/COGNAC index 382811c..0a5617f 160000 --- a/COGNAC +++ b/COGNAC @@ -1 +1 @@ -Subproject commit 382811ca013791f89ffcf444e933dbccc60a2c17 +Subproject commit 0a5617f451a8ea0422d7888c733b6afaa21b0dc1 diff --git a/local-tests.sh b/local-tests.sh index 6afbabf..1e4b233 100755 --- a/local-tests.sh +++ b/local-tests.sh @@ -43,7 +43,7 @@ oapi-cli --password=useless --login=non-existant CreateVms ReadVms ReadVms -- echo "[Test unknown user is unknown OK]" trap "echo [Test Create vms and read with user 0 FAIL]" ERR -oapi-cli --password='ashita wa dochida' --login='joe' CreateVms ReadVms ReadVms --Filters.VmIds[] i-00000003 | jq .Vms > /dev/null +oapi-cli --password='ashita wa dochida' --login='joe' CreateVms --ImageId ami-ffffff00 ReadVms ReadVms --Filters.VmIds[] i-00000003 | jq .Vms > /dev/null echo '[Test Create vms and read with user 0 OK]' trap "echo [Test read vm with user and --raw-print 0 FAIL]" ERR diff --git a/main-helper.h b/main-helper.h index d1f1ddb..52662a1 100644 --- a/main-helper.h +++ b/main-helper.h @@ -34,10 +34,18 @@ struct ptr_array { } \ } while (0) +/* + * use to be sizeof v, but if I pass "" to SET_NEXT, sizeof v is 1, and I expect + * char *, + * because the array can contain int and double too, I'll gowith allocated the + * biggerst size for all + */ +#define OBJ_SIZE 8 + #define SET_NEXT(a,v,pa) do { \ int cnt; \ if (!a) { \ - a = calloc(64, sizeof(v)); \ + a = calloc(64, OBJ_SIZE); \ if (!a) break; \ if (ptr_array_append(pa, a) < 0) \ break; \ @@ -45,10 +53,10 @@ struct ptr_array { for (cnt = 0; a[cnt]; ++cnt); \ if (cnt && (cnt % 63) == 0) { \ int idx = ptr_array_get_idx(pa, a); \ - pa->ptrs[idx] = realloc(a, (cnt + 1 + 64) * sizeof(v)); \ + pa->ptrs[idx] = realloc(a, (cnt + 1 + 64) * OBJ_SIZE); \ if (!pa->ptrs[idx]) { free(a); break; } \ a = pa->ptrs[idx]; \ - memset(a + cnt + 1, 0, 64 * sizeof(v)); \ + memset(a + cnt + 1, 0, 64 * OBJ_SIZE); \ } \ a[cnt] = v; \ } while (0) diff --git a/main.c b/main.c index 6a1e511..eea22cb 100644 --- a/main.c +++ b/main.c @@ -417,17 +417,17 @@ int with_parser(void *s, char *str, char *aa, struct ptr_array *pa); int accepter_net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct accepter_net *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = argcmp(str, "IpRange")) == 0 || aret == '=') { + if ((aret = strcmp(str, "IpRange")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "IpRange argument missing\n"); s->ip_range = aa; // string string } else - if ((aret = argcmp(str, "NetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string @@ -442,27 +442,27 @@ int accepter_net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int access_key_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct access_key *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccessKeyId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AccessKeyId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccessKeyId argument missing\n"); s->access_key_id = aa; // string string } else - if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = argcmp(str, "ExpirationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ExpirationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ExpirationDate argument missing\n"); s->expiration_date = aa; // string string } else - if ((aret = argcmp(str, "LastModificationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LastModificationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LastModificationDate argument missing\n"); s->last_modification_date = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string @@ -477,32 +477,32 @@ int access_key_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int access_key_secret_key_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct access_key_secret_key *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccessKeyId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AccessKeyId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccessKeyId argument missing\n"); s->access_key_id = aa; // string string } else - if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = argcmp(str, "ExpirationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ExpirationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ExpirationDate argument missing\n"); s->expiration_date = aa; // string string } else - if ((aret = argcmp(str, "LastModificationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LastModificationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LastModificationDate argument missing\n"); s->last_modification_date = aa; // string string } else - if ((aret = argcmp(str, "SecretKey")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SecretKey")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SecretKey argument missing\n"); s->secret_key = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string @@ -517,7 +517,7 @@ int access_key_secret_key_parser(void *v_s, char *str, char *aa, struct ptr_arra int access_log_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct access_log *s = v_s; int aret = 0; - if ((aret = argcmp(str, "IsEnabled")) == 0 || aret == '=') { + if ((aret = strcmp(str, "IsEnabled")) == 0 || aret == '=' || aret == '.') { s->is_set_is_enabled = 1; if (!aa || !strcasecmp(aa, "true")) { s->is_enabled = 1; @@ -527,17 +527,17 @@ int access_log_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("IsEnabled require true/false\n"); } } else - if ((aret = argcmp(str, "OsuBucketName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "OsuBucketName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OsuBucketName argument missing\n"); s->osu_bucket_name = aa; // string string } else - if ((aret = argcmp(str, "OsuBucketPrefix")) == 0 || aret == '=') { + if ((aret = strcmp(str, "OsuBucketPrefix")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OsuBucketPrefix argument missing\n"); s->osu_bucket_prefix = aa; // string string } else - if ((aret = argcmp(str, "PublicationInterval")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PublicationInterval")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicationInterval argument missing\n"); s->is_set_publication_interval = 1; s->publication_interval = atoi(aa); @@ -552,79 +552,100 @@ int access_log_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int account_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct account *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = argcmp(str, "AdditionalEmails")) == 0 || aret == '=') { - TRY(!aa, "AdditionalEmails argument missing\n"); - s->additional_emails_str = aa; + if ((aret = strcmp(str, "AdditionalEmails")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "AdditionalEmails argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "AdditionalEmails require an index\n"); + if (s->additional_emails) { + for (; s->additional_emails[last]; ++last); + } + if (pos < last) { + s->additional_emails[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->additional_emails, "", pa); + SET_NEXT(s->additional_emails, (aa), pa); + } + } else { + TRY(!aa, "AdditionalEmails argument missing\n"); + s->additional_emails_str = aa; + } } else if (!(aret = strcmp(str, "AdditionalEmails[]")) || aret == '=') { TRY(!aa, "AdditionalEmails[] argument missing\n"); SET_NEXT(s->additional_emails, (aa), pa); } else - if ((aret = argcmp(str, "City")) == 0 || aret == '=') { + if ((aret = strcmp(str, "City")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "City argument missing\n"); s->city = aa; // string string } else - if ((aret = argcmp(str, "CompanyName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CompanyName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CompanyName argument missing\n"); s->company_name = aa; // string string } else - if ((aret = argcmp(str, "Country")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Country")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Country argument missing\n"); s->country = aa; // string string } else - if ((aret = argcmp(str, "CustomerId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CustomerId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CustomerId argument missing\n"); s->customer_id = aa; // string string } else - if ((aret = argcmp(str, "Email")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Email")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Email argument missing\n"); s->email = aa; // string string } else - if ((aret = argcmp(str, "FirstName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "FirstName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "FirstName argument missing\n"); s->first_name = aa; // string string } else - if ((aret = argcmp(str, "JobTitle")) == 0 || aret == '=') { + if ((aret = strcmp(str, "JobTitle")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "JobTitle argument missing\n"); s->job_title = aa; // string string } else - if ((aret = argcmp(str, "LastName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LastName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LastName argument missing\n"); s->last_name = aa; // string string } else - if ((aret = argcmp(str, "MobileNumber")) == 0 || aret == '=') { + if ((aret = strcmp(str, "MobileNumber")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "MobileNumber argument missing\n"); s->mobile_number = aa; // string string } else - if ((aret = argcmp(str, "PhoneNumber")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PhoneNumber")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PhoneNumber argument missing\n"); s->phone_number = aa; // string string } else - if ((aret = argcmp(str, "StateProvince")) == 0 || aret == '=') { + if ((aret = strcmp(str, "StateProvince")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "StateProvince argument missing\n"); s->state_province = aa; // string string } else - if ((aret = argcmp(str, "VatNumber")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VatNumber")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VatNumber argument missing\n"); s->vat_number = aa; // string string } else - if ((aret = argcmp(str, "ZipCode")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ZipCode")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ZipCode argument missing\n"); s->zip_code = aa; // string string @@ -639,12 +660,12 @@ int account_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int api_access_policy_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct api_access_policy *s = v_s; int aret = 0; - if ((aret = argcmp(str, "MaxAccessKeyExpirationSeconds")) == 0 || aret == '=') { + if ((aret = strcmp(str, "MaxAccessKeyExpirationSeconds")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "MaxAccessKeyExpirationSeconds argument missing\n"); s->is_set_max_access_key_expiration_seconds = 1; s->max_access_key_expiration_seconds = atoi(aa); } else - if ((aret = argcmp(str, "RequireTrustedEnv")) == 0 || aret == '=') { + if ((aret = strcmp(str, "RequireTrustedEnv")) == 0 || aret == '=' || aret == '.') { s->is_set_require_trusted_env = 1; if (!aa || !strcasecmp(aa, "true")) { s->require_trusted_env = 1; @@ -664,33 +685,96 @@ int api_access_policy_parser(void *v_s, char *str, char *aa, struct ptr_array *p int api_access_rule_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct api_access_rule *s = v_s; int aret = 0; - if ((aret = argcmp(str, "ApiAccessRuleId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ApiAccessRuleId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ApiAccessRuleId argument missing\n"); s->api_access_rule_id = aa; // string string } else - if ((aret = argcmp(str, "CaIds")) == 0 || aret == '=') { - TRY(!aa, "CaIds argument missing\n"); - s->ca_ids_str = aa; + if ((aret = strcmp(str, "CaIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "CaIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "CaIds require an index\n"); + if (s->ca_ids) { + for (; s->ca_ids[last]; ++last); + } + if (pos < last) { + s->ca_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->ca_ids, "", pa); + SET_NEXT(s->ca_ids, (aa), pa); + } + } else { + TRY(!aa, "CaIds argument missing\n"); + s->ca_ids_str = aa; + } } else if (!(aret = strcmp(str, "CaIds[]")) || aret == '=') { TRY(!aa, "CaIds[] argument missing\n"); SET_NEXT(s->ca_ids, (aa), pa); } else - if ((aret = argcmp(str, "Cns")) == 0 || aret == '=') { - TRY(!aa, "Cns argument missing\n"); - s->cns_str = aa; + if ((aret = strcmp(str, "Cns")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Cns argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Cns require an index\n"); + if (s->cns) { + for (; s->cns[last]; ++last); + } + if (pos < last) { + s->cns[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->cns, "", pa); + SET_NEXT(s->cns, (aa), pa); + } + } else { + TRY(!aa, "Cns argument missing\n"); + s->cns_str = aa; + } } else if (!(aret = strcmp(str, "Cns[]")) || aret == '=') { TRY(!aa, "Cns[] argument missing\n"); SET_NEXT(s->cns, (aa), pa); } else - if ((aret = argcmp(str, "Description")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = argcmp(str, "IpRanges")) == 0 || aret == '=') { - TRY(!aa, "IpRanges argument missing\n"); - s->ip_ranges_str = aa; + if ((aret = strcmp(str, "IpRanges")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "IpRanges argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "IpRanges require an index\n"); + if (s->ip_ranges) { + for (; s->ip_ranges[last]; ++last); + } + if (pos < last) { + s->ip_ranges[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->ip_ranges, "", pa); + SET_NEXT(s->ip_ranges, (aa), pa); + } + } else { + TRY(!aa, "IpRanges argument missing\n"); + s->ip_ranges_str = aa; + } } else if (!(aret = strcmp(str, "IpRanges[]")) || aret == '=') { TRY(!aa, "IpRanges[] argument missing\n"); SET_NEXT(s->ip_ranges, (aa), pa); @@ -705,12 +789,12 @@ int api_access_rule_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int application_sticky_cookie_policy_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct application_sticky_cookie_policy *s = v_s; int aret = 0; - if ((aret = argcmp(str, "CookieName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CookieName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CookieName argument missing\n"); s->cookie_name = aa; // string string } else - if ((aret = argcmp(str, "PolicyName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PolicyName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PolicyName argument missing\n"); s->policy_name = aa; // string string @@ -725,22 +809,22 @@ int application_sticky_cookie_policy_parser(void *v_s, char *str, char *aa, stru int backend_vm_health_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct backend_vm_health *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Description")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "StateReason")) == 0 || aret == '=') { + if ((aret = strcmp(str, "StateReason")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "StateReason argument missing\n"); s->state_reason = aa; // string string } else - if ((aret = argcmp(str, "VmId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmId argument missing\n"); s->vm_id = aa; // string string @@ -755,7 +839,7 @@ int backend_vm_health_parser(void *v_s, char *str, char *aa, struct ptr_array *p int block_device_mapping_created_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct block_device_mapping_created *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Bsu")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Bsu")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "Bsu argument missing\n"); @@ -772,7 +856,7 @@ int block_device_mapping_created_parser(void *v_s, char *str, char *aa, struct p s->bsu_str = aa; } } else - if ((aret = argcmp(str, "DeviceName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DeviceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DeviceName argument missing\n"); s->device_name = aa; // string string @@ -787,7 +871,7 @@ int block_device_mapping_created_parser(void *v_s, char *str, char *aa, struct p int block_device_mapping_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct block_device_mapping_image *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Bsu")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Bsu")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "Bsu argument missing\n"); @@ -804,12 +888,12 @@ int block_device_mapping_image_parser(void *v_s, char *str, char *aa, struct ptr s->bsu_str = aa; } } else - if ((aret = argcmp(str, "DeviceName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DeviceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DeviceName argument missing\n"); s->device_name = aa; // string string } else - if ((aret = argcmp(str, "VirtualDeviceName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VirtualDeviceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VirtualDeviceName argument missing\n"); s->virtual_device_name = aa; // string string @@ -824,7 +908,7 @@ int block_device_mapping_image_parser(void *v_s, char *str, char *aa, struct ptr int block_device_mapping_vm_creation_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct block_device_mapping_vm_creation *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Bsu")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Bsu")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "Bsu argument missing\n"); @@ -841,17 +925,17 @@ int block_device_mapping_vm_creation_parser(void *v_s, char *str, char *aa, stru s->bsu_str = aa; } } else - if ((aret = argcmp(str, "DeviceName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DeviceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DeviceName argument missing\n"); s->device_name = aa; // string string } else - if ((aret = argcmp(str, "NoDevice")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NoDevice")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NoDevice argument missing\n"); s->no_device = aa; // string string } else - if ((aret = argcmp(str, "VirtualDeviceName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VirtualDeviceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VirtualDeviceName argument missing\n"); s->virtual_device_name = aa; // string string @@ -866,7 +950,7 @@ int block_device_mapping_vm_creation_parser(void *v_s, char *str, char *aa, stru int block_device_mapping_vm_update_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct block_device_mapping_vm_update *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Bsu")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Bsu")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "Bsu argument missing\n"); @@ -883,17 +967,17 @@ int block_device_mapping_vm_update_parser(void *v_s, char *str, char *aa, struct s->bsu_str = aa; } } else - if ((aret = argcmp(str, "DeviceName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DeviceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DeviceName argument missing\n"); s->device_name = aa; // string string } else - if ((aret = argcmp(str, "NoDevice")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NoDevice")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NoDevice argument missing\n"); s->no_device = aa; // string string } else - if ((aret = argcmp(str, "VirtualDeviceName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VirtualDeviceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VirtualDeviceName argument missing\n"); s->virtual_device_name = aa; // string string @@ -908,7 +992,7 @@ int block_device_mapping_vm_update_parser(void *v_s, char *str, char *aa, struct int bsu_created_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct bsu_created *s = v_s; int aret = 0; - if ((aret = argcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->delete_on_vm_deletion = 1; @@ -918,17 +1002,17 @@ int bsu_created_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = argcmp(str, "LinkDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LinkDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LinkDate argument missing\n"); s->link_date = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "VolumeId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VolumeId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VolumeId argument missing\n"); s->volume_id = aa; // string string @@ -943,7 +1027,7 @@ int bsu_created_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int bsu_to_create_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct bsu_to_create *s = v_s; int aret = 0; - if ((aret = argcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->delete_on_vm_deletion = 1; @@ -953,22 +1037,22 @@ int bsu_to_create_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = argcmp(str, "Iops")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Iops")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Iops argument missing\n"); s->is_set_iops = 1; s->iops = atoi(aa); } else - if ((aret = argcmp(str, "SnapshotId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SnapshotId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SnapshotId argument missing\n"); s->snapshot_id = aa; // string string } else - if ((aret = argcmp(str, "VolumeSize")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VolumeSize")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VolumeSize argument missing\n"); s->is_set_volume_size = 1; s->volume_size = atoi(aa); } else - if ((aret = argcmp(str, "VolumeType")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VolumeType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VolumeType argument missing\n"); s->volume_type = aa; // string string @@ -983,7 +1067,7 @@ int bsu_to_create_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int bsu_to_update_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct bsu_to_update_vm *s = v_s; int aret = 0; - if ((aret = argcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->delete_on_vm_deletion = 1; @@ -993,7 +1077,7 @@ int bsu_to_update_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = argcmp(str, "VolumeId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VolumeId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VolumeId argument missing\n"); s->volume_id = aa; // string string @@ -1008,17 +1092,17 @@ int bsu_to_update_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa int ca_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct ca *s = v_s; int aret = 0; - if ((aret = argcmp(str, "CaFingerprint")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CaFingerprint")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CaFingerprint argument missing\n"); s->ca_fingerprint = aa; // string string } else - if ((aret = argcmp(str, "CaId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CaId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CaId argument missing\n"); s->ca_id = aa; // string string } else - if ((aret = argcmp(str, "Description")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string @@ -1033,7 +1117,7 @@ int ca_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int catalog_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct catalog *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Entries")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Entries")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -1068,42 +1152,42 @@ int catalog_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int catalog_entry_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct catalog_entry *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Category")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Category")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Category argument missing\n"); s->category = aa; // string string } else - if ((aret = argcmp(str, "Flags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Flags")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Flags argument missing\n"); s->flags = aa; // string string } else - if ((aret = argcmp(str, "Operation")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Operation")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Operation argument missing\n"); s->operation = aa; // string string } else - if ((aret = argcmp(str, "Service")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Service")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Service argument missing\n"); s->service = aa; // string string } else - if ((aret = argcmp(str, "SubregionName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubregionName argument missing\n"); s->subregion_name = aa; // string string } else - if ((aret = argcmp(str, "Title")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Title")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Title argument missing\n"); s->title = aa; // string string } else - if ((aret = argcmp(str, "Type")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Type")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Type argument missing\n"); s->type = aa; // string string } else - if ((aret = argcmp(str, "UnitPrice")) == 0 || aret == '=') { + if ((aret = strcmp(str, "UnitPrice")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "UnitPrice argument missing\n"); s->is_set_unit_price = 1; s->unit_price = atof(aa); @@ -1118,7 +1202,7 @@ int catalog_entry_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int catalogs_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct catalogs *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Entries")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Entries")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -1143,17 +1227,17 @@ int catalogs_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->entries_str = aa; // array ref CatalogEntry ref } } else - if ((aret = argcmp(str, "FromDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "FromDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "FromDate argument missing\n"); s->from_date = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "ToDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ToDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ToDate argument missing\n"); s->to_date = aa; // string string @@ -1168,32 +1252,32 @@ int catalogs_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int client_gateway_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct client_gateway *s = v_s; int aret = 0; - if ((aret = argcmp(str, "BgpAsn")) == 0 || aret == '=') { + if ((aret = strcmp(str, "BgpAsn")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "BgpAsn argument missing\n"); s->is_set_bgp_asn = 1; s->bgp_asn = atoi(aa); } else - if ((aret = argcmp(str, "ClientGatewayId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ClientGatewayId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ClientGatewayId argument missing\n"); s->client_gateway_id = aa; // string string } else - if ((aret = argcmp(str, "ConnectionType")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ConnectionType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ConnectionType argument missing\n"); s->connection_type = aa; // string string } else - if ((aret = argcmp(str, "PublicIp")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PublicIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIp argument missing\n"); s->public_ip = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -1228,67 +1312,67 @@ int client_gateway_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int consumption_entry_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct consumption_entry *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = argcmp(str, "Category")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Category")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Category argument missing\n"); s->category = aa; // string string } else - if ((aret = argcmp(str, "FromDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "FromDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "FromDate argument missing\n"); s->from_date = aa; // string string } else - if ((aret = argcmp(str, "Operation")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Operation")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Operation argument missing\n"); s->operation = aa; // string string } else - if ((aret = argcmp(str, "PayingAccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PayingAccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PayingAccountId argument missing\n"); s->paying_account_id = aa; // string string } else - if ((aret = argcmp(str, "Price")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Price")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Price argument missing\n"); s->is_set_price = 1; s->price = atof(aa); } else - if ((aret = argcmp(str, "Service")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Service")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Service argument missing\n"); s->service = aa; // string string } else - if ((aret = argcmp(str, "SubregionName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubregionName argument missing\n"); s->subregion_name = aa; // string string } else - if ((aret = argcmp(str, "Title")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Title")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Title argument missing\n"); s->title = aa; // string string } else - if ((aret = argcmp(str, "ToDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ToDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ToDate argument missing\n"); s->to_date = aa; // string string } else - if ((aret = argcmp(str, "Type")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Type")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Type argument missing\n"); s->type = aa; // string string } else - if ((aret = argcmp(str, "UnitPrice")) == 0 || aret == '=') { + if ((aret = strcmp(str, "UnitPrice")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "UnitPrice argument missing\n"); s->is_set_unit_price = 1; s->unit_price = atof(aa); } else - if ((aret = argcmp(str, "Value")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Value")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Value argument missing\n"); s->is_set_value = 1; s->value = atof(aa); @@ -1303,41 +1387,83 @@ int consumption_entry_parser(void *v_s, char *str, char *aa, struct ptr_array *p int dedicated_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct dedicated_group *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = argcmp(str, "CpuGeneration")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CpuGeneration")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CpuGeneration argument missing\n"); s->is_set_cpu_generation = 1; s->cpu_generation = atoi(aa); } else - if ((aret = argcmp(str, "DedicatedGroupId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DedicatedGroupId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DedicatedGroupId argument missing\n"); s->dedicated_group_id = aa; // string string } else - if ((aret = argcmp(str, "Name")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Name")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Name argument missing\n"); s->name = aa; // string string } else - if ((aret = argcmp(str, "NetIds")) == 0 || aret == '=') { - TRY(!aa, "NetIds argument missing\n"); - s->net_ids_str = aa; + if ((aret = strcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NetIds require an index\n"); + if (s->net_ids) { + for (; s->net_ids[last]; ++last); + } + if (pos < last) { + s->net_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->net_ids, "", pa); + SET_NEXT(s->net_ids, (aa), pa); + } + } else { + TRY(!aa, "NetIds argument missing\n"); + s->net_ids_str = aa; + } } else if (!(aret = strcmp(str, "NetIds[]")) || aret == '=') { TRY(!aa, "NetIds[] argument missing\n"); SET_NEXT(s->net_ids, (aa), pa); } else - if ((aret = argcmp(str, "SubregionName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubregionName argument missing\n"); s->subregion_name = aa; // string string } else - if ((aret = argcmp(str, "VmIds")) == 0 || aret == '=') { - TRY(!aa, "VmIds argument missing\n"); - s->vm_ids_str = aa; + if ((aret = strcmp(str, "VmIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmIds require an index\n"); + if (s->vm_ids) { + for (; s->vm_ids[last]; ++last); + } + if (pos < last) { + s->vm_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_ids, "", pa); + SET_NEXT(s->vm_ids, (aa), pa); + } + } else { + TRY(!aa, "VmIds argument missing\n"); + s->vm_ids_str = aa; + } } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); @@ -1352,7 +1478,7 @@ int dedicated_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int dhcp_options_set_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct dhcp_options_set *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Default")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Default")) == 0 || aret == '=' || aret == '.') { s->is_set_default_arg = 1; if (!aa || !strcasecmp(aa, "true")) { s->default_arg = 1; @@ -1362,38 +1488,101 @@ int dhcp_options_set_parser(void *v_s, char *str, char *aa, struct ptr_array *pa BAD_RET("Default require true/false\n"); } } else - if ((aret = argcmp(str, "DhcpOptionsSetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DhcpOptionsSetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DhcpOptionsSetId argument missing\n"); s->dhcp_options_set_id = aa; // string string } else - if ((aret = argcmp(str, "DomainName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DomainName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DomainName argument missing\n"); s->domain_name = aa; // string string } else - if ((aret = argcmp(str, "DomainNameServers")) == 0 || aret == '=') { - TRY(!aa, "DomainNameServers argument missing\n"); - s->domain_name_servers_str = aa; + if ((aret = strcmp(str, "DomainNameServers")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "DomainNameServers argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "DomainNameServers require an index\n"); + if (s->domain_name_servers) { + for (; s->domain_name_servers[last]; ++last); + } + if (pos < last) { + s->domain_name_servers[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->domain_name_servers, "", pa); + SET_NEXT(s->domain_name_servers, (aa), pa); + } + } else { + TRY(!aa, "DomainNameServers argument missing\n"); + s->domain_name_servers_str = aa; + } } else if (!(aret = strcmp(str, "DomainNameServers[]")) || aret == '=') { TRY(!aa, "DomainNameServers[] argument missing\n"); SET_NEXT(s->domain_name_servers, (aa), pa); } else - if ((aret = argcmp(str, "LogServers")) == 0 || aret == '=') { - TRY(!aa, "LogServers argument missing\n"); - s->log_servers_str = aa; + if ((aret = strcmp(str, "LogServers")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LogServers argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LogServers require an index\n"); + if (s->log_servers) { + for (; s->log_servers[last]; ++last); + } + if (pos < last) { + s->log_servers[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->log_servers, "", pa); + SET_NEXT(s->log_servers, (aa), pa); + } + } else { + TRY(!aa, "LogServers argument missing\n"); + s->log_servers_str = aa; + } } else if (!(aret = strcmp(str, "LogServers[]")) || aret == '=') { TRY(!aa, "LogServers[] argument missing\n"); SET_NEXT(s->log_servers, (aa), pa); } else - if ((aret = argcmp(str, "NtpServers")) == 0 || aret == '=') { - TRY(!aa, "NtpServers argument missing\n"); - s->ntp_servers_str = aa; + if ((aret = strcmp(str, "NtpServers")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NtpServers argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NtpServers require an index\n"); + if (s->ntp_servers) { + for (; s->ntp_servers[last]; ++last); + } + if (pos < last) { + s->ntp_servers[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->ntp_servers, "", pa); + SET_NEXT(s->ntp_servers, (aa), pa); + } + } else { + TRY(!aa, "NtpServers argument missing\n"); + s->ntp_servers_str = aa; + } } else if (!(aret = strcmp(str, "NtpServers[]")) || aret == '=') { TRY(!aa, "NtpServers[] argument missing\n"); SET_NEXT(s->ntp_servers, (aa), pa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -1428,37 +1617,37 @@ int dhcp_options_set_parser(void *v_s, char *str, char *aa, struct ptr_array *pa int direct_link_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct direct_link *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = argcmp(str, "Bandwidth")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Bandwidth")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Bandwidth argument missing\n"); s->bandwidth = aa; // string string } else - if ((aret = argcmp(str, "DirectLinkId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DirectLinkId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DirectLinkId argument missing\n"); s->direct_link_id = aa; // string string } else - if ((aret = argcmp(str, "DirectLinkName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DirectLinkName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DirectLinkName argument missing\n"); s->direct_link_name = aa; // string string } else - if ((aret = argcmp(str, "Location")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Location")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Location argument missing\n"); s->location = aa; // string string } else - if ((aret = argcmp(str, "RegionName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "RegionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "RegionName argument missing\n"); s->region_name = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string @@ -1473,37 +1662,37 @@ int direct_link_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int direct_link_interface_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct direct_link_interface *s = v_s; int aret = 0; - if ((aret = argcmp(str, "BgpAsn")) == 0 || aret == '=') { + if ((aret = strcmp(str, "BgpAsn")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "BgpAsn argument missing\n"); s->is_set_bgp_asn = 1; s->bgp_asn = atoi(aa); } else - if ((aret = argcmp(str, "BgpKey")) == 0 || aret == '=') { + if ((aret = strcmp(str, "BgpKey")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "BgpKey argument missing\n"); s->bgp_key = aa; // string string } else - if ((aret = argcmp(str, "ClientPrivateIp")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ClientPrivateIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ClientPrivateIp argument missing\n"); s->client_private_ip = aa; // string string } else - if ((aret = argcmp(str, "DirectLinkInterfaceName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DirectLinkInterfaceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DirectLinkInterfaceName argument missing\n"); s->direct_link_interface_name = aa; // string string } else - if ((aret = argcmp(str, "OutscalePrivateIp")) == 0 || aret == '=') { + if ((aret = strcmp(str, "OutscalePrivateIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OutscalePrivateIp argument missing\n"); s->outscale_private_ip = aa; // string string } else - if ((aret = argcmp(str, "VirtualGatewayId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VirtualGatewayId argument missing\n"); s->virtual_gateway_id = aa; // string string } else - if ((aret = argcmp(str, "Vlan")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Vlan")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Vlan argument missing\n"); s->is_set_vlan = 1; s->vlan = atoi(aa); @@ -1518,72 +1707,72 @@ int direct_link_interface_parser(void *v_s, char *str, char *aa, struct ptr_arra int direct_link_interfaces_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct direct_link_interfaces *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = argcmp(str, "BgpAsn")) == 0 || aret == '=') { + if ((aret = strcmp(str, "BgpAsn")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "BgpAsn argument missing\n"); s->is_set_bgp_asn = 1; s->bgp_asn = atoi(aa); } else - if ((aret = argcmp(str, "BgpKey")) == 0 || aret == '=') { + if ((aret = strcmp(str, "BgpKey")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "BgpKey argument missing\n"); s->bgp_key = aa; // string string } else - if ((aret = argcmp(str, "ClientPrivateIp")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ClientPrivateIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ClientPrivateIp argument missing\n"); s->client_private_ip = aa; // string string } else - if ((aret = argcmp(str, "DirectLinkId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DirectLinkId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DirectLinkId argument missing\n"); s->direct_link_id = aa; // string string } else - if ((aret = argcmp(str, "DirectLinkInterfaceId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DirectLinkInterfaceId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DirectLinkInterfaceId argument missing\n"); s->direct_link_interface_id = aa; // string string } else - if ((aret = argcmp(str, "DirectLinkInterfaceName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DirectLinkInterfaceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DirectLinkInterfaceName argument missing\n"); s->direct_link_interface_name = aa; // string string } else - if ((aret = argcmp(str, "InterfaceType")) == 0 || aret == '=') { + if ((aret = strcmp(str, "InterfaceType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "InterfaceType argument missing\n"); s->interface_type = aa; // string string } else - if ((aret = argcmp(str, "Location")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Location")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Location argument missing\n"); s->location = aa; // string string } else - if ((aret = argcmp(str, "Mtu")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Mtu")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Mtu argument missing\n"); s->is_set_mtu = 1; s->mtu = atoi(aa); } else - if ((aret = argcmp(str, "OutscalePrivateIp")) == 0 || aret == '=') { + if ((aret = strcmp(str, "OutscalePrivateIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OutscalePrivateIp argument missing\n"); s->outscale_private_ip = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "VirtualGatewayId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VirtualGatewayId argument missing\n"); s->virtual_gateway_id = aa; // string string } else - if ((aret = argcmp(str, "Vlan")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Vlan")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Vlan argument missing\n"); s->is_set_vlan = 1; s->vlan = atoi(aa); @@ -1598,17 +1787,17 @@ int direct_link_interfaces_parser(void *v_s, char *str, char *aa, struct ptr_arr int errors_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct errors *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Code")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Code")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Code argument missing\n"); s->code = aa; // string string } else - if ((aret = argcmp(str, "Details")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Details")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Details argument missing\n"); s->details = aa; // string string } else - if ((aret = argcmp(str, "Type")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Type")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Type argument missing\n"); s->type = aa; // string string @@ -1623,16 +1812,58 @@ int errors_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int filters_access_keys_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_access_keys *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccessKeyIds")) == 0 || aret == '=') { - TRY(!aa, "AccessKeyIds argument missing\n"); - s->access_key_ids_str = aa; + if ((aret = strcmp(str, "AccessKeyIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "AccessKeyIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "AccessKeyIds require an index\n"); + if (s->access_key_ids) { + for (; s->access_key_ids[last]; ++last); + } + if (pos < last) { + s->access_key_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->access_key_ids, "", pa); + SET_NEXT(s->access_key_ids, (aa), pa); + } + } else { + TRY(!aa, "AccessKeyIds argument missing\n"); + s->access_key_ids_str = aa; + } } else if (!(aret = strcmp(str, "AccessKeyIds[]")) || aret == '=') { TRY(!aa, "AccessKeyIds[] argument missing\n"); SET_NEXT(s->access_key_ids, (aa), pa); } else - if ((aret = argcmp(str, "States")) == 0 || aret == '=') { - TRY(!aa, "States argument missing\n"); - s->states_str = aa; + if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "States argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "States require an index\n"); + if (s->states) { + for (; s->states[last]; ++last); + } + if (pos < last) { + s->states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->states, "", pa); + SET_NEXT(s->states, (aa), pa); + } + } else { + TRY(!aa, "States argument missing\n"); + s->states_str = aa; + } } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); @@ -1647,37 +1878,142 @@ int filters_access_keys_parser(void *v_s, char *str, char *aa, struct ptr_array int filters_api_access_rule_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_api_access_rule *s = v_s; int aret = 0; - if ((aret = argcmp(str, "ApiAccessRuleIds")) == 0 || aret == '=') { - TRY(!aa, "ApiAccessRuleIds argument missing\n"); - s->api_access_rule_ids_str = aa; + if ((aret = strcmp(str, "ApiAccessRuleIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ApiAccessRuleIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ApiAccessRuleIds require an index\n"); + if (s->api_access_rule_ids) { + for (; s->api_access_rule_ids[last]; ++last); + } + if (pos < last) { + s->api_access_rule_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->api_access_rule_ids, "", pa); + SET_NEXT(s->api_access_rule_ids, (aa), pa); + } + } else { + TRY(!aa, "ApiAccessRuleIds argument missing\n"); + s->api_access_rule_ids_str = aa; + } } else if (!(aret = strcmp(str, "ApiAccessRuleIds[]")) || aret == '=') { TRY(!aa, "ApiAccessRuleIds[] argument missing\n"); SET_NEXT(s->api_access_rule_ids, (aa), pa); } else - if ((aret = argcmp(str, "CaIds")) == 0 || aret == '=') { - TRY(!aa, "CaIds argument missing\n"); - s->ca_ids_str = aa; + if ((aret = strcmp(str, "CaIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "CaIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "CaIds require an index\n"); + if (s->ca_ids) { + for (; s->ca_ids[last]; ++last); + } + if (pos < last) { + s->ca_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->ca_ids, "", pa); + SET_NEXT(s->ca_ids, (aa), pa); + } + } else { + TRY(!aa, "CaIds argument missing\n"); + s->ca_ids_str = aa; + } } else if (!(aret = strcmp(str, "CaIds[]")) || aret == '=') { TRY(!aa, "CaIds[] argument missing\n"); SET_NEXT(s->ca_ids, (aa), pa); } else - if ((aret = argcmp(str, "Cns")) == 0 || aret == '=') { - TRY(!aa, "Cns argument missing\n"); - s->cns_str = aa; + if ((aret = strcmp(str, "Cns")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Cns argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Cns require an index\n"); + if (s->cns) { + for (; s->cns[last]; ++last); + } + if (pos < last) { + s->cns[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->cns, "", pa); + SET_NEXT(s->cns, (aa), pa); + } + } else { + TRY(!aa, "Cns argument missing\n"); + s->cns_str = aa; + } } else if (!(aret = strcmp(str, "Cns[]")) || aret == '=') { TRY(!aa, "Cns[] argument missing\n"); SET_NEXT(s->cns, (aa), pa); } else - if ((aret = argcmp(str, "Descriptions")) == 0 || aret == '=') { - TRY(!aa, "Descriptions argument missing\n"); - s->descriptions_str = aa; + if ((aret = strcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Descriptions argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Descriptions require an index\n"); + if (s->descriptions) { + for (; s->descriptions[last]; ++last); + } + if (pos < last) { + s->descriptions[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->descriptions, "", pa); + SET_NEXT(s->descriptions, (aa), pa); + } + } else { + TRY(!aa, "Descriptions argument missing\n"); + s->descriptions_str = aa; + } } else if (!(aret = strcmp(str, "Descriptions[]")) || aret == '=') { TRY(!aa, "Descriptions[] argument missing\n"); SET_NEXT(s->descriptions, (aa), pa); } else - if ((aret = argcmp(str, "IpRanges")) == 0 || aret == '=') { - TRY(!aa, "IpRanges argument missing\n"); - s->ip_ranges_str = aa; + if ((aret = strcmp(str, "IpRanges")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "IpRanges argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "IpRanges require an index\n"); + if (s->ip_ranges) { + for (; s->ip_ranges[last]; ++last); + } + if (pos < last) { + s->ip_ranges[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->ip_ranges, "", pa); + SET_NEXT(s->ip_ranges, (aa), pa); + } + } else { + TRY(!aa, "IpRanges argument missing\n"); + s->ip_ranges_str = aa; + } } else if (!(aret = strcmp(str, "IpRanges[]")) || aret == '=') { TRY(!aa, "IpRanges[] argument missing\n"); SET_NEXT(s->ip_ranges, (aa), pa); @@ -1692,61 +2028,208 @@ int filters_api_access_rule_parser(void *v_s, char *str, char *aa, struct ptr_ar int filters_api_log_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_api_log *s = v_s; int aret = 0; - if ((aret = argcmp(str, "QueryAccessKeys")) == 0 || aret == '=') { - TRY(!aa, "QueryAccessKeys argument missing\n"); - s->query_access_keys_str = aa; + if ((aret = strcmp(str, "QueryAccessKeys")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "QueryAccessKeys argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "QueryAccessKeys require an index\n"); + if (s->query_access_keys) { + for (; s->query_access_keys[last]; ++last); + } + if (pos < last) { + s->query_access_keys[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->query_access_keys, "", pa); + SET_NEXT(s->query_access_keys, (aa), pa); + } + } else { + TRY(!aa, "QueryAccessKeys argument missing\n"); + s->query_access_keys_str = aa; + } } else if (!(aret = strcmp(str, "QueryAccessKeys[]")) || aret == '=') { TRY(!aa, "QueryAccessKeys[] argument missing\n"); SET_NEXT(s->query_access_keys, (aa), pa); } else - if ((aret = argcmp(str, "QueryApiNames")) == 0 || aret == '=') { - TRY(!aa, "QueryApiNames argument missing\n"); - s->query_api_names_str = aa; + if ((aret = strcmp(str, "QueryApiNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "QueryApiNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "QueryApiNames require an index\n"); + if (s->query_api_names) { + for (; s->query_api_names[last]; ++last); + } + if (pos < last) { + s->query_api_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->query_api_names, "", pa); + SET_NEXT(s->query_api_names, (aa), pa); + } + } else { + TRY(!aa, "QueryApiNames argument missing\n"); + s->query_api_names_str = aa; + } } else if (!(aret = strcmp(str, "QueryApiNames[]")) || aret == '=') { TRY(!aa, "QueryApiNames[] argument missing\n"); SET_NEXT(s->query_api_names, (aa), pa); } else - if ((aret = argcmp(str, "QueryCallNames")) == 0 || aret == '=') { - TRY(!aa, "QueryCallNames argument missing\n"); - s->query_call_names_str = aa; + if ((aret = strcmp(str, "QueryCallNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "QueryCallNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "QueryCallNames require an index\n"); + if (s->query_call_names) { + for (; s->query_call_names[last]; ++last); + } + if (pos < last) { + s->query_call_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->query_call_names, "", pa); + SET_NEXT(s->query_call_names, (aa), pa); + } + } else { + TRY(!aa, "QueryCallNames argument missing\n"); + s->query_call_names_str = aa; + } } else if (!(aret = strcmp(str, "QueryCallNames[]")) || aret == '=') { TRY(!aa, "QueryCallNames[] argument missing\n"); SET_NEXT(s->query_call_names, (aa), pa); } else - if ((aret = argcmp(str, "QueryDateAfter")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryDateAfter")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryDateAfter argument missing\n"); s->query_date_after = aa; // string string } else - if ((aret = argcmp(str, "QueryDateBefore")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryDateBefore")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryDateBefore argument missing\n"); s->query_date_before = aa; // string string } else - if ((aret = argcmp(str, "QueryIpAddresses")) == 0 || aret == '=') { - TRY(!aa, "QueryIpAddresses argument missing\n"); - s->query_ip_addresses_str = aa; + if ((aret = strcmp(str, "QueryIpAddresses")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "QueryIpAddresses argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "QueryIpAddresses require an index\n"); + if (s->query_ip_addresses) { + for (; s->query_ip_addresses[last]; ++last); + } + if (pos < last) { + s->query_ip_addresses[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->query_ip_addresses, "", pa); + SET_NEXT(s->query_ip_addresses, (aa), pa); + } + } else { + TRY(!aa, "QueryIpAddresses argument missing\n"); + s->query_ip_addresses_str = aa; + } } else if (!(aret = strcmp(str, "QueryIpAddresses[]")) || aret == '=') { TRY(!aa, "QueryIpAddresses[] argument missing\n"); SET_NEXT(s->query_ip_addresses, (aa), pa); } else - if ((aret = argcmp(str, "QueryUserAgents")) == 0 || aret == '=') { - TRY(!aa, "QueryUserAgents argument missing\n"); - s->query_user_agents_str = aa; + if ((aret = strcmp(str, "QueryUserAgents")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "QueryUserAgents argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "QueryUserAgents require an index\n"); + if (s->query_user_agents) { + for (; s->query_user_agents[last]; ++last); + } + if (pos < last) { + s->query_user_agents[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->query_user_agents, "", pa); + SET_NEXT(s->query_user_agents, (aa), pa); + } + } else { + TRY(!aa, "QueryUserAgents argument missing\n"); + s->query_user_agents_str = aa; + } } else if (!(aret = strcmp(str, "QueryUserAgents[]")) || aret == '=') { TRY(!aa, "QueryUserAgents[] argument missing\n"); SET_NEXT(s->query_user_agents, (aa), pa); } else - if ((aret = argcmp(str, "RequestIds")) == 0 || aret == '=') { - TRY(!aa, "RequestIds argument missing\n"); - s->request_ids_str = aa; + if ((aret = strcmp(str, "RequestIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "RequestIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "RequestIds require an index\n"); + if (s->request_ids) { + for (; s->request_ids[last]; ++last); + } + if (pos < last) { + s->request_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->request_ids, "", pa); + SET_NEXT(s->request_ids, (aa), pa); + } + } else { + TRY(!aa, "RequestIds argument missing\n"); + s->request_ids_str = aa; + } } else if (!(aret = strcmp(str, "RequestIds[]")) || aret == '=') { TRY(!aa, "RequestIds[] argument missing\n"); SET_NEXT(s->request_ids, (aa), pa); } else - if ((aret = argcmp(str, "ResponseStatusCodes")) == 0 || aret == '=') { - TRY(!aa, "ResponseStatusCodes argument missing\n"); - s->response_status_codes_str = aa; + if ((aret = strcmp(str, "ResponseStatusCodes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ResponseStatusCodes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ResponseStatusCodes require an index\n"); + if (s->response_status_codes) { + for (; s->response_status_codes[last]; ++last); + } + if (pos < last) { + s->response_status_codes[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->response_status_codes, 0, pa); + SET_NEXT(s->response_status_codes, atoi(aa), pa); + } + } else { + TRY(!aa, "ResponseStatusCodes argument missing\n"); + s->response_status_codes_str = aa; + } } else if (!(aret = strcmp(str, "ResponseStatusCodes[]")) || aret == '=') { TRY(!aa, "ResponseStatusCodes[] argument missing\n"); SET_NEXT(s->response_status_codes, atoi(aa), pa); @@ -1761,23 +2244,86 @@ int filters_api_log_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int filters_ca_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_ca *s = v_s; int aret = 0; - if ((aret = argcmp(str, "CaFingerprints")) == 0 || aret == '=') { - TRY(!aa, "CaFingerprints argument missing\n"); - s->ca_fingerprints_str = aa; + if ((aret = strcmp(str, "CaFingerprints")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "CaFingerprints argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "CaFingerprints require an index\n"); + if (s->ca_fingerprints) { + for (; s->ca_fingerprints[last]; ++last); + } + if (pos < last) { + s->ca_fingerprints[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->ca_fingerprints, "", pa); + SET_NEXT(s->ca_fingerprints, (aa), pa); + } + } else { + TRY(!aa, "CaFingerprints argument missing\n"); + s->ca_fingerprints_str = aa; + } } else if (!(aret = strcmp(str, "CaFingerprints[]")) || aret == '=') { TRY(!aa, "CaFingerprints[] argument missing\n"); SET_NEXT(s->ca_fingerprints, (aa), pa); } else - if ((aret = argcmp(str, "CaIds")) == 0 || aret == '=') { - TRY(!aa, "CaIds argument missing\n"); - s->ca_ids_str = aa; + if ((aret = strcmp(str, "CaIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "CaIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "CaIds require an index\n"); + if (s->ca_ids) { + for (; s->ca_ids[last]; ++last); + } + if (pos < last) { + s->ca_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->ca_ids, "", pa); + SET_NEXT(s->ca_ids, (aa), pa); + } + } else { + TRY(!aa, "CaIds argument missing\n"); + s->ca_ids_str = aa; + } } else if (!(aret = strcmp(str, "CaIds[]")) || aret == '=') { TRY(!aa, "CaIds[] argument missing\n"); SET_NEXT(s->ca_ids, (aa), pa); } else - if ((aret = argcmp(str, "Descriptions")) == 0 || aret == '=') { - TRY(!aa, "Descriptions argument missing\n"); - s->descriptions_str = aa; + if ((aret = strcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Descriptions argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Descriptions require an index\n"); + if (s->descriptions) { + for (; s->descriptions[last]; ++last); + } + if (pos < last) { + s->descriptions[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->descriptions, "", pa); + SET_NEXT(s->descriptions, (aa), pa); + } + } else { + TRY(!aa, "Descriptions argument missing\n"); + s->descriptions_str = aa; + } } else if (!(aret = strcmp(str, "Descriptions[]")) || aret == '=') { TRY(!aa, "Descriptions[] argument missing\n"); SET_NEXT(s->descriptions, (aa), pa); @@ -1792,7 +2338,7 @@ int filters_ca_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int filters_catalogs_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_catalogs *s = v_s; int aret = 0; - if ((aret = argcmp(str, "CurrentCatalogOnly")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CurrentCatalogOnly")) == 0 || aret == '=' || aret == '.') { s->is_set_current_catalog_only = 1; if (!aa || !strcasecmp(aa, "true")) { s->current_catalog_only = 1; @@ -1802,12 +2348,12 @@ int filters_catalogs_parser(void *v_s, char *str, char *aa, struct ptr_array *pa BAD_RET("CurrentCatalogOnly require true/false\n"); } } else - if ((aret = argcmp(str, "FromDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "FromDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "FromDate argument missing\n"); s->from_date = aa; // string string } else - if ((aret = argcmp(str, "ToDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ToDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ToDate argument missing\n"); s->to_date = aa; // string string @@ -1822,58 +2368,226 @@ int filters_catalogs_parser(void *v_s, char *str, char *aa, struct ptr_array *pa int filters_client_gateway_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_client_gateway *s = v_s; int aret = 0; - if ((aret = argcmp(str, "BgpAsns")) == 0 || aret == '=') { - TRY(!aa, "BgpAsns argument missing\n"); - s->bgp_asns_str = aa; + if ((aret = strcmp(str, "BgpAsns")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "BgpAsns argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "BgpAsns require an index\n"); + if (s->bgp_asns) { + for (; s->bgp_asns[last]; ++last); + } + if (pos < last) { + s->bgp_asns[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->bgp_asns, 0, pa); + SET_NEXT(s->bgp_asns, atoi(aa), pa); + } + } else { + TRY(!aa, "BgpAsns argument missing\n"); + s->bgp_asns_str = aa; + } } else if (!(aret = strcmp(str, "BgpAsns[]")) || aret == '=') { TRY(!aa, "BgpAsns[] argument missing\n"); SET_NEXT(s->bgp_asns, atoi(aa), pa); } else - if ((aret = argcmp(str, "ClientGatewayIds")) == 0 || aret == '=') { - TRY(!aa, "ClientGatewayIds argument missing\n"); - s->client_gateway_ids_str = aa; + if ((aret = strcmp(str, "ClientGatewayIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ClientGatewayIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ClientGatewayIds require an index\n"); + if (s->client_gateway_ids) { + for (; s->client_gateway_ids[last]; ++last); + } + if (pos < last) { + s->client_gateway_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->client_gateway_ids, "", pa); + SET_NEXT(s->client_gateway_ids, (aa), pa); + } + } else { + TRY(!aa, "ClientGatewayIds argument missing\n"); + s->client_gateway_ids_str = aa; + } } else if (!(aret = strcmp(str, "ClientGatewayIds[]")) || aret == '=') { TRY(!aa, "ClientGatewayIds[] argument missing\n"); SET_NEXT(s->client_gateway_ids, (aa), pa); } else - if ((aret = argcmp(str, "ConnectionTypes")) == 0 || aret == '=') { - TRY(!aa, "ConnectionTypes argument missing\n"); - s->connection_types_str = aa; + if ((aret = strcmp(str, "ConnectionTypes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ConnectionTypes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ConnectionTypes require an index\n"); + if (s->connection_types) { + for (; s->connection_types[last]; ++last); + } + if (pos < last) { + s->connection_types[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->connection_types, "", pa); + SET_NEXT(s->connection_types, (aa), pa); + } + } else { + TRY(!aa, "ConnectionTypes argument missing\n"); + s->connection_types_str = aa; + } } else if (!(aret = strcmp(str, "ConnectionTypes[]")) || aret == '=') { TRY(!aa, "ConnectionTypes[] argument missing\n"); SET_NEXT(s->connection_types, (aa), pa); } else - if ((aret = argcmp(str, "PublicIps")) == 0 || aret == '=') { - TRY(!aa, "PublicIps argument missing\n"); - s->public_ips_str = aa; + if ((aret = strcmp(str, "PublicIps")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "PublicIps argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "PublicIps require an index\n"); + if (s->public_ips) { + for (; s->public_ips[last]; ++last); + } + if (pos < last) { + s->public_ips[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->public_ips, "", pa); + SET_NEXT(s->public_ips, (aa), pa); + } + } else { + TRY(!aa, "PublicIps argument missing\n"); + s->public_ips_str = aa; + } } else if (!(aret = strcmp(str, "PublicIps[]")) || aret == '=') { TRY(!aa, "PublicIps[] argument missing\n"); SET_NEXT(s->public_ips, (aa), pa); } else - if ((aret = argcmp(str, "States")) == 0 || aret == '=') { - TRY(!aa, "States argument missing\n"); - s->states_str = aa; + if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "States argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "States require an index\n"); + if (s->states) { + for (; s->states[last]; ++last); + } + if (pos < last) { + s->states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->states, "", pa); + SET_NEXT(s->states, (aa), pa); + } + } else { + TRY(!aa, "States argument missing\n"); + s->states_str = aa; + } } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=') { - TRY(!aa, "TagKeys argument missing\n"); - s->tag_keys_str = aa; + if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagKeys argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagKeys require an index\n"); + if (s->tag_keys) { + for (; s->tag_keys[last]; ++last); + } + if (pos < last) { + s->tag_keys[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_keys, "", pa); + SET_NEXT(s->tag_keys, (aa), pa); + } + } else { + TRY(!aa, "TagKeys argument missing\n"); + s->tag_keys_str = aa; + } } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=') { - TRY(!aa, "TagValues argument missing\n"); - s->tag_values_str = aa; + if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagValues argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagValues require an index\n"); + if (s->tag_values) { + for (; s->tag_values[last]; ++last); + } + if (pos < last) { + s->tag_values[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_values, "", pa); + SET_NEXT(s->tag_values, (aa), pa); + } + } else { + TRY(!aa, "TagValues argument missing\n"); + s->tag_values_str = aa; + } } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { - TRY(!aa, "Tags argument missing\n"); - s->tags_str = aa; + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Tags argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Tags require an index\n"); + if (s->tags) { + for (; s->tags[last]; ++last); + } + if (pos < last) { + s->tags[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tags, "", pa); + SET_NEXT(s->tags, (aa), pa); + } + } else { + TRY(!aa, "Tags argument missing\n"); + s->tags_str = aa; + } } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); @@ -1888,30 +2602,114 @@ int filters_client_gateway_parser(void *v_s, char *str, char *aa, struct ptr_arr int filters_dedicated_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_dedicated_group *s = v_s; int aret = 0; - if ((aret = argcmp(str, "CpuGenerations")) == 0 || aret == '=') { - TRY(!aa, "CpuGenerations argument missing\n"); - s->cpu_generations_str = aa; + if ((aret = strcmp(str, "CpuGenerations")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "CpuGenerations argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "CpuGenerations require an index\n"); + if (s->cpu_generations) { + for (; s->cpu_generations[last]; ++last); + } + if (pos < last) { + s->cpu_generations[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->cpu_generations, 0, pa); + SET_NEXT(s->cpu_generations, atoi(aa), pa); + } + } else { + TRY(!aa, "CpuGenerations argument missing\n"); + s->cpu_generations_str = aa; + } } else if (!(aret = strcmp(str, "CpuGenerations[]")) || aret == '=') { TRY(!aa, "CpuGenerations[] argument missing\n"); SET_NEXT(s->cpu_generations, atoi(aa), pa); } else - if ((aret = argcmp(str, "DedicatedGroupIds")) == 0 || aret == '=') { - TRY(!aa, "DedicatedGroupIds argument missing\n"); - s->dedicated_group_ids_str = aa; + if ((aret = strcmp(str, "DedicatedGroupIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "DedicatedGroupIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "DedicatedGroupIds require an index\n"); + if (s->dedicated_group_ids) { + for (; s->dedicated_group_ids[last]; ++last); + } + if (pos < last) { + s->dedicated_group_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->dedicated_group_ids, "", pa); + SET_NEXT(s->dedicated_group_ids, (aa), pa); + } + } else { + TRY(!aa, "DedicatedGroupIds argument missing\n"); + s->dedicated_group_ids_str = aa; + } } else if (!(aret = strcmp(str, "DedicatedGroupIds[]")) || aret == '=') { TRY(!aa, "DedicatedGroupIds[] argument missing\n"); SET_NEXT(s->dedicated_group_ids, (aa), pa); } else - if ((aret = argcmp(str, "Names")) == 0 || aret == '=') { - TRY(!aa, "Names argument missing\n"); - s->names_str = aa; + if ((aret = strcmp(str, "Names")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Names argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Names require an index\n"); + if (s->names) { + for (; s->names[last]; ++last); + } + if (pos < last) { + s->names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->names, "", pa); + SET_NEXT(s->names, (aa), pa); + } + } else { + TRY(!aa, "Names argument missing\n"); + s->names_str = aa; + } } else if (!(aret = strcmp(str, "Names[]")) || aret == '=') { TRY(!aa, "Names[] argument missing\n"); SET_NEXT(s->names, (aa), pa); } else - if ((aret = argcmp(str, "SubregionNames")) == 0 || aret == '=') { - TRY(!aa, "SubregionNames argument missing\n"); - s->subregion_names_str = aa; + if ((aret = strcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SubregionNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SubregionNames require an index\n"); + if (s->subregion_names) { + for (; s->subregion_names[last]; ++last); + } + if (pos < last) { + s->subregion_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->subregion_names, "", pa); + SET_NEXT(s->subregion_names, (aa), pa); + } + } else { + TRY(!aa, "SubregionNames argument missing\n"); + s->subregion_names_str = aa; + } } else if (!(aret = strcmp(str, "SubregionNames[]")) || aret == '=') { TRY(!aa, "SubregionNames[] argument missing\n"); SET_NEXT(s->subregion_names, (aa), pa); @@ -1926,7 +2724,7 @@ int filters_dedicated_group_parser(void *v_s, char *str, char *aa, struct ptr_ar int filters_dhcp_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_dhcp_options *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Default")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Default")) == 0 || aret == '=' || aret == '.') { s->is_set_default_arg = 1; if (!aa || !strcasecmp(aa, "true")) { s->default_arg = 1; @@ -1936,58 +2734,226 @@ int filters_dhcp_options_parser(void *v_s, char *str, char *aa, struct ptr_array BAD_RET("Default require true/false\n"); } } else - if ((aret = argcmp(str, "DhcpOptionsSetIds")) == 0 || aret == '=') { - TRY(!aa, "DhcpOptionsSetIds argument missing\n"); - s->dhcp_options_set_ids_str = aa; + if ((aret = strcmp(str, "DhcpOptionsSetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "DhcpOptionsSetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "DhcpOptionsSetIds require an index\n"); + if (s->dhcp_options_set_ids) { + for (; s->dhcp_options_set_ids[last]; ++last); + } + if (pos < last) { + s->dhcp_options_set_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->dhcp_options_set_ids, "", pa); + SET_NEXT(s->dhcp_options_set_ids, (aa), pa); + } + } else { + TRY(!aa, "DhcpOptionsSetIds argument missing\n"); + s->dhcp_options_set_ids_str = aa; + } } else if (!(aret = strcmp(str, "DhcpOptionsSetIds[]")) || aret == '=') { TRY(!aa, "DhcpOptionsSetIds[] argument missing\n"); SET_NEXT(s->dhcp_options_set_ids, (aa), pa); } else - if ((aret = argcmp(str, "DomainNameServers")) == 0 || aret == '=') { - TRY(!aa, "DomainNameServers argument missing\n"); - s->domain_name_servers_str = aa; + if ((aret = strcmp(str, "DomainNameServers")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "DomainNameServers argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "DomainNameServers require an index\n"); + if (s->domain_name_servers) { + for (; s->domain_name_servers[last]; ++last); + } + if (pos < last) { + s->domain_name_servers[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->domain_name_servers, "", pa); + SET_NEXT(s->domain_name_servers, (aa), pa); + } + } else { + TRY(!aa, "DomainNameServers argument missing\n"); + s->domain_name_servers_str = aa; + } } else if (!(aret = strcmp(str, "DomainNameServers[]")) || aret == '=') { TRY(!aa, "DomainNameServers[] argument missing\n"); SET_NEXT(s->domain_name_servers, (aa), pa); } else - if ((aret = argcmp(str, "DomainNames")) == 0 || aret == '=') { - TRY(!aa, "DomainNames argument missing\n"); - s->domain_names_str = aa; + if ((aret = strcmp(str, "DomainNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "DomainNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "DomainNames require an index\n"); + if (s->domain_names) { + for (; s->domain_names[last]; ++last); + } + if (pos < last) { + s->domain_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->domain_names, "", pa); + SET_NEXT(s->domain_names, (aa), pa); + } + } else { + TRY(!aa, "DomainNames argument missing\n"); + s->domain_names_str = aa; + } } else if (!(aret = strcmp(str, "DomainNames[]")) || aret == '=') { TRY(!aa, "DomainNames[] argument missing\n"); SET_NEXT(s->domain_names, (aa), pa); } else - if ((aret = argcmp(str, "LogServers")) == 0 || aret == '=') { - TRY(!aa, "LogServers argument missing\n"); - s->log_servers_str = aa; + if ((aret = strcmp(str, "LogServers")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LogServers argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LogServers require an index\n"); + if (s->log_servers) { + for (; s->log_servers[last]; ++last); + } + if (pos < last) { + s->log_servers[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->log_servers, "", pa); + SET_NEXT(s->log_servers, (aa), pa); + } + } else { + TRY(!aa, "LogServers argument missing\n"); + s->log_servers_str = aa; + } } else if (!(aret = strcmp(str, "LogServers[]")) || aret == '=') { TRY(!aa, "LogServers[] argument missing\n"); SET_NEXT(s->log_servers, (aa), pa); } else - if ((aret = argcmp(str, "NtpServers")) == 0 || aret == '=') { - TRY(!aa, "NtpServers argument missing\n"); - s->ntp_servers_str = aa; + if ((aret = strcmp(str, "NtpServers")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NtpServers argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NtpServers require an index\n"); + if (s->ntp_servers) { + for (; s->ntp_servers[last]; ++last); + } + if (pos < last) { + s->ntp_servers[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->ntp_servers, "", pa); + SET_NEXT(s->ntp_servers, (aa), pa); + } + } else { + TRY(!aa, "NtpServers argument missing\n"); + s->ntp_servers_str = aa; + } } else if (!(aret = strcmp(str, "NtpServers[]")) || aret == '=') { TRY(!aa, "NtpServers[] argument missing\n"); SET_NEXT(s->ntp_servers, (aa), pa); } else - if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=') { - TRY(!aa, "TagKeys argument missing\n"); - s->tag_keys_str = aa; + if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagKeys argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagKeys require an index\n"); + if (s->tag_keys) { + for (; s->tag_keys[last]; ++last); + } + if (pos < last) { + s->tag_keys[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_keys, "", pa); + SET_NEXT(s->tag_keys, (aa), pa); + } + } else { + TRY(!aa, "TagKeys argument missing\n"); + s->tag_keys_str = aa; + } } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=') { - TRY(!aa, "TagValues argument missing\n"); - s->tag_values_str = aa; + if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagValues argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagValues require an index\n"); + if (s->tag_values) { + for (; s->tag_values[last]; ++last); + } + if (pos < last) { + s->tag_values[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_values, "", pa); + SET_NEXT(s->tag_values, (aa), pa); + } + } else { + TRY(!aa, "TagValues argument missing\n"); + s->tag_values_str = aa; + } } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { - TRY(!aa, "Tags argument missing\n"); - s->tags_str = aa; + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Tags argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Tags require an index\n"); + if (s->tags) { + for (; s->tags[last]; ++last); + } + if (pos < last) { + s->tags[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tags, "", pa); + SET_NEXT(s->tags, (aa), pa); + } + } else { + TRY(!aa, "Tags argument missing\n"); + s->tags_str = aa; + } } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); @@ -2002,9 +2968,30 @@ int filters_dhcp_options_parser(void *v_s, char *str, char *aa, struct ptr_array int filters_direct_link_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_direct_link *s = v_s; int aret = 0; - if ((aret = argcmp(str, "DirectLinkIds")) == 0 || aret == '=') { - TRY(!aa, "DirectLinkIds argument missing\n"); - s->direct_link_ids_str = aa; + if ((aret = strcmp(str, "DirectLinkIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "DirectLinkIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "DirectLinkIds require an index\n"); + if (s->direct_link_ids) { + for (; s->direct_link_ids[last]; ++last); + } + if (pos < last) { + s->direct_link_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->direct_link_ids, "", pa); + SET_NEXT(s->direct_link_ids, (aa), pa); + } + } else { + TRY(!aa, "DirectLinkIds argument missing\n"); + s->direct_link_ids_str = aa; + } } else if (!(aret = strcmp(str, "DirectLinkIds[]")) || aret == '=') { TRY(!aa, "DirectLinkIds[] argument missing\n"); SET_NEXT(s->direct_link_ids, (aa), pa); @@ -2019,16 +3006,58 @@ int filters_direct_link_parser(void *v_s, char *str, char *aa, struct ptr_array int filters_direct_link_interface_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_direct_link_interface *s = v_s; int aret = 0; - if ((aret = argcmp(str, "DirectLinkIds")) == 0 || aret == '=') { - TRY(!aa, "DirectLinkIds argument missing\n"); - s->direct_link_ids_str = aa; + if ((aret = strcmp(str, "DirectLinkIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "DirectLinkIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "DirectLinkIds require an index\n"); + if (s->direct_link_ids) { + for (; s->direct_link_ids[last]; ++last); + } + if (pos < last) { + s->direct_link_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->direct_link_ids, "", pa); + SET_NEXT(s->direct_link_ids, (aa), pa); + } + } else { + TRY(!aa, "DirectLinkIds argument missing\n"); + s->direct_link_ids_str = aa; + } } else if (!(aret = strcmp(str, "DirectLinkIds[]")) || aret == '=') { TRY(!aa, "DirectLinkIds[] argument missing\n"); SET_NEXT(s->direct_link_ids, (aa), pa); } else - if ((aret = argcmp(str, "DirectLinkInterfaceIds")) == 0 || aret == '=') { - TRY(!aa, "DirectLinkInterfaceIds argument missing\n"); - s->direct_link_interface_ids_str = aa; + if ((aret = strcmp(str, "DirectLinkInterfaceIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "DirectLinkInterfaceIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "DirectLinkInterfaceIds require an index\n"); + if (s->direct_link_interface_ids) { + for (; s->direct_link_interface_ids[last]; ++last); + } + if (pos < last) { + s->direct_link_interface_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->direct_link_interface_ids, "", pa); + SET_NEXT(s->direct_link_interface_ids, (aa), pa); + } + } else { + TRY(!aa, "DirectLinkInterfaceIds argument missing\n"); + s->direct_link_interface_ids_str = aa; + } } else if (!(aret = strcmp(str, "DirectLinkInterfaceIds[]")) || aret == '=') { TRY(!aa, "DirectLinkInterfaceIds[] argument missing\n"); SET_NEXT(s->direct_link_interface_ids, (aa), pa); @@ -2043,9 +3072,30 @@ int filters_direct_link_interface_parser(void *v_s, char *str, char *aa, struct int filters_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_export_task *s = v_s; int aret = 0; - if ((aret = argcmp(str, "TaskIds")) == 0 || aret == '=') { - TRY(!aa, "TaskIds argument missing\n"); - s->task_ids_str = aa; + if ((aret = strcmp(str, "TaskIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TaskIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TaskIds require an index\n"); + if (s->task_ids) { + for (; s->task_ids[last]; ++last); + } + if (pos < last) { + s->task_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->task_ids, "", pa); + SET_NEXT(s->task_ids, (aa), pa); + } + } else { + TRY(!aa, "TaskIds argument missing\n"); + s->task_ids_str = aa; + } } else if (!(aret = strcmp(str, "TaskIds[]")) || aret == '=') { TRY(!aa, "TaskIds[] argument missing\n"); SET_NEXT(s->task_ids, (aa), pa); @@ -2060,7 +3110,7 @@ int filters_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array int filters_flexible_gpu_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_flexible_gpu *s = v_s; int aret = 0; - if ((aret = argcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->delete_on_vm_deletion = 1; @@ -2070,44 +3120,170 @@ int filters_flexible_gpu_parser(void *v_s, char *str, char *aa, struct ptr_array BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = argcmp(str, "FlexibleGpuIds")) == 0 || aret == '=') { - TRY(!aa, "FlexibleGpuIds argument missing\n"); - s->flexible_gpu_ids_str = aa; + if ((aret = strcmp(str, "FlexibleGpuIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "FlexibleGpuIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "FlexibleGpuIds require an index\n"); + if (s->flexible_gpu_ids) { + for (; s->flexible_gpu_ids[last]; ++last); + } + if (pos < last) { + s->flexible_gpu_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->flexible_gpu_ids, "", pa); + SET_NEXT(s->flexible_gpu_ids, (aa), pa); + } + } else { + TRY(!aa, "FlexibleGpuIds argument missing\n"); + s->flexible_gpu_ids_str = aa; + } } else if (!(aret = strcmp(str, "FlexibleGpuIds[]")) || aret == '=') { TRY(!aa, "FlexibleGpuIds[] argument missing\n"); SET_NEXT(s->flexible_gpu_ids, (aa), pa); } else - if ((aret = argcmp(str, "Generations")) == 0 || aret == '=') { - TRY(!aa, "Generations argument missing\n"); - s->generations_str = aa; + if ((aret = strcmp(str, "Generations")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Generations argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Generations require an index\n"); + if (s->generations) { + for (; s->generations[last]; ++last); + } + if (pos < last) { + s->generations[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->generations, "", pa); + SET_NEXT(s->generations, (aa), pa); + } + } else { + TRY(!aa, "Generations argument missing\n"); + s->generations_str = aa; + } } else if (!(aret = strcmp(str, "Generations[]")) || aret == '=') { TRY(!aa, "Generations[] argument missing\n"); SET_NEXT(s->generations, (aa), pa); } else - if ((aret = argcmp(str, "ModelNames")) == 0 || aret == '=') { - TRY(!aa, "ModelNames argument missing\n"); - s->model_names_str = aa; + if ((aret = strcmp(str, "ModelNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ModelNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ModelNames require an index\n"); + if (s->model_names) { + for (; s->model_names[last]; ++last); + } + if (pos < last) { + s->model_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->model_names, "", pa); + SET_NEXT(s->model_names, (aa), pa); + } + } else { + TRY(!aa, "ModelNames argument missing\n"); + s->model_names_str = aa; + } } else if (!(aret = strcmp(str, "ModelNames[]")) || aret == '=') { TRY(!aa, "ModelNames[] argument missing\n"); SET_NEXT(s->model_names, (aa), pa); } else - if ((aret = argcmp(str, "States")) == 0 || aret == '=') { - TRY(!aa, "States argument missing\n"); - s->states_str = aa; + if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "States argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "States require an index\n"); + if (s->states) { + for (; s->states[last]; ++last); + } + if (pos < last) { + s->states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->states, "", pa); + SET_NEXT(s->states, (aa), pa); + } + } else { + TRY(!aa, "States argument missing\n"); + s->states_str = aa; + } } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = argcmp(str, "SubregionNames")) == 0 || aret == '=') { - TRY(!aa, "SubregionNames argument missing\n"); - s->subregion_names_str = aa; + if ((aret = strcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SubregionNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SubregionNames require an index\n"); + if (s->subregion_names) { + for (; s->subregion_names[last]; ++last); + } + if (pos < last) { + s->subregion_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->subregion_names, "", pa); + SET_NEXT(s->subregion_names, (aa), pa); + } + } else { + TRY(!aa, "SubregionNames argument missing\n"); + s->subregion_names_str = aa; + } } else if (!(aret = strcmp(str, "SubregionNames[]")) || aret == '=') { TRY(!aa, "SubregionNames[] argument missing\n"); SET_NEXT(s->subregion_names, (aa), pa); } else - if ((aret = argcmp(str, "VmIds")) == 0 || aret == '=') { - TRY(!aa, "VmIds argument missing\n"); - s->vm_ids_str = aa; + if ((aret = strcmp(str, "VmIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmIds require an index\n"); + if (s->vm_ids) { + for (; s->vm_ids[last]; ++last); + } + if (pos < last) { + s->vm_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_ids, "", pa); + SET_NEXT(s->vm_ids, (aa), pa); + } + } else { + TRY(!aa, "VmIds argument missing\n"); + s->vm_ids_str = aa; + } } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); @@ -2122,28 +3298,91 @@ int filters_flexible_gpu_parser(void *v_s, char *str, char *aa, struct ptr_array int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_image *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccountAliases")) == 0 || aret == '=') { - TRY(!aa, "AccountAliases argument missing\n"); - s->account_aliases_str = aa; + if ((aret = strcmp(str, "AccountAliases")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "AccountAliases argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "AccountAliases require an index\n"); + if (s->account_aliases) { + for (; s->account_aliases[last]; ++last); + } + if (pos < last) { + s->account_aliases[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->account_aliases, "", pa); + SET_NEXT(s->account_aliases, (aa), pa); + } + } else { + TRY(!aa, "AccountAliases argument missing\n"); + s->account_aliases_str = aa; + } } else if (!(aret = strcmp(str, "AccountAliases[]")) || aret == '=') { TRY(!aa, "AccountAliases[] argument missing\n"); SET_NEXT(s->account_aliases, (aa), pa); } else - if ((aret = argcmp(str, "AccountIds")) == 0 || aret == '=') { - TRY(!aa, "AccountIds argument missing\n"); - s->account_ids_str = aa; + if ((aret = strcmp(str, "AccountIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "AccountIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "AccountIds require an index\n"); + if (s->account_ids) { + for (; s->account_ids[last]; ++last); + } + if (pos < last) { + s->account_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->account_ids, "", pa); + SET_NEXT(s->account_ids, (aa), pa); + } + } else { + TRY(!aa, "AccountIds argument missing\n"); + s->account_ids_str = aa; + } } else if (!(aret = strcmp(str, "AccountIds[]")) || aret == '=') { TRY(!aa, "AccountIds[] argument missing\n"); SET_NEXT(s->account_ids, (aa), pa); } else - if ((aret = argcmp(str, "Architectures")) == 0 || aret == '=') { - TRY(!aa, "Architectures argument missing\n"); - s->architectures_str = aa; + if ((aret = strcmp(str, "Architectures")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Architectures argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Architectures require an index\n"); + if (s->architectures) { + for (; s->architectures[last]; ++last); + } + if (pos < last) { + s->architectures[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->architectures, "", pa); + SET_NEXT(s->architectures, (aa), pa); + } + } else { + TRY(!aa, "Architectures argument missing\n"); + s->architectures_str = aa; + } } else if (!(aret = strcmp(str, "Architectures[]")) || aret == '=') { TRY(!aa, "Architectures[] argument missing\n"); SET_NEXT(s->architectures, (aa), pa); } else - if ((aret = argcmp(str, "BlockDeviceMappingDeleteOnVmDeletion")) == 0 || aret == '=') { + if ((aret = strcmp(str, "BlockDeviceMappingDeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_block_device_mapping_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->block_device_mapping_delete_on_vm_deletion = 1; @@ -2153,77 +3392,287 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("BlockDeviceMappingDeleteOnVmDeletion require true/false\n"); } } else - if ((aret = argcmp(str, "BlockDeviceMappingDeviceNames")) == 0 || aret == '=') { - TRY(!aa, "BlockDeviceMappingDeviceNames argument missing\n"); - s->block_device_mapping_device_names_str = aa; + if ((aret = strcmp(str, "BlockDeviceMappingDeviceNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "BlockDeviceMappingDeviceNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "BlockDeviceMappingDeviceNames require an index\n"); + if (s->block_device_mapping_device_names) { + for (; s->block_device_mapping_device_names[last]; ++last); + } + if (pos < last) { + s->block_device_mapping_device_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->block_device_mapping_device_names, "", pa); + SET_NEXT(s->block_device_mapping_device_names, (aa), pa); + } + } else { + TRY(!aa, "BlockDeviceMappingDeviceNames argument missing\n"); + s->block_device_mapping_device_names_str = aa; + } } else if (!(aret = strcmp(str, "BlockDeviceMappingDeviceNames[]")) || aret == '=') { TRY(!aa, "BlockDeviceMappingDeviceNames[] argument missing\n"); SET_NEXT(s->block_device_mapping_device_names, (aa), pa); } else - if ((aret = argcmp(str, "BlockDeviceMappingSnapshotIds")) == 0 || aret == '=') { - TRY(!aa, "BlockDeviceMappingSnapshotIds argument missing\n"); - s->block_device_mapping_snapshot_ids_str = aa; + if ((aret = strcmp(str, "BlockDeviceMappingSnapshotIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "BlockDeviceMappingSnapshotIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "BlockDeviceMappingSnapshotIds require an index\n"); + if (s->block_device_mapping_snapshot_ids) { + for (; s->block_device_mapping_snapshot_ids[last]; ++last); + } + if (pos < last) { + s->block_device_mapping_snapshot_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->block_device_mapping_snapshot_ids, "", pa); + SET_NEXT(s->block_device_mapping_snapshot_ids, (aa), pa); + } + } else { + TRY(!aa, "BlockDeviceMappingSnapshotIds argument missing\n"); + s->block_device_mapping_snapshot_ids_str = aa; + } } else if (!(aret = strcmp(str, "BlockDeviceMappingSnapshotIds[]")) || aret == '=') { TRY(!aa, "BlockDeviceMappingSnapshotIds[] argument missing\n"); SET_NEXT(s->block_device_mapping_snapshot_ids, (aa), pa); } else - if ((aret = argcmp(str, "BlockDeviceMappingVolumeSizes")) == 0 || aret == '=') { - TRY(!aa, "BlockDeviceMappingVolumeSizes argument missing\n"); - s->block_device_mapping_volume_sizes_str = aa; + if ((aret = strcmp(str, "BlockDeviceMappingVolumeSizes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "BlockDeviceMappingVolumeSizes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "BlockDeviceMappingVolumeSizes require an index\n"); + if (s->block_device_mapping_volume_sizes) { + for (; s->block_device_mapping_volume_sizes[last]; ++last); + } + if (pos < last) { + s->block_device_mapping_volume_sizes[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->block_device_mapping_volume_sizes, 0, pa); + SET_NEXT(s->block_device_mapping_volume_sizes, atoi(aa), pa); + } + } else { + TRY(!aa, "BlockDeviceMappingVolumeSizes argument missing\n"); + s->block_device_mapping_volume_sizes_str = aa; + } } else if (!(aret = strcmp(str, "BlockDeviceMappingVolumeSizes[]")) || aret == '=') { TRY(!aa, "BlockDeviceMappingVolumeSizes[] argument missing\n"); SET_NEXT(s->block_device_mapping_volume_sizes, atoi(aa), pa); } else - if ((aret = argcmp(str, "BlockDeviceMappingVolumeTypes")) == 0 || aret == '=') { - TRY(!aa, "BlockDeviceMappingVolumeTypes argument missing\n"); - s->block_device_mapping_volume_types_str = aa; + if ((aret = strcmp(str, "BlockDeviceMappingVolumeTypes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "BlockDeviceMappingVolumeTypes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "BlockDeviceMappingVolumeTypes require an index\n"); + if (s->block_device_mapping_volume_types) { + for (; s->block_device_mapping_volume_types[last]; ++last); + } + if (pos < last) { + s->block_device_mapping_volume_types[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->block_device_mapping_volume_types, "", pa); + SET_NEXT(s->block_device_mapping_volume_types, (aa), pa); + } + } else { + TRY(!aa, "BlockDeviceMappingVolumeTypes argument missing\n"); + s->block_device_mapping_volume_types_str = aa; + } } else if (!(aret = strcmp(str, "BlockDeviceMappingVolumeTypes[]")) || aret == '=') { TRY(!aa, "BlockDeviceMappingVolumeTypes[] argument missing\n"); SET_NEXT(s->block_device_mapping_volume_types, (aa), pa); } else - if ((aret = argcmp(str, "Descriptions")) == 0 || aret == '=') { - TRY(!aa, "Descriptions argument missing\n"); - s->descriptions_str = aa; + if ((aret = strcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Descriptions argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Descriptions require an index\n"); + if (s->descriptions) { + for (; s->descriptions[last]; ++last); + } + if (pos < last) { + s->descriptions[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->descriptions, "", pa); + SET_NEXT(s->descriptions, (aa), pa); + } + } else { + TRY(!aa, "Descriptions argument missing\n"); + s->descriptions_str = aa; + } } else if (!(aret = strcmp(str, "Descriptions[]")) || aret == '=') { TRY(!aa, "Descriptions[] argument missing\n"); SET_NEXT(s->descriptions, (aa), pa); } else - if ((aret = argcmp(str, "FileLocations")) == 0 || aret == '=') { - TRY(!aa, "FileLocations argument missing\n"); - s->file_locations_str = aa; + if ((aret = strcmp(str, "FileLocations")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "FileLocations argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "FileLocations require an index\n"); + if (s->file_locations) { + for (; s->file_locations[last]; ++last); + } + if (pos < last) { + s->file_locations[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->file_locations, "", pa); + SET_NEXT(s->file_locations, (aa), pa); + } + } else { + TRY(!aa, "FileLocations argument missing\n"); + s->file_locations_str = aa; + } } else if (!(aret = strcmp(str, "FileLocations[]")) || aret == '=') { TRY(!aa, "FileLocations[] argument missing\n"); SET_NEXT(s->file_locations, (aa), pa); } else - if ((aret = argcmp(str, "Hypervisors")) == 0 || aret == '=') { - TRY(!aa, "Hypervisors argument missing\n"); - s->hypervisors_str = aa; + if ((aret = strcmp(str, "Hypervisors")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Hypervisors argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Hypervisors require an index\n"); + if (s->hypervisors) { + for (; s->hypervisors[last]; ++last); + } + if (pos < last) { + s->hypervisors[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->hypervisors, "", pa); + SET_NEXT(s->hypervisors, (aa), pa); + } + } else { + TRY(!aa, "Hypervisors argument missing\n"); + s->hypervisors_str = aa; + } } else if (!(aret = strcmp(str, "Hypervisors[]")) || aret == '=') { TRY(!aa, "Hypervisors[] argument missing\n"); SET_NEXT(s->hypervisors, (aa), pa); } else - if ((aret = argcmp(str, "ImageIds")) == 0 || aret == '=') { - TRY(!aa, "ImageIds argument missing\n"); - s->image_ids_str = aa; + if ((aret = strcmp(str, "ImageIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ImageIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ImageIds require an index\n"); + if (s->image_ids) { + for (; s->image_ids[last]; ++last); + } + if (pos < last) { + s->image_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->image_ids, "", pa); + SET_NEXT(s->image_ids, (aa), pa); + } + } else { + TRY(!aa, "ImageIds argument missing\n"); + s->image_ids_str = aa; + } } else if (!(aret = strcmp(str, "ImageIds[]")) || aret == '=') { TRY(!aa, "ImageIds[] argument missing\n"); SET_NEXT(s->image_ids, (aa), pa); } else - if ((aret = argcmp(str, "ImageNames")) == 0 || aret == '=') { - TRY(!aa, "ImageNames argument missing\n"); - s->image_names_str = aa; + if ((aret = strcmp(str, "ImageNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ImageNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ImageNames require an index\n"); + if (s->image_names) { + for (; s->image_names[last]; ++last); + } + if (pos < last) { + s->image_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->image_names, "", pa); + SET_NEXT(s->image_names, (aa), pa); + } + } else { + TRY(!aa, "ImageNames argument missing\n"); + s->image_names_str = aa; + } } else if (!(aret = strcmp(str, "ImageNames[]")) || aret == '=') { TRY(!aa, "ImageNames[] argument missing\n"); SET_NEXT(s->image_names, (aa), pa); } else - if ((aret = argcmp(str, "PermissionsToLaunchAccountIds")) == 0 || aret == '=') { - TRY(!aa, "PermissionsToLaunchAccountIds argument missing\n"); - s->permissions_to_launch_account_ids_str = aa; + if ((aret = strcmp(str, "PermissionsToLaunchAccountIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "PermissionsToLaunchAccountIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "PermissionsToLaunchAccountIds require an index\n"); + if (s->permissions_to_launch_account_ids) { + for (; s->permissions_to_launch_account_ids[last]; ++last); + } + if (pos < last) { + s->permissions_to_launch_account_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->permissions_to_launch_account_ids, "", pa); + SET_NEXT(s->permissions_to_launch_account_ids, (aa), pa); + } + } else { + TRY(!aa, "PermissionsToLaunchAccountIds argument missing\n"); + s->permissions_to_launch_account_ids_str = aa; + } } else if (!(aret = strcmp(str, "PermissionsToLaunchAccountIds[]")) || aret == '=') { TRY(!aa, "PermissionsToLaunchAccountIds[] argument missing\n"); SET_NEXT(s->permissions_to_launch_account_ids, (aa), pa); } else - if ((aret = argcmp(str, "PermissionsToLaunchGlobalPermission")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PermissionsToLaunchGlobalPermission")) == 0 || aret == '=' || aret == '.') { s->is_set_permissions_to_launch_global_permission = 1; if (!aa || !strcasecmp(aa, "true")) { s->permissions_to_launch_global_permission = 1; @@ -2233,65 +3682,254 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("PermissionsToLaunchGlobalPermission require true/false\n"); } } else - if ((aret = argcmp(str, "ProductCodeNames")) == 0 || aret == '=') { - TRY(!aa, "ProductCodeNames argument missing\n"); - s->product_code_names_str = aa; + if ((aret = strcmp(str, "ProductCodeNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ProductCodeNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ProductCodeNames require an index\n"); + if (s->product_code_names) { + for (; s->product_code_names[last]; ++last); + } + if (pos < last) { + s->product_code_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->product_code_names, "", pa); + SET_NEXT(s->product_code_names, (aa), pa); + } + } else { + TRY(!aa, "ProductCodeNames argument missing\n"); + s->product_code_names_str = aa; + } } else if (!(aret = strcmp(str, "ProductCodeNames[]")) || aret == '=') { TRY(!aa, "ProductCodeNames[] argument missing\n"); SET_NEXT(s->product_code_names, (aa), pa); } else - if ((aret = argcmp(str, "ProductCodes")) == 0 || aret == '=') { - TRY(!aa, "ProductCodes argument missing\n"); - s->product_codes_str = aa; + if ((aret = strcmp(str, "ProductCodes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ProductCodes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ProductCodes require an index\n"); + if (s->product_codes) { + for (; s->product_codes[last]; ++last); + } + if (pos < last) { + s->product_codes[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->product_codes, "", pa); + SET_NEXT(s->product_codes, (aa), pa); + } + } else { + TRY(!aa, "ProductCodes argument missing\n"); + s->product_codes_str = aa; + } } else if (!(aret = strcmp(str, "ProductCodes[]")) || aret == '=') { TRY(!aa, "ProductCodes[] argument missing\n"); SET_NEXT(s->product_codes, (aa), pa); } else - if ((aret = argcmp(str, "RootDeviceNames")) == 0 || aret == '=') { - TRY(!aa, "RootDeviceNames argument missing\n"); - s->root_device_names_str = aa; + if ((aret = strcmp(str, "RootDeviceNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "RootDeviceNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "RootDeviceNames require an index\n"); + if (s->root_device_names) { + for (; s->root_device_names[last]; ++last); + } + if (pos < last) { + s->root_device_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->root_device_names, "", pa); + SET_NEXT(s->root_device_names, (aa), pa); + } + } else { + TRY(!aa, "RootDeviceNames argument missing\n"); + s->root_device_names_str = aa; + } } else if (!(aret = strcmp(str, "RootDeviceNames[]")) || aret == '=') { TRY(!aa, "RootDeviceNames[] argument missing\n"); SET_NEXT(s->root_device_names, (aa), pa); } else - if ((aret = argcmp(str, "RootDeviceTypes")) == 0 || aret == '=') { - TRY(!aa, "RootDeviceTypes argument missing\n"); - s->root_device_types_str = aa; + if ((aret = strcmp(str, "RootDeviceTypes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "RootDeviceTypes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "RootDeviceTypes require an index\n"); + if (s->root_device_types) { + for (; s->root_device_types[last]; ++last); + } + if (pos < last) { + s->root_device_types[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->root_device_types, "", pa); + SET_NEXT(s->root_device_types, (aa), pa); + } + } else { + TRY(!aa, "RootDeviceTypes argument missing\n"); + s->root_device_types_str = aa; + } } else if (!(aret = strcmp(str, "RootDeviceTypes[]")) || aret == '=') { TRY(!aa, "RootDeviceTypes[] argument missing\n"); SET_NEXT(s->root_device_types, (aa), pa); } else - if ((aret = argcmp(str, "States")) == 0 || aret == '=') { - TRY(!aa, "States argument missing\n"); - s->states_str = aa; + if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "States argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "States require an index\n"); + if (s->states) { + for (; s->states[last]; ++last); + } + if (pos < last) { + s->states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->states, "", pa); + SET_NEXT(s->states, (aa), pa); + } + } else { + TRY(!aa, "States argument missing\n"); + s->states_str = aa; + } } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=') { - TRY(!aa, "TagKeys argument missing\n"); - s->tag_keys_str = aa; + if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagKeys argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagKeys require an index\n"); + if (s->tag_keys) { + for (; s->tag_keys[last]; ++last); + } + if (pos < last) { + s->tag_keys[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_keys, "", pa); + SET_NEXT(s->tag_keys, (aa), pa); + } + } else { + TRY(!aa, "TagKeys argument missing\n"); + s->tag_keys_str = aa; + } } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=') { - TRY(!aa, "TagValues argument missing\n"); - s->tag_values_str = aa; + if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagValues argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagValues require an index\n"); + if (s->tag_values) { + for (; s->tag_values[last]; ++last); + } + if (pos < last) { + s->tag_values[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_values, "", pa); + SET_NEXT(s->tag_values, (aa), pa); + } + } else { + TRY(!aa, "TagValues argument missing\n"); + s->tag_values_str = aa; + } } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { - TRY(!aa, "Tags argument missing\n"); - s->tags_str = aa; + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Tags argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Tags require an index\n"); + if (s->tags) { + for (; s->tags[last]; ++last); + } + if (pos < last) { + s->tags[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tags, "", pa); + SET_NEXT(s->tags, (aa), pa); + } + } else { + TRY(!aa, "Tags argument missing\n"); + s->tags_str = aa; + } } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else - if ((aret = argcmp(str, "VirtualizationTypes")) == 0 || aret == '=') { - TRY(!aa, "VirtualizationTypes argument missing\n"); - s->virtualization_types_str = aa; + if ((aret = strcmp(str, "VirtualizationTypes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VirtualizationTypes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VirtualizationTypes require an index\n"); + if (s->virtualization_types) { + for (; s->virtualization_types[last]; ++last); + } + if (pos < last) { + s->virtualization_types[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->virtualization_types, "", pa); + SET_NEXT(s->virtualization_types, (aa), pa); + } + } else { + TRY(!aa, "VirtualizationTypes argument missing\n"); + s->virtualization_types_str = aa; + } } else if (!(aret = strcmp(str, "VirtualizationTypes[]")) || aret == '=') { TRY(!aa, "VirtualizationTypes[] argument missing\n"); SET_NEXT(s->virtualization_types, (aa), pa); @@ -2306,44 +3944,170 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int filters_internet_service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_internet_service *s = v_s; int aret = 0; - if ((aret = argcmp(str, "InternetServiceIds")) == 0 || aret == '=') { - TRY(!aa, "InternetServiceIds argument missing\n"); - s->internet_service_ids_str = aa; + if ((aret = strcmp(str, "InternetServiceIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "InternetServiceIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "InternetServiceIds require an index\n"); + if (s->internet_service_ids) { + for (; s->internet_service_ids[last]; ++last); + } + if (pos < last) { + s->internet_service_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->internet_service_ids, "", pa); + SET_NEXT(s->internet_service_ids, (aa), pa); + } + } else { + TRY(!aa, "InternetServiceIds argument missing\n"); + s->internet_service_ids_str = aa; + } } else if (!(aret = strcmp(str, "InternetServiceIds[]")) || aret == '=') { TRY(!aa, "InternetServiceIds[] argument missing\n"); SET_NEXT(s->internet_service_ids, (aa), pa); } else - if ((aret = argcmp(str, "LinkNetIds")) == 0 || aret == '=') { - TRY(!aa, "LinkNetIds argument missing\n"); - s->link_net_ids_str = aa; + if ((aret = strcmp(str, "LinkNetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LinkNetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LinkNetIds require an index\n"); + if (s->link_net_ids) { + for (; s->link_net_ids[last]; ++last); + } + if (pos < last) { + s->link_net_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->link_net_ids, "", pa); + SET_NEXT(s->link_net_ids, (aa), pa); + } + } else { + TRY(!aa, "LinkNetIds argument missing\n"); + s->link_net_ids_str = aa; + } } else if (!(aret = strcmp(str, "LinkNetIds[]")) || aret == '=') { TRY(!aa, "LinkNetIds[] argument missing\n"); SET_NEXT(s->link_net_ids, (aa), pa); } else - if ((aret = argcmp(str, "LinkStates")) == 0 || aret == '=') { - TRY(!aa, "LinkStates argument missing\n"); - s->link_states_str = aa; + if ((aret = strcmp(str, "LinkStates")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LinkStates argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LinkStates require an index\n"); + if (s->link_states) { + for (; s->link_states[last]; ++last); + } + if (pos < last) { + s->link_states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->link_states, "", pa); + SET_NEXT(s->link_states, (aa), pa); + } + } else { + TRY(!aa, "LinkStates argument missing\n"); + s->link_states_str = aa; + } } else if (!(aret = strcmp(str, "LinkStates[]")) || aret == '=') { TRY(!aa, "LinkStates[] argument missing\n"); SET_NEXT(s->link_states, (aa), pa); } else - if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=') { - TRY(!aa, "TagKeys argument missing\n"); - s->tag_keys_str = aa; + if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagKeys argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagKeys require an index\n"); + if (s->tag_keys) { + for (; s->tag_keys[last]; ++last); + } + if (pos < last) { + s->tag_keys[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_keys, "", pa); + SET_NEXT(s->tag_keys, (aa), pa); + } + } else { + TRY(!aa, "TagKeys argument missing\n"); + s->tag_keys_str = aa; + } } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=') { - TRY(!aa, "TagValues argument missing\n"); - s->tag_values_str = aa; + if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagValues argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagValues require an index\n"); + if (s->tag_values) { + for (; s->tag_values[last]; ++last); + } + if (pos < last) { + s->tag_values[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_values, "", pa); + SET_NEXT(s->tag_values, (aa), pa); + } + } else { + TRY(!aa, "TagValues argument missing\n"); + s->tag_values_str = aa; + } } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { - TRY(!aa, "Tags argument missing\n"); - s->tags_str = aa; + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Tags argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Tags require an index\n"); + if (s->tags) { + for (; s->tags[last]; ++last); + } + if (pos < last) { + s->tags[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tags, "", pa); + SET_NEXT(s->tags, (aa), pa); + } + } else { + TRY(!aa, "Tags argument missing\n"); + s->tags_str = aa; + } } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); @@ -2358,23 +4122,86 @@ int filters_internet_service_parser(void *v_s, char *str, char *aa, struct ptr_a int filters_keypair_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_keypair *s = v_s; int aret = 0; - if ((aret = argcmp(str, "KeypairFingerprints")) == 0 || aret == '=') { - TRY(!aa, "KeypairFingerprints argument missing\n"); - s->keypair_fingerprints_str = aa; + if ((aret = strcmp(str, "KeypairFingerprints")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "KeypairFingerprints argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "KeypairFingerprints require an index\n"); + if (s->keypair_fingerprints) { + for (; s->keypair_fingerprints[last]; ++last); + } + if (pos < last) { + s->keypair_fingerprints[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->keypair_fingerprints, "", pa); + SET_NEXT(s->keypair_fingerprints, (aa), pa); + } + } else { + TRY(!aa, "KeypairFingerprints argument missing\n"); + s->keypair_fingerprints_str = aa; + } } else if (!(aret = strcmp(str, "KeypairFingerprints[]")) || aret == '=') { TRY(!aa, "KeypairFingerprints[] argument missing\n"); SET_NEXT(s->keypair_fingerprints, (aa), pa); } else - if ((aret = argcmp(str, "KeypairNames")) == 0 || aret == '=') { - TRY(!aa, "KeypairNames argument missing\n"); - s->keypair_names_str = aa; + if ((aret = strcmp(str, "KeypairNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "KeypairNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "KeypairNames require an index\n"); + if (s->keypair_names) { + for (; s->keypair_names[last]; ++last); + } + if (pos < last) { + s->keypair_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->keypair_names, "", pa); + SET_NEXT(s->keypair_names, (aa), pa); + } + } else { + TRY(!aa, "KeypairNames argument missing\n"); + s->keypair_names_str = aa; + } } else if (!(aret = strcmp(str, "KeypairNames[]")) || aret == '=') { TRY(!aa, "KeypairNames[] argument missing\n"); SET_NEXT(s->keypair_names, (aa), pa); } else - if ((aret = argcmp(str, "KeypairTypes")) == 0 || aret == '=') { - TRY(!aa, "KeypairTypes argument missing\n"); - s->keypair_types_str = aa; + if ((aret = strcmp(str, "KeypairTypes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "KeypairTypes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "KeypairTypes require an index\n"); + if (s->keypair_types) { + for (; s->keypair_types[last]; ++last); + } + if (pos < last) { + s->keypair_types[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->keypair_types, "", pa); + SET_NEXT(s->keypair_types, (aa), pa); + } + } else { + TRY(!aa, "KeypairTypes argument missing\n"); + s->keypair_types_str = aa; + } } else if (!(aret = strcmp(str, "KeypairTypes[]")) || aret == '=') { TRY(!aa, "KeypairTypes[] argument missing\n"); SET_NEXT(s->keypair_types, (aa), pa); @@ -2389,9 +4216,30 @@ int filters_keypair_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int filters_listener_rule_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_listener_rule *s = v_s; int aret = 0; - if ((aret = argcmp(str, "ListenerRuleNames")) == 0 || aret == '=') { - TRY(!aa, "ListenerRuleNames argument missing\n"); - s->listener_rule_names_str = aa; + if ((aret = strcmp(str, "ListenerRuleNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ListenerRuleNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ListenerRuleNames require an index\n"); + if (s->listener_rule_names) { + for (; s->listener_rule_names[last]; ++last); + } + if (pos < last) { + s->listener_rule_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->listener_rule_names, "", pa); + SET_NEXT(s->listener_rule_names, (aa), pa); + } + } else { + TRY(!aa, "ListenerRuleNames argument missing\n"); + s->listener_rule_names_str = aa; + } } else if (!(aret = strcmp(str, "ListenerRuleNames[]")) || aret == '=') { TRY(!aa, "ListenerRuleNames[] argument missing\n"); SET_NEXT(s->listener_rule_names, (aa), pa); @@ -2406,9 +4254,30 @@ int filters_listener_rule_parser(void *v_s, char *str, char *aa, struct ptr_arra int filters_load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_load_balancer *s = v_s; int aret = 0; - if ((aret = argcmp(str, "LoadBalancerNames")) == 0 || aret == '=') { - TRY(!aa, "LoadBalancerNames argument missing\n"); - s->load_balancer_names_str = aa; + if ((aret = strcmp(str, "LoadBalancerNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LoadBalancerNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LoadBalancerNames require an index\n"); + if (s->load_balancer_names) { + for (; s->load_balancer_names[last]; ++last); + } + if (pos < last) { + s->load_balancer_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->load_balancer_names, "", pa); + SET_NEXT(s->load_balancer_names, (aa), pa); + } + } else { + TRY(!aa, "LoadBalancerNames argument missing\n"); + s->load_balancer_names_str = aa; + } } else if (!(aret = strcmp(str, "LoadBalancerNames[]")) || aret == '=') { TRY(!aa, "LoadBalancerNames[] argument missing\n"); SET_NEXT(s->load_balancer_names, (aa), pa); @@ -2423,58 +4292,226 @@ int filters_load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_arra int filters_nat_service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_nat_service *s = v_s; int aret = 0; - if ((aret = argcmp(str, "ClientTokens")) == 0 || aret == '=') { - TRY(!aa, "ClientTokens argument missing\n"); - s->client_tokens_str = aa; + if ((aret = strcmp(str, "ClientTokens")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ClientTokens argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ClientTokens require an index\n"); + if (s->client_tokens) { + for (; s->client_tokens[last]; ++last); + } + if (pos < last) { + s->client_tokens[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->client_tokens, "", pa); + SET_NEXT(s->client_tokens, (aa), pa); + } + } else { + TRY(!aa, "ClientTokens argument missing\n"); + s->client_tokens_str = aa; + } } else if (!(aret = strcmp(str, "ClientTokens[]")) || aret == '=') { TRY(!aa, "ClientTokens[] argument missing\n"); SET_NEXT(s->client_tokens, (aa), pa); } else - if ((aret = argcmp(str, "NatServiceIds")) == 0 || aret == '=') { - TRY(!aa, "NatServiceIds argument missing\n"); - s->nat_service_ids_str = aa; + if ((aret = strcmp(str, "NatServiceIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NatServiceIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NatServiceIds require an index\n"); + if (s->nat_service_ids) { + for (; s->nat_service_ids[last]; ++last); + } + if (pos < last) { + s->nat_service_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nat_service_ids, "", pa); + SET_NEXT(s->nat_service_ids, (aa), pa); + } + } else { + TRY(!aa, "NatServiceIds argument missing\n"); + s->nat_service_ids_str = aa; + } } else if (!(aret = strcmp(str, "NatServiceIds[]")) || aret == '=') { TRY(!aa, "NatServiceIds[] argument missing\n"); SET_NEXT(s->nat_service_ids, (aa), pa); } else - if ((aret = argcmp(str, "NetIds")) == 0 || aret == '=') { - TRY(!aa, "NetIds argument missing\n"); - s->net_ids_str = aa; + if ((aret = strcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NetIds require an index\n"); + if (s->net_ids) { + for (; s->net_ids[last]; ++last); + } + if (pos < last) { + s->net_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->net_ids, "", pa); + SET_NEXT(s->net_ids, (aa), pa); + } + } else { + TRY(!aa, "NetIds argument missing\n"); + s->net_ids_str = aa; + } } else if (!(aret = strcmp(str, "NetIds[]")) || aret == '=') { TRY(!aa, "NetIds[] argument missing\n"); SET_NEXT(s->net_ids, (aa), pa); } else - if ((aret = argcmp(str, "States")) == 0 || aret == '=') { - TRY(!aa, "States argument missing\n"); - s->states_str = aa; + if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "States argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "States require an index\n"); + if (s->states) { + for (; s->states[last]; ++last); + } + if (pos < last) { + s->states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->states, "", pa); + SET_NEXT(s->states, (aa), pa); + } + } else { + TRY(!aa, "States argument missing\n"); + s->states_str = aa; + } } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = argcmp(str, "SubnetIds")) == 0 || aret == '=') { - TRY(!aa, "SubnetIds argument missing\n"); - s->subnet_ids_str = aa; + if ((aret = strcmp(str, "SubnetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SubnetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SubnetIds require an index\n"); + if (s->subnet_ids) { + for (; s->subnet_ids[last]; ++last); + } + if (pos < last) { + s->subnet_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->subnet_ids, "", pa); + SET_NEXT(s->subnet_ids, (aa), pa); + } + } else { + TRY(!aa, "SubnetIds argument missing\n"); + s->subnet_ids_str = aa; + } } else if (!(aret = strcmp(str, "SubnetIds[]")) || aret == '=') { TRY(!aa, "SubnetIds[] argument missing\n"); SET_NEXT(s->subnet_ids, (aa), pa); } else - if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=') { - TRY(!aa, "TagKeys argument missing\n"); - s->tag_keys_str = aa; + if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagKeys argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagKeys require an index\n"); + if (s->tag_keys) { + for (; s->tag_keys[last]; ++last); + } + if (pos < last) { + s->tag_keys[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_keys, "", pa); + SET_NEXT(s->tag_keys, (aa), pa); + } + } else { + TRY(!aa, "TagKeys argument missing\n"); + s->tag_keys_str = aa; + } } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=') { - TRY(!aa, "TagValues argument missing\n"); - s->tag_values_str = aa; + if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagValues argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagValues require an index\n"); + if (s->tag_values) { + for (; s->tag_values[last]; ++last); + } + if (pos < last) { + s->tag_values[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_values, "", pa); + SET_NEXT(s->tag_values, (aa), pa); + } + } else { + TRY(!aa, "TagValues argument missing\n"); + s->tag_values_str = aa; + } } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { - TRY(!aa, "Tags argument missing\n"); - s->tags_str = aa; + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Tags argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Tags require an index\n"); + if (s->tags) { + for (; s->tags[last]; ++last); + } + if (pos < last) { + s->tags[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tags, "", pa); + SET_NEXT(s->tags, (aa), pa); + } + } else { + TRY(!aa, "Tags argument missing\n"); + s->tags_str = aa; + } } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); @@ -2489,21 +4526,63 @@ int filters_nat_service_parser(void *v_s, char *str, char *aa, struct ptr_array int filters_net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_net *s = v_s; int aret = 0; - if ((aret = argcmp(str, "DhcpOptionsSetIds")) == 0 || aret == '=') { - TRY(!aa, "DhcpOptionsSetIds argument missing\n"); - s->dhcp_options_set_ids_str = aa; + if ((aret = strcmp(str, "DhcpOptionsSetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "DhcpOptionsSetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "DhcpOptionsSetIds require an index\n"); + if (s->dhcp_options_set_ids) { + for (; s->dhcp_options_set_ids[last]; ++last); + } + if (pos < last) { + s->dhcp_options_set_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->dhcp_options_set_ids, "", pa); + SET_NEXT(s->dhcp_options_set_ids, (aa), pa); + } + } else { + TRY(!aa, "DhcpOptionsSetIds argument missing\n"); + s->dhcp_options_set_ids_str = aa; + } } else if (!(aret = strcmp(str, "DhcpOptionsSetIds[]")) || aret == '=') { TRY(!aa, "DhcpOptionsSetIds[] argument missing\n"); SET_NEXT(s->dhcp_options_set_ids, (aa), pa); } else - if ((aret = argcmp(str, "IpRanges")) == 0 || aret == '=') { - TRY(!aa, "IpRanges argument missing\n"); - s->ip_ranges_str = aa; + if ((aret = strcmp(str, "IpRanges")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "IpRanges argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "IpRanges require an index\n"); + if (s->ip_ranges) { + for (; s->ip_ranges[last]; ++last); + } + if (pos < last) { + s->ip_ranges[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->ip_ranges, "", pa); + SET_NEXT(s->ip_ranges, (aa), pa); + } + } else { + TRY(!aa, "IpRanges argument missing\n"); + s->ip_ranges_str = aa; + } } else if (!(aret = strcmp(str, "IpRanges[]")) || aret == '=') { TRY(!aa, "IpRanges[] argument missing\n"); SET_NEXT(s->ip_ranges, (aa), pa); } else - if ((aret = argcmp(str, "IsDefault")) == 0 || aret == '=') { + if ((aret = strcmp(str, "IsDefault")) == 0 || aret == '=' || aret == '.') { s->is_set_is_default = 1; if (!aa || !strcasecmp(aa, "true")) { s->is_default = 1; @@ -2513,37 +4592,142 @@ int filters_net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("IsDefault require true/false\n"); } } else - if ((aret = argcmp(str, "NetIds")) == 0 || aret == '=') { - TRY(!aa, "NetIds argument missing\n"); - s->net_ids_str = aa; + if ((aret = strcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NetIds require an index\n"); + if (s->net_ids) { + for (; s->net_ids[last]; ++last); + } + if (pos < last) { + s->net_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->net_ids, "", pa); + SET_NEXT(s->net_ids, (aa), pa); + } + } else { + TRY(!aa, "NetIds argument missing\n"); + s->net_ids_str = aa; + } } else if (!(aret = strcmp(str, "NetIds[]")) || aret == '=') { TRY(!aa, "NetIds[] argument missing\n"); SET_NEXT(s->net_ids, (aa), pa); } else - if ((aret = argcmp(str, "States")) == 0 || aret == '=') { - TRY(!aa, "States argument missing\n"); - s->states_str = aa; + if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "States argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "States require an index\n"); + if (s->states) { + for (; s->states[last]; ++last); + } + if (pos < last) { + s->states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->states, "", pa); + SET_NEXT(s->states, (aa), pa); + } + } else { + TRY(!aa, "States argument missing\n"); + s->states_str = aa; + } } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=') { - TRY(!aa, "TagKeys argument missing\n"); - s->tag_keys_str = aa; + if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagKeys argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagKeys require an index\n"); + if (s->tag_keys) { + for (; s->tag_keys[last]; ++last); + } + if (pos < last) { + s->tag_keys[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_keys, "", pa); + SET_NEXT(s->tag_keys, (aa), pa); + } + } else { + TRY(!aa, "TagKeys argument missing\n"); + s->tag_keys_str = aa; + } } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=') { - TRY(!aa, "TagValues argument missing\n"); - s->tag_values_str = aa; + if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagValues argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagValues require an index\n"); + if (s->tag_values) { + for (; s->tag_values[last]; ++last); + } + if (pos < last) { + s->tag_values[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_values, "", pa); + SET_NEXT(s->tag_values, (aa), pa); + } + } else { + TRY(!aa, "TagValues argument missing\n"); + s->tag_values_str = aa; + } } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { - TRY(!aa, "Tags argument missing\n"); - s->tags_str = aa; + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Tags argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Tags require an index\n"); + if (s->tags) { + for (; s->tags[last]; ++last); + } + if (pos < last) { + s->tags[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tags, "", pa); + SET_NEXT(s->tags, (aa), pa); + } + } else { + TRY(!aa, "Tags argument missing\n"); + s->tags_str = aa; + } } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); @@ -2558,51 +4742,198 @@ int filters_net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int filters_net_access_point_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_net_access_point *s = v_s; int aret = 0; - if ((aret = argcmp(str, "NetAccessPointIds")) == 0 || aret == '=') { - TRY(!aa, "NetAccessPointIds argument missing\n"); - s->net_access_point_ids_str = aa; + if ((aret = strcmp(str, "NetAccessPointIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NetAccessPointIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NetAccessPointIds require an index\n"); + if (s->net_access_point_ids) { + for (; s->net_access_point_ids[last]; ++last); + } + if (pos < last) { + s->net_access_point_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->net_access_point_ids, "", pa); + SET_NEXT(s->net_access_point_ids, (aa), pa); + } + } else { + TRY(!aa, "NetAccessPointIds argument missing\n"); + s->net_access_point_ids_str = aa; + } } else if (!(aret = strcmp(str, "NetAccessPointIds[]")) || aret == '=') { TRY(!aa, "NetAccessPointIds[] argument missing\n"); SET_NEXT(s->net_access_point_ids, (aa), pa); } else - if ((aret = argcmp(str, "NetIds")) == 0 || aret == '=') { - TRY(!aa, "NetIds argument missing\n"); - s->net_ids_str = aa; + if ((aret = strcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NetIds require an index\n"); + if (s->net_ids) { + for (; s->net_ids[last]; ++last); + } + if (pos < last) { + s->net_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->net_ids, "", pa); + SET_NEXT(s->net_ids, (aa), pa); + } + } else { + TRY(!aa, "NetIds argument missing\n"); + s->net_ids_str = aa; + } } else if (!(aret = strcmp(str, "NetIds[]")) || aret == '=') { TRY(!aa, "NetIds[] argument missing\n"); SET_NEXT(s->net_ids, (aa), pa); } else - if ((aret = argcmp(str, "ServiceNames")) == 0 || aret == '=') { - TRY(!aa, "ServiceNames argument missing\n"); - s->service_names_str = aa; + if ((aret = strcmp(str, "ServiceNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ServiceNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ServiceNames require an index\n"); + if (s->service_names) { + for (; s->service_names[last]; ++last); + } + if (pos < last) { + s->service_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->service_names, "", pa); + SET_NEXT(s->service_names, (aa), pa); + } + } else { + TRY(!aa, "ServiceNames argument missing\n"); + s->service_names_str = aa; + } } else if (!(aret = strcmp(str, "ServiceNames[]")) || aret == '=') { TRY(!aa, "ServiceNames[] argument missing\n"); SET_NEXT(s->service_names, (aa), pa); } else - if ((aret = argcmp(str, "States")) == 0 || aret == '=') { - TRY(!aa, "States argument missing\n"); - s->states_str = aa; + if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "States argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "States require an index\n"); + if (s->states) { + for (; s->states[last]; ++last); + } + if (pos < last) { + s->states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->states, "", pa); + SET_NEXT(s->states, (aa), pa); + } + } else { + TRY(!aa, "States argument missing\n"); + s->states_str = aa; + } } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=') { - TRY(!aa, "TagKeys argument missing\n"); - s->tag_keys_str = aa; + if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagKeys argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagKeys require an index\n"); + if (s->tag_keys) { + for (; s->tag_keys[last]; ++last); + } + if (pos < last) { + s->tag_keys[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_keys, "", pa); + SET_NEXT(s->tag_keys, (aa), pa); + } + } else { + TRY(!aa, "TagKeys argument missing\n"); + s->tag_keys_str = aa; + } } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=') { - TRY(!aa, "TagValues argument missing\n"); - s->tag_values_str = aa; + if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagValues argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagValues require an index\n"); + if (s->tag_values) { + for (; s->tag_values[last]; ++last); + } + if (pos < last) { + s->tag_values[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_values, "", pa); + SET_NEXT(s->tag_values, (aa), pa); + } + } else { + TRY(!aa, "TagValues argument missing\n"); + s->tag_values_str = aa; + } } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { - TRY(!aa, "Tags argument missing\n"); - s->tags_str = aa; + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Tags argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Tags require an index\n"); + if (s->tags) { + for (; s->tags[last]; ++last); + } + if (pos < last) { + s->tags[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tags, "", pa); + SET_NEXT(s->tags, (aa), pa); + } + } else { + TRY(!aa, "Tags argument missing\n"); + s->tags_str = aa; + } } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); @@ -2617,93 +4948,366 @@ int filters_net_access_point_parser(void *v_s, char *str, char *aa, struct ptr_a int filters_net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_net_peering *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccepterNetAccountIds")) == 0 || aret == '=') { - TRY(!aa, "AccepterNetAccountIds argument missing\n"); - s->accepter_net_account_ids_str = aa; + if ((aret = strcmp(str, "AccepterNetAccountIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "AccepterNetAccountIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "AccepterNetAccountIds require an index\n"); + if (s->accepter_net_account_ids) { + for (; s->accepter_net_account_ids[last]; ++last); + } + if (pos < last) { + s->accepter_net_account_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->accepter_net_account_ids, "", pa); + SET_NEXT(s->accepter_net_account_ids, (aa), pa); + } + } else { + TRY(!aa, "AccepterNetAccountIds argument missing\n"); + s->accepter_net_account_ids_str = aa; + } } else if (!(aret = strcmp(str, "AccepterNetAccountIds[]")) || aret == '=') { TRY(!aa, "AccepterNetAccountIds[] argument missing\n"); SET_NEXT(s->accepter_net_account_ids, (aa), pa); } else - if ((aret = argcmp(str, "AccepterNetIpRanges")) == 0 || aret == '=') { - TRY(!aa, "AccepterNetIpRanges argument missing\n"); - s->accepter_net_ip_ranges_str = aa; + if ((aret = strcmp(str, "AccepterNetIpRanges")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "AccepterNetIpRanges argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "AccepterNetIpRanges require an index\n"); + if (s->accepter_net_ip_ranges) { + for (; s->accepter_net_ip_ranges[last]; ++last); + } + if (pos < last) { + s->accepter_net_ip_ranges[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->accepter_net_ip_ranges, "", pa); + SET_NEXT(s->accepter_net_ip_ranges, (aa), pa); + } + } else { + TRY(!aa, "AccepterNetIpRanges argument missing\n"); + s->accepter_net_ip_ranges_str = aa; + } } else if (!(aret = strcmp(str, "AccepterNetIpRanges[]")) || aret == '=') { TRY(!aa, "AccepterNetIpRanges[] argument missing\n"); SET_NEXT(s->accepter_net_ip_ranges, (aa), pa); } else - if ((aret = argcmp(str, "AccepterNetNetIds")) == 0 || aret == '=') { - TRY(!aa, "AccepterNetNetIds argument missing\n"); - s->accepter_net_net_ids_str = aa; + if ((aret = strcmp(str, "AccepterNetNetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "AccepterNetNetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "AccepterNetNetIds require an index\n"); + if (s->accepter_net_net_ids) { + for (; s->accepter_net_net_ids[last]; ++last); + } + if (pos < last) { + s->accepter_net_net_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->accepter_net_net_ids, "", pa); + SET_NEXT(s->accepter_net_net_ids, (aa), pa); + } + } else { + TRY(!aa, "AccepterNetNetIds argument missing\n"); + s->accepter_net_net_ids_str = aa; + } } else if (!(aret = strcmp(str, "AccepterNetNetIds[]")) || aret == '=') { TRY(!aa, "AccepterNetNetIds[] argument missing\n"); SET_NEXT(s->accepter_net_net_ids, (aa), pa); } else - if ((aret = argcmp(str, "ExpirationDates")) == 0 || aret == '=') { - TRY(!aa, "ExpirationDates argument missing\n"); - s->expiration_dates_str = aa; + if ((aret = strcmp(str, "ExpirationDates")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ExpirationDates argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ExpirationDates require an index\n"); + if (s->expiration_dates) { + for (; s->expiration_dates[last]; ++last); + } + if (pos < last) { + s->expiration_dates[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->expiration_dates, "", pa); + SET_NEXT(s->expiration_dates, (aa), pa); + } + } else { + TRY(!aa, "ExpirationDates argument missing\n"); + s->expiration_dates_str = aa; + } } else if (!(aret = strcmp(str, "ExpirationDates[]")) || aret == '=') { TRY(!aa, "ExpirationDates[] argument missing\n"); SET_NEXT(s->expiration_dates, (aa), pa); } else - if ((aret = argcmp(str, "NetPeeringIds")) == 0 || aret == '=') { - TRY(!aa, "NetPeeringIds argument missing\n"); - s->net_peering_ids_str = aa; + if ((aret = strcmp(str, "NetPeeringIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NetPeeringIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NetPeeringIds require an index\n"); + if (s->net_peering_ids) { + for (; s->net_peering_ids[last]; ++last); + } + if (pos < last) { + s->net_peering_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->net_peering_ids, "", pa); + SET_NEXT(s->net_peering_ids, (aa), pa); + } + } else { + TRY(!aa, "NetPeeringIds argument missing\n"); + s->net_peering_ids_str = aa; + } } else if (!(aret = strcmp(str, "NetPeeringIds[]")) || aret == '=') { TRY(!aa, "NetPeeringIds[] argument missing\n"); SET_NEXT(s->net_peering_ids, (aa), pa); } else - if ((aret = argcmp(str, "SourceNetAccountIds")) == 0 || aret == '=') { - TRY(!aa, "SourceNetAccountIds argument missing\n"); - s->source_net_account_ids_str = aa; + if ((aret = strcmp(str, "SourceNetAccountIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SourceNetAccountIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SourceNetAccountIds require an index\n"); + if (s->source_net_account_ids) { + for (; s->source_net_account_ids[last]; ++last); + } + if (pos < last) { + s->source_net_account_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->source_net_account_ids, "", pa); + SET_NEXT(s->source_net_account_ids, (aa), pa); + } + } else { + TRY(!aa, "SourceNetAccountIds argument missing\n"); + s->source_net_account_ids_str = aa; + } } else if (!(aret = strcmp(str, "SourceNetAccountIds[]")) || aret == '=') { TRY(!aa, "SourceNetAccountIds[] argument missing\n"); SET_NEXT(s->source_net_account_ids, (aa), pa); } else - if ((aret = argcmp(str, "SourceNetIpRanges")) == 0 || aret == '=') { - TRY(!aa, "SourceNetIpRanges argument missing\n"); - s->source_net_ip_ranges_str = aa; + if ((aret = strcmp(str, "SourceNetIpRanges")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SourceNetIpRanges argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SourceNetIpRanges require an index\n"); + if (s->source_net_ip_ranges) { + for (; s->source_net_ip_ranges[last]; ++last); + } + if (pos < last) { + s->source_net_ip_ranges[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->source_net_ip_ranges, "", pa); + SET_NEXT(s->source_net_ip_ranges, (aa), pa); + } + } else { + TRY(!aa, "SourceNetIpRanges argument missing\n"); + s->source_net_ip_ranges_str = aa; + } } else if (!(aret = strcmp(str, "SourceNetIpRanges[]")) || aret == '=') { TRY(!aa, "SourceNetIpRanges[] argument missing\n"); SET_NEXT(s->source_net_ip_ranges, (aa), pa); } else - if ((aret = argcmp(str, "SourceNetNetIds")) == 0 || aret == '=') { - TRY(!aa, "SourceNetNetIds argument missing\n"); - s->source_net_net_ids_str = aa; + if ((aret = strcmp(str, "SourceNetNetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SourceNetNetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SourceNetNetIds require an index\n"); + if (s->source_net_net_ids) { + for (; s->source_net_net_ids[last]; ++last); + } + if (pos < last) { + s->source_net_net_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->source_net_net_ids, "", pa); + SET_NEXT(s->source_net_net_ids, (aa), pa); + } + } else { + TRY(!aa, "SourceNetNetIds argument missing\n"); + s->source_net_net_ids_str = aa; + } } else if (!(aret = strcmp(str, "SourceNetNetIds[]")) || aret == '=') { TRY(!aa, "SourceNetNetIds[] argument missing\n"); SET_NEXT(s->source_net_net_ids, (aa), pa); } else - if ((aret = argcmp(str, "StateMessages")) == 0 || aret == '=') { - TRY(!aa, "StateMessages argument missing\n"); - s->state_messages_str = aa; + if ((aret = strcmp(str, "StateMessages")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "StateMessages argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "StateMessages require an index\n"); + if (s->state_messages) { + for (; s->state_messages[last]; ++last); + } + if (pos < last) { + s->state_messages[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->state_messages, "", pa); + SET_NEXT(s->state_messages, (aa), pa); + } + } else { + TRY(!aa, "StateMessages argument missing\n"); + s->state_messages_str = aa; + } } else if (!(aret = strcmp(str, "StateMessages[]")) || aret == '=') { TRY(!aa, "StateMessages[] argument missing\n"); SET_NEXT(s->state_messages, (aa), pa); } else - if ((aret = argcmp(str, "StateNames")) == 0 || aret == '=') { - TRY(!aa, "StateNames argument missing\n"); - s->state_names_str = aa; + if ((aret = strcmp(str, "StateNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "StateNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "StateNames require an index\n"); + if (s->state_names) { + for (; s->state_names[last]; ++last); + } + if (pos < last) { + s->state_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->state_names, "", pa); + SET_NEXT(s->state_names, (aa), pa); + } + } else { + TRY(!aa, "StateNames argument missing\n"); + s->state_names_str = aa; + } } else if (!(aret = strcmp(str, "StateNames[]")) || aret == '=') { TRY(!aa, "StateNames[] argument missing\n"); SET_NEXT(s->state_names, (aa), pa); } else - if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=') { - TRY(!aa, "TagKeys argument missing\n"); - s->tag_keys_str = aa; + if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagKeys argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagKeys require an index\n"); + if (s->tag_keys) { + for (; s->tag_keys[last]; ++last); + } + if (pos < last) { + s->tag_keys[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_keys, "", pa); + SET_NEXT(s->tag_keys, (aa), pa); + } + } else { + TRY(!aa, "TagKeys argument missing\n"); + s->tag_keys_str = aa; + } } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=') { - TRY(!aa, "TagValues argument missing\n"); - s->tag_values_str = aa; + if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagValues argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagValues require an index\n"); + if (s->tag_values) { + for (; s->tag_values[last]; ++last); + } + if (pos < last) { + s->tag_values[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_values, "", pa); + SET_NEXT(s->tag_values, (aa), pa); + } + } else { + TRY(!aa, "TagValues argument missing\n"); + s->tag_values_str = aa; + } } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { - TRY(!aa, "Tags argument missing\n"); - s->tags_str = aa; + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Tags argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Tags require an index\n"); + if (s->tags) { + for (; s->tags[last]; ++last); + } + if (pos < last) { + s->tags[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tags, "", pa); + SET_NEXT(s->tags, (aa), pa); + } + } else { + TRY(!aa, "Tags argument missing\n"); + s->tags_str = aa; + } } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); @@ -2718,14 +5322,35 @@ int filters_net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_nic *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Descriptions")) == 0 || aret == '=') { - TRY(!aa, "Descriptions argument missing\n"); - s->descriptions_str = aa; + if ((aret = strcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Descriptions argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Descriptions require an index\n"); + if (s->descriptions) { + for (; s->descriptions[last]; ++last); + } + if (pos < last) { + s->descriptions[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->descriptions, "", pa); + SET_NEXT(s->descriptions, (aa), pa); + } + } else { + TRY(!aa, "Descriptions argument missing\n"); + s->descriptions_str = aa; + } } else if (!(aret = strcmp(str, "Descriptions[]")) || aret == '=') { TRY(!aa, "Descriptions[] argument missing\n"); SET_NEXT(s->descriptions, (aa), pa); } else - if ((aret = argcmp(str, "IsSourceDestCheck")) == 0 || aret == '=') { + if ((aret = strcmp(str, "IsSourceDestCheck")) == 0 || aret == '=' || aret == '.') { s->is_set_is_source_dest_check = 1; if (!aa || !strcasecmp(aa, "true")) { s->is_source_dest_check = 1; @@ -2735,7 +5360,7 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("IsSourceDestCheck require true/false\n"); } } else - if ((aret = argcmp(str, "LinkNicDeleteOnVmDeletion")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LinkNicDeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_link_nic_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->link_nic_delete_on_vm_deletion = 1; @@ -2745,119 +5370,455 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("LinkNicDeleteOnVmDeletion require true/false\n"); } } else - if ((aret = argcmp(str, "LinkNicDeviceNumbers")) == 0 || aret == '=') { - TRY(!aa, "LinkNicDeviceNumbers argument missing\n"); - s->link_nic_device_numbers_str = aa; + if ((aret = strcmp(str, "LinkNicDeviceNumbers")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LinkNicDeviceNumbers argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LinkNicDeviceNumbers require an index\n"); + if (s->link_nic_device_numbers) { + for (; s->link_nic_device_numbers[last]; ++last); + } + if (pos < last) { + s->link_nic_device_numbers[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->link_nic_device_numbers, 0, pa); + SET_NEXT(s->link_nic_device_numbers, atoi(aa), pa); + } + } else { + TRY(!aa, "LinkNicDeviceNumbers argument missing\n"); + s->link_nic_device_numbers_str = aa; + } } else if (!(aret = strcmp(str, "LinkNicDeviceNumbers[]")) || aret == '=') { TRY(!aa, "LinkNicDeviceNumbers[] argument missing\n"); SET_NEXT(s->link_nic_device_numbers, atoi(aa), pa); } else - if ((aret = argcmp(str, "LinkNicLinkNicIds")) == 0 || aret == '=') { - TRY(!aa, "LinkNicLinkNicIds argument missing\n"); - s->link_nic_link_nic_ids_str = aa; + if ((aret = strcmp(str, "LinkNicLinkNicIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LinkNicLinkNicIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LinkNicLinkNicIds require an index\n"); + if (s->link_nic_link_nic_ids) { + for (; s->link_nic_link_nic_ids[last]; ++last); + } + if (pos < last) { + s->link_nic_link_nic_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->link_nic_link_nic_ids, "", pa); + SET_NEXT(s->link_nic_link_nic_ids, (aa), pa); + } + } else { + TRY(!aa, "LinkNicLinkNicIds argument missing\n"); + s->link_nic_link_nic_ids_str = aa; + } } else if (!(aret = strcmp(str, "LinkNicLinkNicIds[]")) || aret == '=') { TRY(!aa, "LinkNicLinkNicIds[] argument missing\n"); SET_NEXT(s->link_nic_link_nic_ids, (aa), pa); } else - if ((aret = argcmp(str, "LinkNicStates")) == 0 || aret == '=') { - TRY(!aa, "LinkNicStates argument missing\n"); - s->link_nic_states_str = aa; + if ((aret = strcmp(str, "LinkNicStates")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LinkNicStates argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LinkNicStates require an index\n"); + if (s->link_nic_states) { + for (; s->link_nic_states[last]; ++last); + } + if (pos < last) { + s->link_nic_states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->link_nic_states, "", pa); + SET_NEXT(s->link_nic_states, (aa), pa); + } + } else { + TRY(!aa, "LinkNicStates argument missing\n"); + s->link_nic_states_str = aa; + } } else if (!(aret = strcmp(str, "LinkNicStates[]")) || aret == '=') { TRY(!aa, "LinkNicStates[] argument missing\n"); SET_NEXT(s->link_nic_states, (aa), pa); } else - if ((aret = argcmp(str, "LinkNicVmAccountIds")) == 0 || aret == '=') { - TRY(!aa, "LinkNicVmAccountIds argument missing\n"); - s->link_nic_vm_account_ids_str = aa; + if ((aret = strcmp(str, "LinkNicVmAccountIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LinkNicVmAccountIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LinkNicVmAccountIds require an index\n"); + if (s->link_nic_vm_account_ids) { + for (; s->link_nic_vm_account_ids[last]; ++last); + } + if (pos < last) { + s->link_nic_vm_account_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->link_nic_vm_account_ids, "", pa); + SET_NEXT(s->link_nic_vm_account_ids, (aa), pa); + } + } else { + TRY(!aa, "LinkNicVmAccountIds argument missing\n"); + s->link_nic_vm_account_ids_str = aa; + } } else if (!(aret = strcmp(str, "LinkNicVmAccountIds[]")) || aret == '=') { TRY(!aa, "LinkNicVmAccountIds[] argument missing\n"); SET_NEXT(s->link_nic_vm_account_ids, (aa), pa); } else - if ((aret = argcmp(str, "LinkNicVmIds")) == 0 || aret == '=') { - TRY(!aa, "LinkNicVmIds argument missing\n"); - s->link_nic_vm_ids_str = aa; + if ((aret = strcmp(str, "LinkNicVmIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LinkNicVmIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LinkNicVmIds require an index\n"); + if (s->link_nic_vm_ids) { + for (; s->link_nic_vm_ids[last]; ++last); + } + if (pos < last) { + s->link_nic_vm_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->link_nic_vm_ids, "", pa); + SET_NEXT(s->link_nic_vm_ids, (aa), pa); + } + } else { + TRY(!aa, "LinkNicVmIds argument missing\n"); + s->link_nic_vm_ids_str = aa; + } } else if (!(aret = strcmp(str, "LinkNicVmIds[]")) || aret == '=') { TRY(!aa, "LinkNicVmIds[] argument missing\n"); SET_NEXT(s->link_nic_vm_ids, (aa), pa); } else - if ((aret = argcmp(str, "LinkPublicIpAccountIds")) == 0 || aret == '=') { - TRY(!aa, "LinkPublicIpAccountIds argument missing\n"); - s->link_public_ip_account_ids_str = aa; + if ((aret = strcmp(str, "LinkPublicIpAccountIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LinkPublicIpAccountIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LinkPublicIpAccountIds require an index\n"); + if (s->link_public_ip_account_ids) { + for (; s->link_public_ip_account_ids[last]; ++last); + } + if (pos < last) { + s->link_public_ip_account_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->link_public_ip_account_ids, "", pa); + SET_NEXT(s->link_public_ip_account_ids, (aa), pa); + } + } else { + TRY(!aa, "LinkPublicIpAccountIds argument missing\n"); + s->link_public_ip_account_ids_str = aa; + } } else if (!(aret = strcmp(str, "LinkPublicIpAccountIds[]")) || aret == '=') { TRY(!aa, "LinkPublicIpAccountIds[] argument missing\n"); SET_NEXT(s->link_public_ip_account_ids, (aa), pa); } else - if ((aret = argcmp(str, "LinkPublicIpLinkPublicIpIds")) == 0 || aret == '=') { - TRY(!aa, "LinkPublicIpLinkPublicIpIds argument missing\n"); - s->link_public_ip_link_public_ip_ids_str = aa; + if ((aret = strcmp(str, "LinkPublicIpLinkPublicIpIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LinkPublicIpLinkPublicIpIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LinkPublicIpLinkPublicIpIds require an index\n"); + if (s->link_public_ip_link_public_ip_ids) { + for (; s->link_public_ip_link_public_ip_ids[last]; ++last); + } + if (pos < last) { + s->link_public_ip_link_public_ip_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->link_public_ip_link_public_ip_ids, "", pa); + SET_NEXT(s->link_public_ip_link_public_ip_ids, (aa), pa); + } + } else { + TRY(!aa, "LinkPublicIpLinkPublicIpIds argument missing\n"); + s->link_public_ip_link_public_ip_ids_str = aa; + } } else if (!(aret = strcmp(str, "LinkPublicIpLinkPublicIpIds[]")) || aret == '=') { TRY(!aa, "LinkPublicIpLinkPublicIpIds[] argument missing\n"); SET_NEXT(s->link_public_ip_link_public_ip_ids, (aa), pa); } else - if ((aret = argcmp(str, "LinkPublicIpPublicDnsNames")) == 0 || aret == '=') { - TRY(!aa, "LinkPublicIpPublicDnsNames argument missing\n"); - s->link_public_ip_public_dns_names_str = aa; + if ((aret = strcmp(str, "LinkPublicIpPublicDnsNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LinkPublicIpPublicDnsNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LinkPublicIpPublicDnsNames require an index\n"); + if (s->link_public_ip_public_dns_names) { + for (; s->link_public_ip_public_dns_names[last]; ++last); + } + if (pos < last) { + s->link_public_ip_public_dns_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->link_public_ip_public_dns_names, "", pa); + SET_NEXT(s->link_public_ip_public_dns_names, (aa), pa); + } + } else { + TRY(!aa, "LinkPublicIpPublicDnsNames argument missing\n"); + s->link_public_ip_public_dns_names_str = aa; + } } else if (!(aret = strcmp(str, "LinkPublicIpPublicDnsNames[]")) || aret == '=') { TRY(!aa, "LinkPublicIpPublicDnsNames[] argument missing\n"); SET_NEXT(s->link_public_ip_public_dns_names, (aa), pa); } else - if ((aret = argcmp(str, "LinkPublicIpPublicIpIds")) == 0 || aret == '=') { - TRY(!aa, "LinkPublicIpPublicIpIds argument missing\n"); - s->link_public_ip_public_ip_ids_str = aa; + if ((aret = strcmp(str, "LinkPublicIpPublicIpIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LinkPublicIpPublicIpIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LinkPublicIpPublicIpIds require an index\n"); + if (s->link_public_ip_public_ip_ids) { + for (; s->link_public_ip_public_ip_ids[last]; ++last); + } + if (pos < last) { + s->link_public_ip_public_ip_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->link_public_ip_public_ip_ids, "", pa); + SET_NEXT(s->link_public_ip_public_ip_ids, (aa), pa); + } + } else { + TRY(!aa, "LinkPublicIpPublicIpIds argument missing\n"); + s->link_public_ip_public_ip_ids_str = aa; + } } else if (!(aret = strcmp(str, "LinkPublicIpPublicIpIds[]")) || aret == '=') { TRY(!aa, "LinkPublicIpPublicIpIds[] argument missing\n"); SET_NEXT(s->link_public_ip_public_ip_ids, (aa), pa); } else - if ((aret = argcmp(str, "LinkPublicIpPublicIps")) == 0 || aret == '=') { - TRY(!aa, "LinkPublicIpPublicIps argument missing\n"); - s->link_public_ip_public_ips_str = aa; + if ((aret = strcmp(str, "LinkPublicIpPublicIps")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LinkPublicIpPublicIps argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LinkPublicIpPublicIps require an index\n"); + if (s->link_public_ip_public_ips) { + for (; s->link_public_ip_public_ips[last]; ++last); + } + if (pos < last) { + s->link_public_ip_public_ips[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->link_public_ip_public_ips, "", pa); + SET_NEXT(s->link_public_ip_public_ips, (aa), pa); + } + } else { + TRY(!aa, "LinkPublicIpPublicIps argument missing\n"); + s->link_public_ip_public_ips_str = aa; + } } else if (!(aret = strcmp(str, "LinkPublicIpPublicIps[]")) || aret == '=') { TRY(!aa, "LinkPublicIpPublicIps[] argument missing\n"); SET_NEXT(s->link_public_ip_public_ips, (aa), pa); } else - if ((aret = argcmp(str, "MacAddresses")) == 0 || aret == '=') { - TRY(!aa, "MacAddresses argument missing\n"); - s->mac_addresses_str = aa; + if ((aret = strcmp(str, "MacAddresses")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "MacAddresses argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "MacAddresses require an index\n"); + if (s->mac_addresses) { + for (; s->mac_addresses[last]; ++last); + } + if (pos < last) { + s->mac_addresses[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->mac_addresses, "", pa); + SET_NEXT(s->mac_addresses, (aa), pa); + } + } else { + TRY(!aa, "MacAddresses argument missing\n"); + s->mac_addresses_str = aa; + } } else if (!(aret = strcmp(str, "MacAddresses[]")) || aret == '=') { TRY(!aa, "MacAddresses[] argument missing\n"); SET_NEXT(s->mac_addresses, (aa), pa); } else - if ((aret = argcmp(str, "NetIds")) == 0 || aret == '=') { - TRY(!aa, "NetIds argument missing\n"); - s->net_ids_str = aa; + if ((aret = strcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NetIds require an index\n"); + if (s->net_ids) { + for (; s->net_ids[last]; ++last); + } + if (pos < last) { + s->net_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->net_ids, "", pa); + SET_NEXT(s->net_ids, (aa), pa); + } + } else { + TRY(!aa, "NetIds argument missing\n"); + s->net_ids_str = aa; + } } else if (!(aret = strcmp(str, "NetIds[]")) || aret == '=') { TRY(!aa, "NetIds[] argument missing\n"); SET_NEXT(s->net_ids, (aa), pa); } else - if ((aret = argcmp(str, "NicIds")) == 0 || aret == '=') { - TRY(!aa, "NicIds argument missing\n"); - s->nic_ids_str = aa; + if ((aret = strcmp(str, "NicIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicIds require an index\n"); + if (s->nic_ids) { + for (; s->nic_ids[last]; ++last); + } + if (pos < last) { + s->nic_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_ids, "", pa); + SET_NEXT(s->nic_ids, (aa), pa); + } + } else { + TRY(!aa, "NicIds argument missing\n"); + s->nic_ids_str = aa; + } } else if (!(aret = strcmp(str, "NicIds[]")) || aret == '=') { TRY(!aa, "NicIds[] argument missing\n"); SET_NEXT(s->nic_ids, (aa), pa); } else - if ((aret = argcmp(str, "PrivateDnsNames")) == 0 || aret == '=') { - TRY(!aa, "PrivateDnsNames argument missing\n"); - s->private_dns_names_str = aa; + if ((aret = strcmp(str, "PrivateDnsNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "PrivateDnsNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "PrivateDnsNames require an index\n"); + if (s->private_dns_names) { + for (; s->private_dns_names[last]; ++last); + } + if (pos < last) { + s->private_dns_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->private_dns_names, "", pa); + SET_NEXT(s->private_dns_names, (aa), pa); + } + } else { + TRY(!aa, "PrivateDnsNames argument missing\n"); + s->private_dns_names_str = aa; + } } else if (!(aret = strcmp(str, "PrivateDnsNames[]")) || aret == '=') { TRY(!aa, "PrivateDnsNames[] argument missing\n"); SET_NEXT(s->private_dns_names, (aa), pa); } else - if ((aret = argcmp(str, "PrivateIpsLinkPublicIpAccountIds")) == 0 || aret == '=') { - TRY(!aa, "PrivateIpsLinkPublicIpAccountIds argument missing\n"); - s->private_ips_link_public_ip_account_ids_str = aa; + if ((aret = strcmp(str, "PrivateIpsLinkPublicIpAccountIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "PrivateIpsLinkPublicIpAccountIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "PrivateIpsLinkPublicIpAccountIds require an index\n"); + if (s->private_ips_link_public_ip_account_ids) { + for (; s->private_ips_link_public_ip_account_ids[last]; ++last); + } + if (pos < last) { + s->private_ips_link_public_ip_account_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->private_ips_link_public_ip_account_ids, "", pa); + SET_NEXT(s->private_ips_link_public_ip_account_ids, (aa), pa); + } + } else { + TRY(!aa, "PrivateIpsLinkPublicIpAccountIds argument missing\n"); + s->private_ips_link_public_ip_account_ids_str = aa; + } } else if (!(aret = strcmp(str, "PrivateIpsLinkPublicIpAccountIds[]")) || aret == '=') { TRY(!aa, "PrivateIpsLinkPublicIpAccountIds[] argument missing\n"); SET_NEXT(s->private_ips_link_public_ip_account_ids, (aa), pa); } else - if ((aret = argcmp(str, "PrivateIpsLinkPublicIpPublicIps")) == 0 || aret == '=') { - TRY(!aa, "PrivateIpsLinkPublicIpPublicIps argument missing\n"); - s->private_ips_link_public_ip_public_ips_str = aa; + if ((aret = strcmp(str, "PrivateIpsLinkPublicIpPublicIps")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "PrivateIpsLinkPublicIpPublicIps argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "PrivateIpsLinkPublicIpPublicIps require an index\n"); + if (s->private_ips_link_public_ip_public_ips) { + for (; s->private_ips_link_public_ip_public_ips[last]; ++last); + } + if (pos < last) { + s->private_ips_link_public_ip_public_ips[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->private_ips_link_public_ip_public_ips, "", pa); + SET_NEXT(s->private_ips_link_public_ip_public_ips, (aa), pa); + } + } else { + TRY(!aa, "PrivateIpsLinkPublicIpPublicIps argument missing\n"); + s->private_ips_link_public_ip_public_ips_str = aa; + } } else if (!(aret = strcmp(str, "PrivateIpsLinkPublicIpPublicIps[]")) || aret == '=') { TRY(!aa, "PrivateIpsLinkPublicIpPublicIps[] argument missing\n"); SET_NEXT(s->private_ips_link_public_ip_public_ips, (aa), pa); } else - if ((aret = argcmp(str, "PrivateIpsPrimaryIp")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PrivateIpsPrimaryIp")) == 0 || aret == '=' || aret == '.') { s->is_set_private_ips_primary_ip = 1; if (!aa || !strcasecmp(aa, "true")) { s->private_ips_primary_ip = 1; @@ -2867,65 +5828,254 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("PrivateIpsPrimaryIp require true/false\n"); } } else - if ((aret = argcmp(str, "PrivateIpsPrivateIps")) == 0 || aret == '=') { - TRY(!aa, "PrivateIpsPrivateIps argument missing\n"); - s->private_ips_private_ips_str = aa; + if ((aret = strcmp(str, "PrivateIpsPrivateIps")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "PrivateIpsPrivateIps argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "PrivateIpsPrivateIps require an index\n"); + if (s->private_ips_private_ips) { + for (; s->private_ips_private_ips[last]; ++last); + } + if (pos < last) { + s->private_ips_private_ips[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->private_ips_private_ips, "", pa); + SET_NEXT(s->private_ips_private_ips, (aa), pa); + } + } else { + TRY(!aa, "PrivateIpsPrivateIps argument missing\n"); + s->private_ips_private_ips_str = aa; + } } else if (!(aret = strcmp(str, "PrivateIpsPrivateIps[]")) || aret == '=') { TRY(!aa, "PrivateIpsPrivateIps[] argument missing\n"); SET_NEXT(s->private_ips_private_ips, (aa), pa); } else - if ((aret = argcmp(str, "SecurityGroupIds")) == 0 || aret == '=') { - TRY(!aa, "SecurityGroupIds argument missing\n"); - s->security_group_ids_str = aa; + if ((aret = strcmp(str, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SecurityGroupIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SecurityGroupIds require an index\n"); + if (s->security_group_ids) { + for (; s->security_group_ids[last]; ++last); + } + if (pos < last) { + s->security_group_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->security_group_ids, "", pa); + SET_NEXT(s->security_group_ids, (aa), pa); + } + } else { + TRY(!aa, "SecurityGroupIds argument missing\n"); + s->security_group_ids_str = aa; + } } else if (!(aret = strcmp(str, "SecurityGroupIds[]")) || aret == '=') { TRY(!aa, "SecurityGroupIds[] argument missing\n"); SET_NEXT(s->security_group_ids, (aa), pa); } else - if ((aret = argcmp(str, "SecurityGroupNames")) == 0 || aret == '=') { - TRY(!aa, "SecurityGroupNames argument missing\n"); - s->security_group_names_str = aa; + if ((aret = strcmp(str, "SecurityGroupNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SecurityGroupNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SecurityGroupNames require an index\n"); + if (s->security_group_names) { + for (; s->security_group_names[last]; ++last); + } + if (pos < last) { + s->security_group_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->security_group_names, "", pa); + SET_NEXT(s->security_group_names, (aa), pa); + } + } else { + TRY(!aa, "SecurityGroupNames argument missing\n"); + s->security_group_names_str = aa; + } } else if (!(aret = strcmp(str, "SecurityGroupNames[]")) || aret == '=') { TRY(!aa, "SecurityGroupNames[] argument missing\n"); SET_NEXT(s->security_group_names, (aa), pa); } else - if ((aret = argcmp(str, "States")) == 0 || aret == '=') { - TRY(!aa, "States argument missing\n"); - s->states_str = aa; + if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "States argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "States require an index\n"); + if (s->states) { + for (; s->states[last]; ++last); + } + if (pos < last) { + s->states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->states, "", pa); + SET_NEXT(s->states, (aa), pa); + } + } else { + TRY(!aa, "States argument missing\n"); + s->states_str = aa; + } } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = argcmp(str, "SubnetIds")) == 0 || aret == '=') { - TRY(!aa, "SubnetIds argument missing\n"); - s->subnet_ids_str = aa; + if ((aret = strcmp(str, "SubnetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SubnetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SubnetIds require an index\n"); + if (s->subnet_ids) { + for (; s->subnet_ids[last]; ++last); + } + if (pos < last) { + s->subnet_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->subnet_ids, "", pa); + SET_NEXT(s->subnet_ids, (aa), pa); + } + } else { + TRY(!aa, "SubnetIds argument missing\n"); + s->subnet_ids_str = aa; + } } else if (!(aret = strcmp(str, "SubnetIds[]")) || aret == '=') { TRY(!aa, "SubnetIds[] argument missing\n"); SET_NEXT(s->subnet_ids, (aa), pa); } else - if ((aret = argcmp(str, "SubregionNames")) == 0 || aret == '=') { - TRY(!aa, "SubregionNames argument missing\n"); - s->subregion_names_str = aa; + if ((aret = strcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SubregionNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SubregionNames require an index\n"); + if (s->subregion_names) { + for (; s->subregion_names[last]; ++last); + } + if (pos < last) { + s->subregion_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->subregion_names, "", pa); + SET_NEXT(s->subregion_names, (aa), pa); + } + } else { + TRY(!aa, "SubregionNames argument missing\n"); + s->subregion_names_str = aa; + } } else if (!(aret = strcmp(str, "SubregionNames[]")) || aret == '=') { TRY(!aa, "SubregionNames[] argument missing\n"); SET_NEXT(s->subregion_names, (aa), pa); } else - if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=') { - TRY(!aa, "TagKeys argument missing\n"); - s->tag_keys_str = aa; + if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagKeys argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagKeys require an index\n"); + if (s->tag_keys) { + for (; s->tag_keys[last]; ++last); + } + if (pos < last) { + s->tag_keys[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_keys, "", pa); + SET_NEXT(s->tag_keys, (aa), pa); + } + } else { + TRY(!aa, "TagKeys argument missing\n"); + s->tag_keys_str = aa; + } } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=') { - TRY(!aa, "TagValues argument missing\n"); - s->tag_values_str = aa; + if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagValues argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagValues require an index\n"); + if (s->tag_values) { + for (; s->tag_values[last]; ++last); + } + if (pos < last) { + s->tag_values[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_values, "", pa); + SET_NEXT(s->tag_values, (aa), pa); + } + } else { + TRY(!aa, "TagValues argument missing\n"); + s->tag_values_str = aa; + } } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { - TRY(!aa, "Tags argument missing\n"); - s->tags_str = aa; + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Tags argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Tags require an index\n"); + if (s->tags) { + for (; s->tags[last]; ++last); + } + if (pos < last) { + s->tags[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tags, "", pa); + SET_NEXT(s->tags, (aa), pa); + } + } else { + TRY(!aa, "Tags argument missing\n"); + s->tags_str = aa; + } } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); @@ -2940,9 +6090,30 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int filters_product_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_product_type *s = v_s; int aret = 0; - if ((aret = argcmp(str, "ProductTypeIds")) == 0 || aret == '=') { - TRY(!aa, "ProductTypeIds argument missing\n"); - s->product_type_ids_str = aa; + if ((aret = strcmp(str, "ProductTypeIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ProductTypeIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ProductTypeIds require an index\n"); + if (s->product_type_ids) { + for (; s->product_type_ids[last]; ++last); + } + if (pos < last) { + s->product_type_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->product_type_ids, "", pa); + SET_NEXT(s->product_type_ids, (aa), pa); + } + } else { + TRY(!aa, "ProductTypeIds argument missing\n"); + s->product_type_ids_str = aa; + } } else if (!(aret = strcmp(str, "ProductTypeIds[]")) || aret == '=') { TRY(!aa, "ProductTypeIds[] argument missing\n"); SET_NEXT(s->product_type_ids, (aa), pa); @@ -2957,79 +6128,310 @@ int filters_product_type_parser(void *v_s, char *str, char *aa, struct ptr_array int filters_public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_public_ip *s = v_s; int aret = 0; - if ((aret = argcmp(str, "LinkPublicIpIds")) == 0 || aret == '=') { - TRY(!aa, "LinkPublicIpIds argument missing\n"); - s->link_public_ip_ids_str = aa; + if ((aret = strcmp(str, "LinkPublicIpIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LinkPublicIpIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LinkPublicIpIds require an index\n"); + if (s->link_public_ip_ids) { + for (; s->link_public_ip_ids[last]; ++last); + } + if (pos < last) { + s->link_public_ip_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->link_public_ip_ids, "", pa); + SET_NEXT(s->link_public_ip_ids, (aa), pa); + } + } else { + TRY(!aa, "LinkPublicIpIds argument missing\n"); + s->link_public_ip_ids_str = aa; + } } else if (!(aret = strcmp(str, "LinkPublicIpIds[]")) || aret == '=') { TRY(!aa, "LinkPublicIpIds[] argument missing\n"); SET_NEXT(s->link_public_ip_ids, (aa), pa); } else - if ((aret = argcmp(str, "NicAccountIds")) == 0 || aret == '=') { - TRY(!aa, "NicAccountIds argument missing\n"); - s->nic_account_ids_str = aa; + if ((aret = strcmp(str, "NicAccountIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicAccountIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicAccountIds require an index\n"); + if (s->nic_account_ids) { + for (; s->nic_account_ids[last]; ++last); + } + if (pos < last) { + s->nic_account_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_account_ids, "", pa); + SET_NEXT(s->nic_account_ids, (aa), pa); + } + } else { + TRY(!aa, "NicAccountIds argument missing\n"); + s->nic_account_ids_str = aa; + } } else if (!(aret = strcmp(str, "NicAccountIds[]")) || aret == '=') { TRY(!aa, "NicAccountIds[] argument missing\n"); SET_NEXT(s->nic_account_ids, (aa), pa); } else - if ((aret = argcmp(str, "NicIds")) == 0 || aret == '=') { - TRY(!aa, "NicIds argument missing\n"); - s->nic_ids_str = aa; + if ((aret = strcmp(str, "NicIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicIds require an index\n"); + if (s->nic_ids) { + for (; s->nic_ids[last]; ++last); + } + if (pos < last) { + s->nic_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_ids, "", pa); + SET_NEXT(s->nic_ids, (aa), pa); + } + } else { + TRY(!aa, "NicIds argument missing\n"); + s->nic_ids_str = aa; + } } else if (!(aret = strcmp(str, "NicIds[]")) || aret == '=') { TRY(!aa, "NicIds[] argument missing\n"); SET_NEXT(s->nic_ids, (aa), pa); } else - if ((aret = argcmp(str, "Placements")) == 0 || aret == '=') { - TRY(!aa, "Placements argument missing\n"); - s->placements_str = aa; + if ((aret = strcmp(str, "Placements")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Placements argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Placements require an index\n"); + if (s->placements) { + for (; s->placements[last]; ++last); + } + if (pos < last) { + s->placements[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->placements, "", pa); + SET_NEXT(s->placements, (aa), pa); + } + } else { + TRY(!aa, "Placements argument missing\n"); + s->placements_str = aa; + } } else if (!(aret = strcmp(str, "Placements[]")) || aret == '=') { TRY(!aa, "Placements[] argument missing\n"); SET_NEXT(s->placements, (aa), pa); } else - if ((aret = argcmp(str, "PrivateIps")) == 0 || aret == '=') { - TRY(!aa, "PrivateIps argument missing\n"); - s->private_ips_str = aa; + if ((aret = strcmp(str, "PrivateIps")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "PrivateIps argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "PrivateIps require an index\n"); + if (s->private_ips) { + for (; s->private_ips[last]; ++last); + } + if (pos < last) { + s->private_ips[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->private_ips, "", pa); + SET_NEXT(s->private_ips, (aa), pa); + } + } else { + TRY(!aa, "PrivateIps argument missing\n"); + s->private_ips_str = aa; + } } else if (!(aret = strcmp(str, "PrivateIps[]")) || aret == '=') { TRY(!aa, "PrivateIps[] argument missing\n"); SET_NEXT(s->private_ips, (aa), pa); } else - if ((aret = argcmp(str, "PublicIpIds")) == 0 || aret == '=') { - TRY(!aa, "PublicIpIds argument missing\n"); - s->public_ip_ids_str = aa; + if ((aret = strcmp(str, "PublicIpIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "PublicIpIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "PublicIpIds require an index\n"); + if (s->public_ip_ids) { + for (; s->public_ip_ids[last]; ++last); + } + if (pos < last) { + s->public_ip_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->public_ip_ids, "", pa); + SET_NEXT(s->public_ip_ids, (aa), pa); + } + } else { + TRY(!aa, "PublicIpIds argument missing\n"); + s->public_ip_ids_str = aa; + } } else if (!(aret = strcmp(str, "PublicIpIds[]")) || aret == '=') { TRY(!aa, "PublicIpIds[] argument missing\n"); SET_NEXT(s->public_ip_ids, (aa), pa); } else - if ((aret = argcmp(str, "PublicIps")) == 0 || aret == '=') { - TRY(!aa, "PublicIps argument missing\n"); - s->public_ips_str = aa; + if ((aret = strcmp(str, "PublicIps")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "PublicIps argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "PublicIps require an index\n"); + if (s->public_ips) { + for (; s->public_ips[last]; ++last); + } + if (pos < last) { + s->public_ips[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->public_ips, "", pa); + SET_NEXT(s->public_ips, (aa), pa); + } + } else { + TRY(!aa, "PublicIps argument missing\n"); + s->public_ips_str = aa; + } } else if (!(aret = strcmp(str, "PublicIps[]")) || aret == '=') { TRY(!aa, "PublicIps[] argument missing\n"); SET_NEXT(s->public_ips, (aa), pa); } else - if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=') { - TRY(!aa, "TagKeys argument missing\n"); - s->tag_keys_str = aa; + if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagKeys argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagKeys require an index\n"); + if (s->tag_keys) { + for (; s->tag_keys[last]; ++last); + } + if (pos < last) { + s->tag_keys[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_keys, "", pa); + SET_NEXT(s->tag_keys, (aa), pa); + } + } else { + TRY(!aa, "TagKeys argument missing\n"); + s->tag_keys_str = aa; + } } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=') { - TRY(!aa, "TagValues argument missing\n"); - s->tag_values_str = aa; + if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagValues argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagValues require an index\n"); + if (s->tag_values) { + for (; s->tag_values[last]; ++last); + } + if (pos < last) { + s->tag_values[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_values, "", pa); + SET_NEXT(s->tag_values, (aa), pa); + } + } else { + TRY(!aa, "TagValues argument missing\n"); + s->tag_values_str = aa; + } } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { - TRY(!aa, "Tags argument missing\n"); - s->tags_str = aa; + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Tags argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Tags require an index\n"); + if (s->tags) { + for (; s->tags[last]; ++last); + } + if (pos < last) { + s->tags[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tags, "", pa); + SET_NEXT(s->tags, (aa), pa); + } + } else { + TRY(!aa, "Tags argument missing\n"); + s->tags_str = aa; + } } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else - if ((aret = argcmp(str, "VmIds")) == 0 || aret == '=') { - TRY(!aa, "VmIds argument missing\n"); - s->vm_ids_str = aa; + if ((aret = strcmp(str, "VmIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmIds require an index\n"); + if (s->vm_ids) { + for (; s->vm_ids[last]; ++last); + } + if (pos < last) { + s->vm_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_ids, "", pa); + SET_NEXT(s->vm_ids, (aa), pa); + } + } else { + TRY(!aa, "VmIds argument missing\n"); + s->vm_ids_str = aa; + } } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); @@ -3044,30 +6446,114 @@ int filters_public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *p int filters_quota_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_quota *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Collections")) == 0 || aret == '=') { - TRY(!aa, "Collections argument missing\n"); - s->collections_str = aa; + if ((aret = strcmp(str, "Collections")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Collections argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Collections require an index\n"); + if (s->collections) { + for (; s->collections[last]; ++last); + } + if (pos < last) { + s->collections[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->collections, "", pa); + SET_NEXT(s->collections, (aa), pa); + } + } else { + TRY(!aa, "Collections argument missing\n"); + s->collections_str = aa; + } } else if (!(aret = strcmp(str, "Collections[]")) || aret == '=') { TRY(!aa, "Collections[] argument missing\n"); SET_NEXT(s->collections, (aa), pa); } else - if ((aret = argcmp(str, "QuotaNames")) == 0 || aret == '=') { - TRY(!aa, "QuotaNames argument missing\n"); - s->quota_names_str = aa; + if ((aret = strcmp(str, "QuotaNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "QuotaNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "QuotaNames require an index\n"); + if (s->quota_names) { + for (; s->quota_names[last]; ++last); + } + if (pos < last) { + s->quota_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->quota_names, "", pa); + SET_NEXT(s->quota_names, (aa), pa); + } + } else { + TRY(!aa, "QuotaNames argument missing\n"); + s->quota_names_str = aa; + } } else if (!(aret = strcmp(str, "QuotaNames[]")) || aret == '=') { TRY(!aa, "QuotaNames[] argument missing\n"); SET_NEXT(s->quota_names, (aa), pa); } else - if ((aret = argcmp(str, "QuotaTypes")) == 0 || aret == '=') { - TRY(!aa, "QuotaTypes argument missing\n"); - s->quota_types_str = aa; + if ((aret = strcmp(str, "QuotaTypes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "QuotaTypes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "QuotaTypes require an index\n"); + if (s->quota_types) { + for (; s->quota_types[last]; ++last); + } + if (pos < last) { + s->quota_types[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->quota_types, "", pa); + SET_NEXT(s->quota_types, (aa), pa); + } + } else { + TRY(!aa, "QuotaTypes argument missing\n"); + s->quota_types_str = aa; + } } else if (!(aret = strcmp(str, "QuotaTypes[]")) || aret == '=') { TRY(!aa, "QuotaTypes[] argument missing\n"); SET_NEXT(s->quota_types, (aa), pa); } else - if ((aret = argcmp(str, "ShortDescriptions")) == 0 || aret == '=') { - TRY(!aa, "ShortDescriptions argument missing\n"); - s->short_descriptions_str = aa; + if ((aret = strcmp(str, "ShortDescriptions")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ShortDescriptions argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ShortDescriptions require an index\n"); + if (s->short_descriptions) { + for (; s->short_descriptions[last]; ++last); + } + if (pos < last) { + s->short_descriptions[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->short_descriptions, "", pa); + SET_NEXT(s->short_descriptions, (aa), pa); + } + } else { + TRY(!aa, "ShortDescriptions argument missing\n"); + s->short_descriptions_str = aa; + } } else if (!(aret = strcmp(str, "ShortDescriptions[]")) || aret == '=') { TRY(!aa, "ShortDescriptions[] argument missing\n"); SET_NEXT(s->short_descriptions, (aa), pa); @@ -3082,21 +6568,63 @@ int filters_quota_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int filters_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_route_table *s = v_s; int aret = 0; - if ((aret = argcmp(str, "LinkRouteTableIds")) == 0 || aret == '=') { - TRY(!aa, "LinkRouteTableIds argument missing\n"); - s->link_route_table_ids_str = aa; + if ((aret = strcmp(str, "LinkRouteTableIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LinkRouteTableIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LinkRouteTableIds require an index\n"); + if (s->link_route_table_ids) { + for (; s->link_route_table_ids[last]; ++last); + } + if (pos < last) { + s->link_route_table_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->link_route_table_ids, "", pa); + SET_NEXT(s->link_route_table_ids, (aa), pa); + } + } else { + TRY(!aa, "LinkRouteTableIds argument missing\n"); + s->link_route_table_ids_str = aa; + } } else if (!(aret = strcmp(str, "LinkRouteTableIds[]")) || aret == '=') { TRY(!aa, "LinkRouteTableIds[] argument missing\n"); SET_NEXT(s->link_route_table_ids, (aa), pa); } else - if ((aret = argcmp(str, "LinkRouteTableLinkRouteTableIds")) == 0 || aret == '=') { - TRY(!aa, "LinkRouteTableLinkRouteTableIds argument missing\n"); - s->link_route_table_link_route_table_ids_str = aa; + if ((aret = strcmp(str, "LinkRouteTableLinkRouteTableIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LinkRouteTableLinkRouteTableIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LinkRouteTableLinkRouteTableIds require an index\n"); + if (s->link_route_table_link_route_table_ids) { + for (; s->link_route_table_link_route_table_ids[last]; ++last); + } + if (pos < last) { + s->link_route_table_link_route_table_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->link_route_table_link_route_table_ids, "", pa); + SET_NEXT(s->link_route_table_link_route_table_ids, (aa), pa); + } + } else { + TRY(!aa, "LinkRouteTableLinkRouteTableIds argument missing\n"); + s->link_route_table_link_route_table_ids_str = aa; + } } else if (!(aret = strcmp(str, "LinkRouteTableLinkRouteTableIds[]")) || aret == '=') { TRY(!aa, "LinkRouteTableLinkRouteTableIds[] argument missing\n"); SET_NEXT(s->link_route_table_link_route_table_ids, (aa), pa); } else - if ((aret = argcmp(str, "LinkRouteTableMain")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LinkRouteTableMain")) == 0 || aret == '=' || aret == '.') { s->is_set_link_route_table_main = 1; if (!aa || !strcasecmp(aa, "true")) { s->link_route_table_main = 1; @@ -3106,100 +6634,394 @@ int filters_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array BAD_RET("LinkRouteTableMain require true/false\n"); } } else - if ((aret = argcmp(str, "LinkSubnetIds")) == 0 || aret == '=') { - TRY(!aa, "LinkSubnetIds argument missing\n"); - s->link_subnet_ids_str = aa; + if ((aret = strcmp(str, "LinkSubnetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LinkSubnetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LinkSubnetIds require an index\n"); + if (s->link_subnet_ids) { + for (; s->link_subnet_ids[last]; ++last); + } + if (pos < last) { + s->link_subnet_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->link_subnet_ids, "", pa); + SET_NEXT(s->link_subnet_ids, (aa), pa); + } + } else { + TRY(!aa, "LinkSubnetIds argument missing\n"); + s->link_subnet_ids_str = aa; + } } else if (!(aret = strcmp(str, "LinkSubnetIds[]")) || aret == '=') { TRY(!aa, "LinkSubnetIds[] argument missing\n"); SET_NEXT(s->link_subnet_ids, (aa), pa); } else - if ((aret = argcmp(str, "NetIds")) == 0 || aret == '=') { - TRY(!aa, "NetIds argument missing\n"); - s->net_ids_str = aa; + if ((aret = strcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NetIds require an index\n"); + if (s->net_ids) { + for (; s->net_ids[last]; ++last); + } + if (pos < last) { + s->net_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->net_ids, "", pa); + SET_NEXT(s->net_ids, (aa), pa); + } + } else { + TRY(!aa, "NetIds argument missing\n"); + s->net_ids_str = aa; + } } else if (!(aret = strcmp(str, "NetIds[]")) || aret == '=') { TRY(!aa, "NetIds[] argument missing\n"); SET_NEXT(s->net_ids, (aa), pa); } else - if ((aret = argcmp(str, "RouteCreationMethods")) == 0 || aret == '=') { - TRY(!aa, "RouteCreationMethods argument missing\n"); - s->route_creation_methods_str = aa; + if ((aret = strcmp(str, "RouteCreationMethods")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "RouteCreationMethods argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "RouteCreationMethods require an index\n"); + if (s->route_creation_methods) { + for (; s->route_creation_methods[last]; ++last); + } + if (pos < last) { + s->route_creation_methods[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->route_creation_methods, "", pa); + SET_NEXT(s->route_creation_methods, (aa), pa); + } + } else { + TRY(!aa, "RouteCreationMethods argument missing\n"); + s->route_creation_methods_str = aa; + } } else if (!(aret = strcmp(str, "RouteCreationMethods[]")) || aret == '=') { TRY(!aa, "RouteCreationMethods[] argument missing\n"); SET_NEXT(s->route_creation_methods, (aa), pa); } else - if ((aret = argcmp(str, "RouteDestinationIpRanges")) == 0 || aret == '=') { - TRY(!aa, "RouteDestinationIpRanges argument missing\n"); - s->route_destination_ip_ranges_str = aa; + if ((aret = strcmp(str, "RouteDestinationIpRanges")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "RouteDestinationIpRanges argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "RouteDestinationIpRanges require an index\n"); + if (s->route_destination_ip_ranges) { + for (; s->route_destination_ip_ranges[last]; ++last); + } + if (pos < last) { + s->route_destination_ip_ranges[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->route_destination_ip_ranges, "", pa); + SET_NEXT(s->route_destination_ip_ranges, (aa), pa); + } + } else { + TRY(!aa, "RouteDestinationIpRanges argument missing\n"); + s->route_destination_ip_ranges_str = aa; + } } else if (!(aret = strcmp(str, "RouteDestinationIpRanges[]")) || aret == '=') { TRY(!aa, "RouteDestinationIpRanges[] argument missing\n"); SET_NEXT(s->route_destination_ip_ranges, (aa), pa); } else - if ((aret = argcmp(str, "RouteDestinationServiceIds")) == 0 || aret == '=') { - TRY(!aa, "RouteDestinationServiceIds argument missing\n"); - s->route_destination_service_ids_str = aa; + if ((aret = strcmp(str, "RouteDestinationServiceIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "RouteDestinationServiceIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "RouteDestinationServiceIds require an index\n"); + if (s->route_destination_service_ids) { + for (; s->route_destination_service_ids[last]; ++last); + } + if (pos < last) { + s->route_destination_service_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->route_destination_service_ids, "", pa); + SET_NEXT(s->route_destination_service_ids, (aa), pa); + } + } else { + TRY(!aa, "RouteDestinationServiceIds argument missing\n"); + s->route_destination_service_ids_str = aa; + } } else if (!(aret = strcmp(str, "RouteDestinationServiceIds[]")) || aret == '=') { TRY(!aa, "RouteDestinationServiceIds[] argument missing\n"); SET_NEXT(s->route_destination_service_ids, (aa), pa); } else - if ((aret = argcmp(str, "RouteGatewayIds")) == 0 || aret == '=') { - TRY(!aa, "RouteGatewayIds argument missing\n"); - s->route_gateway_ids_str = aa; + if ((aret = strcmp(str, "RouteGatewayIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "RouteGatewayIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "RouteGatewayIds require an index\n"); + if (s->route_gateway_ids) { + for (; s->route_gateway_ids[last]; ++last); + } + if (pos < last) { + s->route_gateway_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->route_gateway_ids, "", pa); + SET_NEXT(s->route_gateway_ids, (aa), pa); + } + } else { + TRY(!aa, "RouteGatewayIds argument missing\n"); + s->route_gateway_ids_str = aa; + } } else if (!(aret = strcmp(str, "RouteGatewayIds[]")) || aret == '=') { TRY(!aa, "RouteGatewayIds[] argument missing\n"); SET_NEXT(s->route_gateway_ids, (aa), pa); } else - if ((aret = argcmp(str, "RouteNatServiceIds")) == 0 || aret == '=') { - TRY(!aa, "RouteNatServiceIds argument missing\n"); - s->route_nat_service_ids_str = aa; + if ((aret = strcmp(str, "RouteNatServiceIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "RouteNatServiceIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "RouteNatServiceIds require an index\n"); + if (s->route_nat_service_ids) { + for (; s->route_nat_service_ids[last]; ++last); + } + if (pos < last) { + s->route_nat_service_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->route_nat_service_ids, "", pa); + SET_NEXT(s->route_nat_service_ids, (aa), pa); + } + } else { + TRY(!aa, "RouteNatServiceIds argument missing\n"); + s->route_nat_service_ids_str = aa; + } } else if (!(aret = strcmp(str, "RouteNatServiceIds[]")) || aret == '=') { TRY(!aa, "RouteNatServiceIds[] argument missing\n"); SET_NEXT(s->route_nat_service_ids, (aa), pa); } else - if ((aret = argcmp(str, "RouteNetPeeringIds")) == 0 || aret == '=') { - TRY(!aa, "RouteNetPeeringIds argument missing\n"); - s->route_net_peering_ids_str = aa; + if ((aret = strcmp(str, "RouteNetPeeringIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "RouteNetPeeringIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "RouteNetPeeringIds require an index\n"); + if (s->route_net_peering_ids) { + for (; s->route_net_peering_ids[last]; ++last); + } + if (pos < last) { + s->route_net_peering_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->route_net_peering_ids, "", pa); + SET_NEXT(s->route_net_peering_ids, (aa), pa); + } + } else { + TRY(!aa, "RouteNetPeeringIds argument missing\n"); + s->route_net_peering_ids_str = aa; + } } else if (!(aret = strcmp(str, "RouteNetPeeringIds[]")) || aret == '=') { TRY(!aa, "RouteNetPeeringIds[] argument missing\n"); SET_NEXT(s->route_net_peering_ids, (aa), pa); } else - if ((aret = argcmp(str, "RouteStates")) == 0 || aret == '=') { - TRY(!aa, "RouteStates argument missing\n"); - s->route_states_str = aa; + if ((aret = strcmp(str, "RouteStates")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "RouteStates argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "RouteStates require an index\n"); + if (s->route_states) { + for (; s->route_states[last]; ++last); + } + if (pos < last) { + s->route_states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->route_states, "", pa); + SET_NEXT(s->route_states, (aa), pa); + } + } else { + TRY(!aa, "RouteStates argument missing\n"); + s->route_states_str = aa; + } } else if (!(aret = strcmp(str, "RouteStates[]")) || aret == '=') { TRY(!aa, "RouteStates[] argument missing\n"); SET_NEXT(s->route_states, (aa), pa); } else - if ((aret = argcmp(str, "RouteTableIds")) == 0 || aret == '=') { - TRY(!aa, "RouteTableIds argument missing\n"); - s->route_table_ids_str = aa; + if ((aret = strcmp(str, "RouteTableIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "RouteTableIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "RouteTableIds require an index\n"); + if (s->route_table_ids) { + for (; s->route_table_ids[last]; ++last); + } + if (pos < last) { + s->route_table_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->route_table_ids, "", pa); + SET_NEXT(s->route_table_ids, (aa), pa); + } + } else { + TRY(!aa, "RouteTableIds argument missing\n"); + s->route_table_ids_str = aa; + } } else if (!(aret = strcmp(str, "RouteTableIds[]")) || aret == '=') { TRY(!aa, "RouteTableIds[] argument missing\n"); SET_NEXT(s->route_table_ids, (aa), pa); } else - if ((aret = argcmp(str, "RouteVmIds")) == 0 || aret == '=') { - TRY(!aa, "RouteVmIds argument missing\n"); - s->route_vm_ids_str = aa; + if ((aret = strcmp(str, "RouteVmIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "RouteVmIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "RouteVmIds require an index\n"); + if (s->route_vm_ids) { + for (; s->route_vm_ids[last]; ++last); + } + if (pos < last) { + s->route_vm_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->route_vm_ids, "", pa); + SET_NEXT(s->route_vm_ids, (aa), pa); + } + } else { + TRY(!aa, "RouteVmIds argument missing\n"); + s->route_vm_ids_str = aa; + } } else if (!(aret = strcmp(str, "RouteVmIds[]")) || aret == '=') { TRY(!aa, "RouteVmIds[] argument missing\n"); SET_NEXT(s->route_vm_ids, (aa), pa); } else - if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=') { - TRY(!aa, "TagKeys argument missing\n"); - s->tag_keys_str = aa; + if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagKeys argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagKeys require an index\n"); + if (s->tag_keys) { + for (; s->tag_keys[last]; ++last); + } + if (pos < last) { + s->tag_keys[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_keys, "", pa); + SET_NEXT(s->tag_keys, (aa), pa); + } + } else { + TRY(!aa, "TagKeys argument missing\n"); + s->tag_keys_str = aa; + } } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=') { - TRY(!aa, "TagValues argument missing\n"); - s->tag_values_str = aa; + if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagValues argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagValues require an index\n"); + if (s->tag_values) { + for (; s->tag_values[last]; ++last); + } + if (pos < last) { + s->tag_values[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_values, "", pa); + SET_NEXT(s->tag_values, (aa), pa); + } + } else { + TRY(!aa, "TagValues argument missing\n"); + s->tag_values_str = aa; + } } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { - TRY(!aa, "Tags argument missing\n"); - s->tags_str = aa; + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Tags argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Tags require an index\n"); + if (s->tags) { + for (; s->tags[last]; ++last); + } + if (pos < last) { + s->tags[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tags, "", pa); + SET_NEXT(s->tags, (aa), pa); + } + } else { + TRY(!aa, "Tags argument missing\n"); + s->tags_str = aa; + } } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); @@ -3214,149 +7036,590 @@ int filters_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_security_group *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Descriptions")) == 0 || aret == '=') { - TRY(!aa, "Descriptions argument missing\n"); - s->descriptions_str = aa; + if ((aret = strcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Descriptions argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Descriptions require an index\n"); + if (s->descriptions) { + for (; s->descriptions[last]; ++last); + } + if (pos < last) { + s->descriptions[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->descriptions, "", pa); + SET_NEXT(s->descriptions, (aa), pa); + } + } else { + TRY(!aa, "Descriptions argument missing\n"); + s->descriptions_str = aa; + } } else if (!(aret = strcmp(str, "Descriptions[]")) || aret == '=') { TRY(!aa, "Descriptions[] argument missing\n"); SET_NEXT(s->descriptions, (aa), pa); } else - if ((aret = argcmp(str, "InboundRuleAccountIds")) == 0 || aret == '=') { - TRY(!aa, "InboundRuleAccountIds argument missing\n"); - s->inbound_rule_account_ids_str = aa; + if ((aret = strcmp(str, "InboundRuleAccountIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "InboundRuleAccountIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "InboundRuleAccountIds require an index\n"); + if (s->inbound_rule_account_ids) { + for (; s->inbound_rule_account_ids[last]; ++last); + } + if (pos < last) { + s->inbound_rule_account_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->inbound_rule_account_ids, "", pa); + SET_NEXT(s->inbound_rule_account_ids, (aa), pa); + } + } else { + TRY(!aa, "InboundRuleAccountIds argument missing\n"); + s->inbound_rule_account_ids_str = aa; + } } else if (!(aret = strcmp(str, "InboundRuleAccountIds[]")) || aret == '=') { TRY(!aa, "InboundRuleAccountIds[] argument missing\n"); SET_NEXT(s->inbound_rule_account_ids, (aa), pa); } else - if ((aret = argcmp(str, "InboundRuleFromPortRanges")) == 0 || aret == '=') { - TRY(!aa, "InboundRuleFromPortRanges argument missing\n"); - s->inbound_rule_from_port_ranges_str = aa; + if ((aret = strcmp(str, "InboundRuleFromPortRanges")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "InboundRuleFromPortRanges argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "InboundRuleFromPortRanges require an index\n"); + if (s->inbound_rule_from_port_ranges) { + for (; s->inbound_rule_from_port_ranges[last]; ++last); + } + if (pos < last) { + s->inbound_rule_from_port_ranges[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->inbound_rule_from_port_ranges, 0, pa); + SET_NEXT(s->inbound_rule_from_port_ranges, atoi(aa), pa); + } + } else { + TRY(!aa, "InboundRuleFromPortRanges argument missing\n"); + s->inbound_rule_from_port_ranges_str = aa; + } } else if (!(aret = strcmp(str, "InboundRuleFromPortRanges[]")) || aret == '=') { TRY(!aa, "InboundRuleFromPortRanges[] argument missing\n"); SET_NEXT(s->inbound_rule_from_port_ranges, atoi(aa), pa); } else - if ((aret = argcmp(str, "InboundRuleIpRanges")) == 0 || aret == '=') { - TRY(!aa, "InboundRuleIpRanges argument missing\n"); - s->inbound_rule_ip_ranges_str = aa; + if ((aret = strcmp(str, "InboundRuleIpRanges")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "InboundRuleIpRanges argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "InboundRuleIpRanges require an index\n"); + if (s->inbound_rule_ip_ranges) { + for (; s->inbound_rule_ip_ranges[last]; ++last); + } + if (pos < last) { + s->inbound_rule_ip_ranges[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->inbound_rule_ip_ranges, "", pa); + SET_NEXT(s->inbound_rule_ip_ranges, (aa), pa); + } + } else { + TRY(!aa, "InboundRuleIpRanges argument missing\n"); + s->inbound_rule_ip_ranges_str = aa; + } } else if (!(aret = strcmp(str, "InboundRuleIpRanges[]")) || aret == '=') { TRY(!aa, "InboundRuleIpRanges[] argument missing\n"); SET_NEXT(s->inbound_rule_ip_ranges, (aa), pa); } else - if ((aret = argcmp(str, "InboundRuleProtocols")) == 0 || aret == '=') { - TRY(!aa, "InboundRuleProtocols argument missing\n"); - s->inbound_rule_protocols_str = aa; + if ((aret = strcmp(str, "InboundRuleProtocols")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "InboundRuleProtocols argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "InboundRuleProtocols require an index\n"); + if (s->inbound_rule_protocols) { + for (; s->inbound_rule_protocols[last]; ++last); + } + if (pos < last) { + s->inbound_rule_protocols[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->inbound_rule_protocols, "", pa); + SET_NEXT(s->inbound_rule_protocols, (aa), pa); + } + } else { + TRY(!aa, "InboundRuleProtocols argument missing\n"); + s->inbound_rule_protocols_str = aa; + } } else if (!(aret = strcmp(str, "InboundRuleProtocols[]")) || aret == '=') { TRY(!aa, "InboundRuleProtocols[] argument missing\n"); SET_NEXT(s->inbound_rule_protocols, (aa), pa); } else - if ((aret = argcmp(str, "InboundRuleSecurityGroupIds")) == 0 || aret == '=') { - TRY(!aa, "InboundRuleSecurityGroupIds argument missing\n"); - s->inbound_rule_security_group_ids_str = aa; + if ((aret = strcmp(str, "InboundRuleSecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "InboundRuleSecurityGroupIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "InboundRuleSecurityGroupIds require an index\n"); + if (s->inbound_rule_security_group_ids) { + for (; s->inbound_rule_security_group_ids[last]; ++last); + } + if (pos < last) { + s->inbound_rule_security_group_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->inbound_rule_security_group_ids, "", pa); + SET_NEXT(s->inbound_rule_security_group_ids, (aa), pa); + } + } else { + TRY(!aa, "InboundRuleSecurityGroupIds argument missing\n"); + s->inbound_rule_security_group_ids_str = aa; + } } else if (!(aret = strcmp(str, "InboundRuleSecurityGroupIds[]")) || aret == '=') { TRY(!aa, "InboundRuleSecurityGroupIds[] argument missing\n"); SET_NEXT(s->inbound_rule_security_group_ids, (aa), pa); } else - if ((aret = argcmp(str, "InboundRuleSecurityGroupNames")) == 0 || aret == '=') { - TRY(!aa, "InboundRuleSecurityGroupNames argument missing\n"); - s->inbound_rule_security_group_names_str = aa; + if ((aret = strcmp(str, "InboundRuleSecurityGroupNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "InboundRuleSecurityGroupNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "InboundRuleSecurityGroupNames require an index\n"); + if (s->inbound_rule_security_group_names) { + for (; s->inbound_rule_security_group_names[last]; ++last); + } + if (pos < last) { + s->inbound_rule_security_group_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->inbound_rule_security_group_names, "", pa); + SET_NEXT(s->inbound_rule_security_group_names, (aa), pa); + } + } else { + TRY(!aa, "InboundRuleSecurityGroupNames argument missing\n"); + s->inbound_rule_security_group_names_str = aa; + } } else if (!(aret = strcmp(str, "InboundRuleSecurityGroupNames[]")) || aret == '=') { TRY(!aa, "InboundRuleSecurityGroupNames[] argument missing\n"); SET_NEXT(s->inbound_rule_security_group_names, (aa), pa); } else - if ((aret = argcmp(str, "InboundRuleToPortRanges")) == 0 || aret == '=') { - TRY(!aa, "InboundRuleToPortRanges argument missing\n"); - s->inbound_rule_to_port_ranges_str = aa; + if ((aret = strcmp(str, "InboundRuleToPortRanges")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "InboundRuleToPortRanges argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "InboundRuleToPortRanges require an index\n"); + if (s->inbound_rule_to_port_ranges) { + for (; s->inbound_rule_to_port_ranges[last]; ++last); + } + if (pos < last) { + s->inbound_rule_to_port_ranges[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->inbound_rule_to_port_ranges, 0, pa); + SET_NEXT(s->inbound_rule_to_port_ranges, atoi(aa), pa); + } + } else { + TRY(!aa, "InboundRuleToPortRanges argument missing\n"); + s->inbound_rule_to_port_ranges_str = aa; + } } else if (!(aret = strcmp(str, "InboundRuleToPortRanges[]")) || aret == '=') { TRY(!aa, "InboundRuleToPortRanges[] argument missing\n"); SET_NEXT(s->inbound_rule_to_port_ranges, atoi(aa), pa); } else - if ((aret = argcmp(str, "NetIds")) == 0 || aret == '=') { - TRY(!aa, "NetIds argument missing\n"); - s->net_ids_str = aa; + if ((aret = strcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NetIds require an index\n"); + if (s->net_ids) { + for (; s->net_ids[last]; ++last); + } + if (pos < last) { + s->net_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->net_ids, "", pa); + SET_NEXT(s->net_ids, (aa), pa); + } + } else { + TRY(!aa, "NetIds argument missing\n"); + s->net_ids_str = aa; + } } else if (!(aret = strcmp(str, "NetIds[]")) || aret == '=') { TRY(!aa, "NetIds[] argument missing\n"); SET_NEXT(s->net_ids, (aa), pa); } else - if ((aret = argcmp(str, "OutboundRuleAccountIds")) == 0 || aret == '=') { - TRY(!aa, "OutboundRuleAccountIds argument missing\n"); - s->outbound_rule_account_ids_str = aa; + if ((aret = strcmp(str, "OutboundRuleAccountIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "OutboundRuleAccountIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "OutboundRuleAccountIds require an index\n"); + if (s->outbound_rule_account_ids) { + for (; s->outbound_rule_account_ids[last]; ++last); + } + if (pos < last) { + s->outbound_rule_account_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->outbound_rule_account_ids, "", pa); + SET_NEXT(s->outbound_rule_account_ids, (aa), pa); + } + } else { + TRY(!aa, "OutboundRuleAccountIds argument missing\n"); + s->outbound_rule_account_ids_str = aa; + } } else if (!(aret = strcmp(str, "OutboundRuleAccountIds[]")) || aret == '=') { TRY(!aa, "OutboundRuleAccountIds[] argument missing\n"); SET_NEXT(s->outbound_rule_account_ids, (aa), pa); } else - if ((aret = argcmp(str, "OutboundRuleFromPortRanges")) == 0 || aret == '=') { - TRY(!aa, "OutboundRuleFromPortRanges argument missing\n"); - s->outbound_rule_from_port_ranges_str = aa; + if ((aret = strcmp(str, "OutboundRuleFromPortRanges")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "OutboundRuleFromPortRanges argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "OutboundRuleFromPortRanges require an index\n"); + if (s->outbound_rule_from_port_ranges) { + for (; s->outbound_rule_from_port_ranges[last]; ++last); + } + if (pos < last) { + s->outbound_rule_from_port_ranges[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->outbound_rule_from_port_ranges, 0, pa); + SET_NEXT(s->outbound_rule_from_port_ranges, atoi(aa), pa); + } + } else { + TRY(!aa, "OutboundRuleFromPortRanges argument missing\n"); + s->outbound_rule_from_port_ranges_str = aa; + } } else if (!(aret = strcmp(str, "OutboundRuleFromPortRanges[]")) || aret == '=') { TRY(!aa, "OutboundRuleFromPortRanges[] argument missing\n"); SET_NEXT(s->outbound_rule_from_port_ranges, atoi(aa), pa); } else - if ((aret = argcmp(str, "OutboundRuleIpRanges")) == 0 || aret == '=') { - TRY(!aa, "OutboundRuleIpRanges argument missing\n"); - s->outbound_rule_ip_ranges_str = aa; + if ((aret = strcmp(str, "OutboundRuleIpRanges")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "OutboundRuleIpRanges argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "OutboundRuleIpRanges require an index\n"); + if (s->outbound_rule_ip_ranges) { + for (; s->outbound_rule_ip_ranges[last]; ++last); + } + if (pos < last) { + s->outbound_rule_ip_ranges[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->outbound_rule_ip_ranges, "", pa); + SET_NEXT(s->outbound_rule_ip_ranges, (aa), pa); + } + } else { + TRY(!aa, "OutboundRuleIpRanges argument missing\n"); + s->outbound_rule_ip_ranges_str = aa; + } } else if (!(aret = strcmp(str, "OutboundRuleIpRanges[]")) || aret == '=') { TRY(!aa, "OutboundRuleIpRanges[] argument missing\n"); SET_NEXT(s->outbound_rule_ip_ranges, (aa), pa); } else - if ((aret = argcmp(str, "OutboundRuleProtocols")) == 0 || aret == '=') { - TRY(!aa, "OutboundRuleProtocols argument missing\n"); - s->outbound_rule_protocols_str = aa; + if ((aret = strcmp(str, "OutboundRuleProtocols")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "OutboundRuleProtocols argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "OutboundRuleProtocols require an index\n"); + if (s->outbound_rule_protocols) { + for (; s->outbound_rule_protocols[last]; ++last); + } + if (pos < last) { + s->outbound_rule_protocols[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->outbound_rule_protocols, "", pa); + SET_NEXT(s->outbound_rule_protocols, (aa), pa); + } + } else { + TRY(!aa, "OutboundRuleProtocols argument missing\n"); + s->outbound_rule_protocols_str = aa; + } } else if (!(aret = strcmp(str, "OutboundRuleProtocols[]")) || aret == '=') { TRY(!aa, "OutboundRuleProtocols[] argument missing\n"); SET_NEXT(s->outbound_rule_protocols, (aa), pa); } else - if ((aret = argcmp(str, "OutboundRuleSecurityGroupIds")) == 0 || aret == '=') { - TRY(!aa, "OutboundRuleSecurityGroupIds argument missing\n"); - s->outbound_rule_security_group_ids_str = aa; + if ((aret = strcmp(str, "OutboundRuleSecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "OutboundRuleSecurityGroupIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "OutboundRuleSecurityGroupIds require an index\n"); + if (s->outbound_rule_security_group_ids) { + for (; s->outbound_rule_security_group_ids[last]; ++last); + } + if (pos < last) { + s->outbound_rule_security_group_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->outbound_rule_security_group_ids, "", pa); + SET_NEXT(s->outbound_rule_security_group_ids, (aa), pa); + } + } else { + TRY(!aa, "OutboundRuleSecurityGroupIds argument missing\n"); + s->outbound_rule_security_group_ids_str = aa; + } } else if (!(aret = strcmp(str, "OutboundRuleSecurityGroupIds[]")) || aret == '=') { TRY(!aa, "OutboundRuleSecurityGroupIds[] argument missing\n"); SET_NEXT(s->outbound_rule_security_group_ids, (aa), pa); } else - if ((aret = argcmp(str, "OutboundRuleSecurityGroupNames")) == 0 || aret == '=') { - TRY(!aa, "OutboundRuleSecurityGroupNames argument missing\n"); - s->outbound_rule_security_group_names_str = aa; + if ((aret = strcmp(str, "OutboundRuleSecurityGroupNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "OutboundRuleSecurityGroupNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "OutboundRuleSecurityGroupNames require an index\n"); + if (s->outbound_rule_security_group_names) { + for (; s->outbound_rule_security_group_names[last]; ++last); + } + if (pos < last) { + s->outbound_rule_security_group_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->outbound_rule_security_group_names, "", pa); + SET_NEXT(s->outbound_rule_security_group_names, (aa), pa); + } + } else { + TRY(!aa, "OutboundRuleSecurityGroupNames argument missing\n"); + s->outbound_rule_security_group_names_str = aa; + } } else if (!(aret = strcmp(str, "OutboundRuleSecurityGroupNames[]")) || aret == '=') { TRY(!aa, "OutboundRuleSecurityGroupNames[] argument missing\n"); SET_NEXT(s->outbound_rule_security_group_names, (aa), pa); } else - if ((aret = argcmp(str, "OutboundRuleToPortRanges")) == 0 || aret == '=') { - TRY(!aa, "OutboundRuleToPortRanges argument missing\n"); - s->outbound_rule_to_port_ranges_str = aa; + if ((aret = strcmp(str, "OutboundRuleToPortRanges")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "OutboundRuleToPortRanges argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "OutboundRuleToPortRanges require an index\n"); + if (s->outbound_rule_to_port_ranges) { + for (; s->outbound_rule_to_port_ranges[last]; ++last); + } + if (pos < last) { + s->outbound_rule_to_port_ranges[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->outbound_rule_to_port_ranges, 0, pa); + SET_NEXT(s->outbound_rule_to_port_ranges, atoi(aa), pa); + } + } else { + TRY(!aa, "OutboundRuleToPortRanges argument missing\n"); + s->outbound_rule_to_port_ranges_str = aa; + } } else if (!(aret = strcmp(str, "OutboundRuleToPortRanges[]")) || aret == '=') { TRY(!aa, "OutboundRuleToPortRanges[] argument missing\n"); SET_NEXT(s->outbound_rule_to_port_ranges, atoi(aa), pa); } else - if ((aret = argcmp(str, "SecurityGroupIds")) == 0 || aret == '=') { - TRY(!aa, "SecurityGroupIds argument missing\n"); - s->security_group_ids_str = aa; + if ((aret = strcmp(str, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SecurityGroupIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SecurityGroupIds require an index\n"); + if (s->security_group_ids) { + for (; s->security_group_ids[last]; ++last); + } + if (pos < last) { + s->security_group_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->security_group_ids, "", pa); + SET_NEXT(s->security_group_ids, (aa), pa); + } + } else { + TRY(!aa, "SecurityGroupIds argument missing\n"); + s->security_group_ids_str = aa; + } } else if (!(aret = strcmp(str, "SecurityGroupIds[]")) || aret == '=') { TRY(!aa, "SecurityGroupIds[] argument missing\n"); SET_NEXT(s->security_group_ids, (aa), pa); } else - if ((aret = argcmp(str, "SecurityGroupNames")) == 0 || aret == '=') { - TRY(!aa, "SecurityGroupNames argument missing\n"); - s->security_group_names_str = aa; + if ((aret = strcmp(str, "SecurityGroupNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SecurityGroupNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SecurityGroupNames require an index\n"); + if (s->security_group_names) { + for (; s->security_group_names[last]; ++last); + } + if (pos < last) { + s->security_group_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->security_group_names, "", pa); + SET_NEXT(s->security_group_names, (aa), pa); + } + } else { + TRY(!aa, "SecurityGroupNames argument missing\n"); + s->security_group_names_str = aa; + } } else if (!(aret = strcmp(str, "SecurityGroupNames[]")) || aret == '=') { TRY(!aa, "SecurityGroupNames[] argument missing\n"); SET_NEXT(s->security_group_names, (aa), pa); } else - if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=') { - TRY(!aa, "TagKeys argument missing\n"); - s->tag_keys_str = aa; + if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagKeys argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagKeys require an index\n"); + if (s->tag_keys) { + for (; s->tag_keys[last]; ++last); + } + if (pos < last) { + s->tag_keys[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_keys, "", pa); + SET_NEXT(s->tag_keys, (aa), pa); + } + } else { + TRY(!aa, "TagKeys argument missing\n"); + s->tag_keys_str = aa; + } } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=') { - TRY(!aa, "TagValues argument missing\n"); - s->tag_values_str = aa; + if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagValues argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagValues require an index\n"); + if (s->tag_values) { + for (; s->tag_values[last]; ++last); + } + if (pos < last) { + s->tag_values[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_values, "", pa); + SET_NEXT(s->tag_values, (aa), pa); + } + } else { + TRY(!aa, "TagValues argument missing\n"); + s->tag_values_str = aa; + } } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { - TRY(!aa, "Tags argument missing\n"); - s->tags_str = aa; + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Tags argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Tags require an index\n"); + if (s->tags) { + for (; s->tags[last]; ++last); + } + if (pos < last) { + s->tags[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tags, "", pa); + SET_NEXT(s->tags, (aa), pa); + } + } else { + TRY(!aa, "Tags argument missing\n"); + s->tags_str = aa; + } } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); @@ -3371,9 +7634,30 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr int filters_server_certificate_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_server_certificate *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Paths")) == 0 || aret == '=') { - TRY(!aa, "Paths argument missing\n"); - s->paths_str = aa; + if ((aret = strcmp(str, "Paths")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Paths argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Paths require an index\n"); + if (s->paths) { + for (; s->paths[last]; ++last); + } + if (pos < last) { + s->paths[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->paths, "", pa); + SET_NEXT(s->paths, (aa), pa); + } + } else { + TRY(!aa, "Paths argument missing\n"); + s->paths_str = aa; + } } else if (!(aret = strcmp(str, "Paths[]")) || aret == '=') { TRY(!aa, "Paths[] argument missing\n"); SET_NEXT(s->paths, (aa), pa); @@ -3388,16 +7672,58 @@ int filters_server_certificate_parser(void *v_s, char *str, char *aa, struct ptr int filters_service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_service *s = v_s; int aret = 0; - if ((aret = argcmp(str, "ServiceIds")) == 0 || aret == '=') { - TRY(!aa, "ServiceIds argument missing\n"); - s->service_ids_str = aa; + if ((aret = strcmp(str, "ServiceIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ServiceIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ServiceIds require an index\n"); + if (s->service_ids) { + for (; s->service_ids[last]; ++last); + } + if (pos < last) { + s->service_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->service_ids, "", pa); + SET_NEXT(s->service_ids, (aa), pa); + } + } else { + TRY(!aa, "ServiceIds argument missing\n"); + s->service_ids_str = aa; + } } else if (!(aret = strcmp(str, "ServiceIds[]")) || aret == '=') { TRY(!aa, "ServiceIds[] argument missing\n"); SET_NEXT(s->service_ids, (aa), pa); } else - if ((aret = argcmp(str, "ServiceNames")) == 0 || aret == '=') { - TRY(!aa, "ServiceNames argument missing\n"); - s->service_names_str = aa; + if ((aret = strcmp(str, "ServiceNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ServiceNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ServiceNames require an index\n"); + if (s->service_names) { + for (; s->service_names[last]; ++last); + } + if (pos < last) { + s->service_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->service_names, "", pa); + SET_NEXT(s->service_names, (aa), pa); + } + } else { + TRY(!aa, "ServiceNames argument missing\n"); + s->service_names_str = aa; + } } else if (!(aret = strcmp(str, "ServiceNames[]")) || aret == '=') { TRY(!aa, "ServiceNames[] argument missing\n"); SET_NEXT(s->service_names, (aa), pa); @@ -3412,40 +7738,124 @@ int filters_service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int filters_snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_snapshot *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccountAliases")) == 0 || aret == '=') { - TRY(!aa, "AccountAliases argument missing\n"); - s->account_aliases_str = aa; + if ((aret = strcmp(str, "AccountAliases")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "AccountAliases argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "AccountAliases require an index\n"); + if (s->account_aliases) { + for (; s->account_aliases[last]; ++last); + } + if (pos < last) { + s->account_aliases[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->account_aliases, "", pa); + SET_NEXT(s->account_aliases, (aa), pa); + } + } else { + TRY(!aa, "AccountAliases argument missing\n"); + s->account_aliases_str = aa; + } } else if (!(aret = strcmp(str, "AccountAliases[]")) || aret == '=') { TRY(!aa, "AccountAliases[] argument missing\n"); SET_NEXT(s->account_aliases, (aa), pa); } else - if ((aret = argcmp(str, "AccountIds")) == 0 || aret == '=') { - TRY(!aa, "AccountIds argument missing\n"); - s->account_ids_str = aa; + if ((aret = strcmp(str, "AccountIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "AccountIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "AccountIds require an index\n"); + if (s->account_ids) { + for (; s->account_ids[last]; ++last); + } + if (pos < last) { + s->account_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->account_ids, "", pa); + SET_NEXT(s->account_ids, (aa), pa); + } + } else { + TRY(!aa, "AccountIds argument missing\n"); + s->account_ids_str = aa; + } } else if (!(aret = strcmp(str, "AccountIds[]")) || aret == '=') { TRY(!aa, "AccountIds[] argument missing\n"); SET_NEXT(s->account_ids, (aa), pa); } else - if ((aret = argcmp(str, "Descriptions")) == 0 || aret == '=') { - TRY(!aa, "Descriptions argument missing\n"); - s->descriptions_str = aa; + if ((aret = strcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Descriptions argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Descriptions require an index\n"); + if (s->descriptions) { + for (; s->descriptions[last]; ++last); + } + if (pos < last) { + s->descriptions[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->descriptions, "", pa); + SET_NEXT(s->descriptions, (aa), pa); + } + } else { + TRY(!aa, "Descriptions argument missing\n"); + s->descriptions_str = aa; + } } else if (!(aret = strcmp(str, "Descriptions[]")) || aret == '=') { TRY(!aa, "Descriptions[] argument missing\n"); SET_NEXT(s->descriptions, (aa), pa); } else - if ((aret = argcmp(str, "FromCreationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "FromCreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "FromCreationDate argument missing\n"); s->from_creation_date = aa; // string string } else - if ((aret = argcmp(str, "PermissionsToCreateVolumeAccountIds")) == 0 || aret == '=') { - TRY(!aa, "PermissionsToCreateVolumeAccountIds argument missing\n"); - s->permissions_to_create_volume_account_ids_str = aa; + if ((aret = strcmp(str, "PermissionsToCreateVolumeAccountIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "PermissionsToCreateVolumeAccountIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "PermissionsToCreateVolumeAccountIds require an index\n"); + if (s->permissions_to_create_volume_account_ids) { + for (; s->permissions_to_create_volume_account_ids[last]; ++last); + } + if (pos < last) { + s->permissions_to_create_volume_account_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->permissions_to_create_volume_account_ids, "", pa); + SET_NEXT(s->permissions_to_create_volume_account_ids, (aa), pa); + } + } else { + TRY(!aa, "PermissionsToCreateVolumeAccountIds argument missing\n"); + s->permissions_to_create_volume_account_ids_str = aa; + } } else if (!(aret = strcmp(str, "PermissionsToCreateVolumeAccountIds[]")) || aret == '=') { TRY(!aa, "PermissionsToCreateVolumeAccountIds[] argument missing\n"); SET_NEXT(s->permissions_to_create_volume_account_ids, (aa), pa); } else - if ((aret = argcmp(str, "PermissionsToCreateVolumeGlobalPermission")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PermissionsToCreateVolumeGlobalPermission")) == 0 || aret == '=' || aret == '.') { s->is_set_permissions_to_create_volume_global_permission = 1; if (!aa || !strcasecmp(aa, "true")) { s->permissions_to_create_volume_global_permission = 1; @@ -3455,63 +7865,231 @@ int filters_snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa BAD_RET("PermissionsToCreateVolumeGlobalPermission require true/false\n"); } } else - if ((aret = argcmp(str, "Progresses")) == 0 || aret == '=') { - TRY(!aa, "Progresses argument missing\n"); - s->progresses_str = aa; + if ((aret = strcmp(str, "Progresses")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Progresses argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Progresses require an index\n"); + if (s->progresses) { + for (; s->progresses[last]; ++last); + } + if (pos < last) { + s->progresses[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->progresses, 0, pa); + SET_NEXT(s->progresses, atoi(aa), pa); + } + } else { + TRY(!aa, "Progresses argument missing\n"); + s->progresses_str = aa; + } } else if (!(aret = strcmp(str, "Progresses[]")) || aret == '=') { TRY(!aa, "Progresses[] argument missing\n"); SET_NEXT(s->progresses, atoi(aa), pa); } else - if ((aret = argcmp(str, "SnapshotIds")) == 0 || aret == '=') { - TRY(!aa, "SnapshotIds argument missing\n"); - s->snapshot_ids_str = aa; + if ((aret = strcmp(str, "SnapshotIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SnapshotIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SnapshotIds require an index\n"); + if (s->snapshot_ids) { + for (; s->snapshot_ids[last]; ++last); + } + if (pos < last) { + s->snapshot_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->snapshot_ids, "", pa); + SET_NEXT(s->snapshot_ids, (aa), pa); + } + } else { + TRY(!aa, "SnapshotIds argument missing\n"); + s->snapshot_ids_str = aa; + } } else if (!(aret = strcmp(str, "SnapshotIds[]")) || aret == '=') { TRY(!aa, "SnapshotIds[] argument missing\n"); SET_NEXT(s->snapshot_ids, (aa), pa); } else - if ((aret = argcmp(str, "States")) == 0 || aret == '=') { - TRY(!aa, "States argument missing\n"); - s->states_str = aa; + if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "States argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "States require an index\n"); + if (s->states) { + for (; s->states[last]; ++last); + } + if (pos < last) { + s->states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->states, "", pa); + SET_NEXT(s->states, (aa), pa); + } + } else { + TRY(!aa, "States argument missing\n"); + s->states_str = aa; + } } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=') { - TRY(!aa, "TagKeys argument missing\n"); - s->tag_keys_str = aa; + if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagKeys argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagKeys require an index\n"); + if (s->tag_keys) { + for (; s->tag_keys[last]; ++last); + } + if (pos < last) { + s->tag_keys[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_keys, "", pa); + SET_NEXT(s->tag_keys, (aa), pa); + } + } else { + TRY(!aa, "TagKeys argument missing\n"); + s->tag_keys_str = aa; + } } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=') { - TRY(!aa, "TagValues argument missing\n"); - s->tag_values_str = aa; + if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagValues argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagValues require an index\n"); + if (s->tag_values) { + for (; s->tag_values[last]; ++last); + } + if (pos < last) { + s->tag_values[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_values, "", pa); + SET_NEXT(s->tag_values, (aa), pa); + } + } else { + TRY(!aa, "TagValues argument missing\n"); + s->tag_values_str = aa; + } } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { - TRY(!aa, "Tags argument missing\n"); - s->tags_str = aa; + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Tags argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Tags require an index\n"); + if (s->tags) { + for (; s->tags[last]; ++last); + } + if (pos < last) { + s->tags[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tags, "", pa); + SET_NEXT(s->tags, (aa), pa); + } + } else { + TRY(!aa, "Tags argument missing\n"); + s->tags_str = aa; + } } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else - if ((aret = argcmp(str, "ToCreationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ToCreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ToCreationDate argument missing\n"); s->to_creation_date = aa; // string string } else - if ((aret = argcmp(str, "VolumeIds")) == 0 || aret == '=') { - TRY(!aa, "VolumeIds argument missing\n"); - s->volume_ids_str = aa; + if ((aret = strcmp(str, "VolumeIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VolumeIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VolumeIds require an index\n"); + if (s->volume_ids) { + for (; s->volume_ids[last]; ++last); + } + if (pos < last) { + s->volume_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->volume_ids, "", pa); + SET_NEXT(s->volume_ids, (aa), pa); + } + } else { + TRY(!aa, "VolumeIds argument missing\n"); + s->volume_ids_str = aa; + } } else if (!(aret = strcmp(str, "VolumeIds[]")) || aret == '=') { TRY(!aa, "VolumeIds[] argument missing\n"); SET_NEXT(s->volume_ids, (aa), pa); } else - if ((aret = argcmp(str, "VolumeSizes")) == 0 || aret == '=') { - TRY(!aa, "VolumeSizes argument missing\n"); - s->volume_sizes_str = aa; + if ((aret = strcmp(str, "VolumeSizes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VolumeSizes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VolumeSizes require an index\n"); + if (s->volume_sizes) { + for (; s->volume_sizes[last]; ++last); + } + if (pos < last) { + s->volume_sizes[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->volume_sizes, 0, pa); + SET_NEXT(s->volume_sizes, atoi(aa), pa); + } + } else { + TRY(!aa, "VolumeSizes argument missing\n"); + s->volume_sizes_str = aa; + } } else if (!(aret = strcmp(str, "VolumeSizes[]")) || aret == '=') { TRY(!aa, "VolumeSizes[] argument missing\n"); SET_NEXT(s->volume_sizes, atoi(aa), pa); @@ -3526,65 +8104,254 @@ int filters_snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa int filters_subnet_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_subnet *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AvailableIpsCounts")) == 0 || aret == '=') { - TRY(!aa, "AvailableIpsCounts argument missing\n"); - s->available_ips_counts_str = aa; + if ((aret = strcmp(str, "AvailableIpsCounts")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "AvailableIpsCounts argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "AvailableIpsCounts require an index\n"); + if (s->available_ips_counts) { + for (; s->available_ips_counts[last]; ++last); + } + if (pos < last) { + s->available_ips_counts[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->available_ips_counts, 0, pa); + SET_NEXT(s->available_ips_counts, atoi(aa), pa); + } + } else { + TRY(!aa, "AvailableIpsCounts argument missing\n"); + s->available_ips_counts_str = aa; + } } else if (!(aret = strcmp(str, "AvailableIpsCounts[]")) || aret == '=') { TRY(!aa, "AvailableIpsCounts[] argument missing\n"); SET_NEXT(s->available_ips_counts, atoi(aa), pa); } else - if ((aret = argcmp(str, "IpRanges")) == 0 || aret == '=') { - TRY(!aa, "IpRanges argument missing\n"); - s->ip_ranges_str = aa; + if ((aret = strcmp(str, "IpRanges")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "IpRanges argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "IpRanges require an index\n"); + if (s->ip_ranges) { + for (; s->ip_ranges[last]; ++last); + } + if (pos < last) { + s->ip_ranges[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->ip_ranges, "", pa); + SET_NEXT(s->ip_ranges, (aa), pa); + } + } else { + TRY(!aa, "IpRanges argument missing\n"); + s->ip_ranges_str = aa; + } } else if (!(aret = strcmp(str, "IpRanges[]")) || aret == '=') { TRY(!aa, "IpRanges[] argument missing\n"); SET_NEXT(s->ip_ranges, (aa), pa); } else - if ((aret = argcmp(str, "NetIds")) == 0 || aret == '=') { - TRY(!aa, "NetIds argument missing\n"); - s->net_ids_str = aa; + if ((aret = strcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NetIds require an index\n"); + if (s->net_ids) { + for (; s->net_ids[last]; ++last); + } + if (pos < last) { + s->net_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->net_ids, "", pa); + SET_NEXT(s->net_ids, (aa), pa); + } + } else { + TRY(!aa, "NetIds argument missing\n"); + s->net_ids_str = aa; + } } else if (!(aret = strcmp(str, "NetIds[]")) || aret == '=') { TRY(!aa, "NetIds[] argument missing\n"); SET_NEXT(s->net_ids, (aa), pa); } else - if ((aret = argcmp(str, "States")) == 0 || aret == '=') { - TRY(!aa, "States argument missing\n"); - s->states_str = aa; + if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "States argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "States require an index\n"); + if (s->states) { + for (; s->states[last]; ++last); + } + if (pos < last) { + s->states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->states, "", pa); + SET_NEXT(s->states, (aa), pa); + } + } else { + TRY(!aa, "States argument missing\n"); + s->states_str = aa; + } } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = argcmp(str, "SubnetIds")) == 0 || aret == '=') { - TRY(!aa, "SubnetIds argument missing\n"); - s->subnet_ids_str = aa; + if ((aret = strcmp(str, "SubnetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SubnetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SubnetIds require an index\n"); + if (s->subnet_ids) { + for (; s->subnet_ids[last]; ++last); + } + if (pos < last) { + s->subnet_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->subnet_ids, "", pa); + SET_NEXT(s->subnet_ids, (aa), pa); + } + } else { + TRY(!aa, "SubnetIds argument missing\n"); + s->subnet_ids_str = aa; + } } else if (!(aret = strcmp(str, "SubnetIds[]")) || aret == '=') { TRY(!aa, "SubnetIds[] argument missing\n"); SET_NEXT(s->subnet_ids, (aa), pa); } else - if ((aret = argcmp(str, "SubregionNames")) == 0 || aret == '=') { - TRY(!aa, "SubregionNames argument missing\n"); - s->subregion_names_str = aa; + if ((aret = strcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SubregionNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SubregionNames require an index\n"); + if (s->subregion_names) { + for (; s->subregion_names[last]; ++last); + } + if (pos < last) { + s->subregion_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->subregion_names, "", pa); + SET_NEXT(s->subregion_names, (aa), pa); + } + } else { + TRY(!aa, "SubregionNames argument missing\n"); + s->subregion_names_str = aa; + } } else if (!(aret = strcmp(str, "SubregionNames[]")) || aret == '=') { TRY(!aa, "SubregionNames[] argument missing\n"); SET_NEXT(s->subregion_names, (aa), pa); } else - if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=') { - TRY(!aa, "TagKeys argument missing\n"); - s->tag_keys_str = aa; + if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagKeys argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagKeys require an index\n"); + if (s->tag_keys) { + for (; s->tag_keys[last]; ++last); + } + if (pos < last) { + s->tag_keys[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_keys, "", pa); + SET_NEXT(s->tag_keys, (aa), pa); + } + } else { + TRY(!aa, "TagKeys argument missing\n"); + s->tag_keys_str = aa; + } } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=') { - TRY(!aa, "TagValues argument missing\n"); - s->tag_values_str = aa; + if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagValues argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagValues require an index\n"); + if (s->tag_values) { + for (; s->tag_values[last]; ++last); + } + if (pos < last) { + s->tag_values[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_values, "", pa); + SET_NEXT(s->tag_values, (aa), pa); + } + } else { + TRY(!aa, "TagValues argument missing\n"); + s->tag_values_str = aa; + } } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { - TRY(!aa, "Tags argument missing\n"); - s->tags_str = aa; + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Tags argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Tags require an index\n"); + if (s->tags) { + for (; s->tags[last]; ++last); + } + if (pos < last) { + s->tags[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tags, "", pa); + SET_NEXT(s->tags, (aa), pa); + } + } else { + TRY(!aa, "Tags argument missing\n"); + s->tags_str = aa; + } } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); @@ -3599,23 +8366,86 @@ int filters_subnet_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int filters_subregion_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_subregion *s = v_s; int aret = 0; - if ((aret = argcmp(str, "RegionNames")) == 0 || aret == '=') { - TRY(!aa, "RegionNames argument missing\n"); - s->region_names_str = aa; + if ((aret = strcmp(str, "RegionNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "RegionNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "RegionNames require an index\n"); + if (s->region_names) { + for (; s->region_names[last]; ++last); + } + if (pos < last) { + s->region_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->region_names, "", pa); + SET_NEXT(s->region_names, (aa), pa); + } + } else { + TRY(!aa, "RegionNames argument missing\n"); + s->region_names_str = aa; + } } else if (!(aret = strcmp(str, "RegionNames[]")) || aret == '=') { TRY(!aa, "RegionNames[] argument missing\n"); SET_NEXT(s->region_names, (aa), pa); } else - if ((aret = argcmp(str, "States")) == 0 || aret == '=') { - TRY(!aa, "States argument missing\n"); - s->states_str = aa; + if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "States argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "States require an index\n"); + if (s->states) { + for (; s->states[last]; ++last); + } + if (pos < last) { + s->states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->states, "", pa); + SET_NEXT(s->states, (aa), pa); + } + } else { + TRY(!aa, "States argument missing\n"); + s->states_str = aa; + } } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = argcmp(str, "SubregionNames")) == 0 || aret == '=') { - TRY(!aa, "SubregionNames argument missing\n"); - s->subregion_names_str = aa; + if ((aret = strcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SubregionNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SubregionNames require an index\n"); + if (s->subregion_names) { + for (; s->subregion_names[last]; ++last); + } + if (pos < last) { + s->subregion_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->subregion_names, "", pa); + SET_NEXT(s->subregion_names, (aa), pa); + } + } else { + TRY(!aa, "SubregionNames argument missing\n"); + s->subregion_names_str = aa; + } } else if (!(aret = strcmp(str, "SubregionNames[]")) || aret == '=') { TRY(!aa, "SubregionNames[] argument missing\n"); SET_NEXT(s->subregion_names, (aa), pa); @@ -3630,30 +8460,114 @@ int filters_subregion_parser(void *v_s, char *str, char *aa, struct ptr_array *p int filters_tag_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_tag *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Keys")) == 0 || aret == '=') { - TRY(!aa, "Keys argument missing\n"); - s->keys_str = aa; + if ((aret = strcmp(str, "Keys")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Keys argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Keys require an index\n"); + if (s->keys) { + for (; s->keys[last]; ++last); + } + if (pos < last) { + s->keys[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->keys, "", pa); + SET_NEXT(s->keys, (aa), pa); + } + } else { + TRY(!aa, "Keys argument missing\n"); + s->keys_str = aa; + } } else if (!(aret = strcmp(str, "Keys[]")) || aret == '=') { TRY(!aa, "Keys[] argument missing\n"); SET_NEXT(s->keys, (aa), pa); } else - if ((aret = argcmp(str, "ResourceIds")) == 0 || aret == '=') { - TRY(!aa, "ResourceIds argument missing\n"); - s->resource_ids_str = aa; + if ((aret = strcmp(str, "ResourceIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ResourceIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ResourceIds require an index\n"); + if (s->resource_ids) { + for (; s->resource_ids[last]; ++last); + } + if (pos < last) { + s->resource_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->resource_ids, "", pa); + SET_NEXT(s->resource_ids, (aa), pa); + } + } else { + TRY(!aa, "ResourceIds argument missing\n"); + s->resource_ids_str = aa; + } } else if (!(aret = strcmp(str, "ResourceIds[]")) || aret == '=') { TRY(!aa, "ResourceIds[] argument missing\n"); SET_NEXT(s->resource_ids, (aa), pa); } else - if ((aret = argcmp(str, "ResourceTypes")) == 0 || aret == '=') { - TRY(!aa, "ResourceTypes argument missing\n"); - s->resource_types_str = aa; + if ((aret = strcmp(str, "ResourceTypes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ResourceTypes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ResourceTypes require an index\n"); + if (s->resource_types) { + for (; s->resource_types[last]; ++last); + } + if (pos < last) { + s->resource_types[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->resource_types, "", pa); + SET_NEXT(s->resource_types, (aa), pa); + } + } else { + TRY(!aa, "ResourceTypes argument missing\n"); + s->resource_types_str = aa; + } } else if (!(aret = strcmp(str, "ResourceTypes[]")) || aret == '=') { TRY(!aa, "ResourceTypes[] argument missing\n"); SET_NEXT(s->resource_types, (aa), pa); } else - if ((aret = argcmp(str, "Values")) == 0 || aret == '=') { - TRY(!aa, "Values argument missing\n"); - s->values_str = aa; + if ((aret = strcmp(str, "Values")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Values argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Values require an index\n"); + if (s->values) { + for (; s->values[last]; ++last); + } + if (pos < last) { + s->values[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->values, "", pa); + SET_NEXT(s->values, (aa), pa); + } + } else { + TRY(!aa, "Values argument missing\n"); + s->values_str = aa; + } } else if (!(aret = strcmp(str, "Values[]")) || aret == '=') { TRY(!aa, "Values[] argument missing\n"); SET_NEXT(s->values, (aa), pa); @@ -3668,14 +8582,35 @@ int filters_tag_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int filters_user_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_user_group *s = v_s; int aret = 0; - if ((aret = argcmp(str, "PathPrefix")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PathPrefix")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PathPrefix argument missing\n"); s->path_prefix = aa; // string string } else - if ((aret = argcmp(str, "UserGroupIds")) == 0 || aret == '=') { - TRY(!aa, "UserGroupIds argument missing\n"); - s->user_group_ids_str = aa; + if ((aret = strcmp(str, "UserGroupIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "UserGroupIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "UserGroupIds require an index\n"); + if (s->user_group_ids) { + for (; s->user_group_ids[last]; ++last); + } + if (pos < last) { + s->user_group_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->user_group_ids, "", pa); + SET_NEXT(s->user_group_ids, (aa), pa); + } + } else { + TRY(!aa, "UserGroupIds argument missing\n"); + s->user_group_ids_str = aa; + } } else if (!(aret = strcmp(str, "UserGroupIds[]")) || aret == '=') { TRY(!aa, "UserGroupIds[] argument missing\n"); SET_NEXT(s->user_group_ids, (aa), pa); @@ -3690,58 +8625,226 @@ int filters_user_group_parser(void *v_s, char *str, char *aa, struct ptr_array * int filters_virtual_gateway_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_virtual_gateway *s = v_s; int aret = 0; - if ((aret = argcmp(str, "ConnectionTypes")) == 0 || aret == '=') { - TRY(!aa, "ConnectionTypes argument missing\n"); - s->connection_types_str = aa; + if ((aret = strcmp(str, "ConnectionTypes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ConnectionTypes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ConnectionTypes require an index\n"); + if (s->connection_types) { + for (; s->connection_types[last]; ++last); + } + if (pos < last) { + s->connection_types[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->connection_types, "", pa); + SET_NEXT(s->connection_types, (aa), pa); + } + } else { + TRY(!aa, "ConnectionTypes argument missing\n"); + s->connection_types_str = aa; + } } else if (!(aret = strcmp(str, "ConnectionTypes[]")) || aret == '=') { TRY(!aa, "ConnectionTypes[] argument missing\n"); SET_NEXT(s->connection_types, (aa), pa); } else - if ((aret = argcmp(str, "LinkNetIds")) == 0 || aret == '=') { - TRY(!aa, "LinkNetIds argument missing\n"); - s->link_net_ids_str = aa; + if ((aret = strcmp(str, "LinkNetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LinkNetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LinkNetIds require an index\n"); + if (s->link_net_ids) { + for (; s->link_net_ids[last]; ++last); + } + if (pos < last) { + s->link_net_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->link_net_ids, "", pa); + SET_NEXT(s->link_net_ids, (aa), pa); + } + } else { + TRY(!aa, "LinkNetIds argument missing\n"); + s->link_net_ids_str = aa; + } } else if (!(aret = strcmp(str, "LinkNetIds[]")) || aret == '=') { TRY(!aa, "LinkNetIds[] argument missing\n"); SET_NEXT(s->link_net_ids, (aa), pa); } else - if ((aret = argcmp(str, "LinkStates")) == 0 || aret == '=') { - TRY(!aa, "LinkStates argument missing\n"); - s->link_states_str = aa; + if ((aret = strcmp(str, "LinkStates")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LinkStates argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LinkStates require an index\n"); + if (s->link_states) { + for (; s->link_states[last]; ++last); + } + if (pos < last) { + s->link_states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->link_states, "", pa); + SET_NEXT(s->link_states, (aa), pa); + } + } else { + TRY(!aa, "LinkStates argument missing\n"); + s->link_states_str = aa; + } } else if (!(aret = strcmp(str, "LinkStates[]")) || aret == '=') { TRY(!aa, "LinkStates[] argument missing\n"); SET_NEXT(s->link_states, (aa), pa); } else - if ((aret = argcmp(str, "States")) == 0 || aret == '=') { - TRY(!aa, "States argument missing\n"); - s->states_str = aa; + if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "States argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "States require an index\n"); + if (s->states) { + for (; s->states[last]; ++last); + } + if (pos < last) { + s->states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->states, "", pa); + SET_NEXT(s->states, (aa), pa); + } + } else { + TRY(!aa, "States argument missing\n"); + s->states_str = aa; + } } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=') { - TRY(!aa, "TagKeys argument missing\n"); - s->tag_keys_str = aa; + if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagKeys argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagKeys require an index\n"); + if (s->tag_keys) { + for (; s->tag_keys[last]; ++last); + } + if (pos < last) { + s->tag_keys[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_keys, "", pa); + SET_NEXT(s->tag_keys, (aa), pa); + } + } else { + TRY(!aa, "TagKeys argument missing\n"); + s->tag_keys_str = aa; + } } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=') { - TRY(!aa, "TagValues argument missing\n"); - s->tag_values_str = aa; + if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagValues argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagValues require an index\n"); + if (s->tag_values) { + for (; s->tag_values[last]; ++last); + } + if (pos < last) { + s->tag_values[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_values, "", pa); + SET_NEXT(s->tag_values, (aa), pa); + } + } else { + TRY(!aa, "TagValues argument missing\n"); + s->tag_values_str = aa; + } } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { - TRY(!aa, "Tags argument missing\n"); - s->tags_str = aa; + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Tags argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Tags require an index\n"); + if (s->tags) { + for (; s->tags[last]; ++last); + } + if (pos < last) { + s->tags[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tags, "", pa); + SET_NEXT(s->tags, (aa), pa); + } + } else { + TRY(!aa, "Tags argument missing\n"); + s->tags_str = aa; + } } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else - if ((aret = argcmp(str, "VirtualGatewayIds")) == 0 || aret == '=') { - TRY(!aa, "VirtualGatewayIds argument missing\n"); - s->virtual_gateway_ids_str = aa; + if ((aret = strcmp(str, "VirtualGatewayIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VirtualGatewayIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VirtualGatewayIds require an index\n"); + if (s->virtual_gateway_ids) { + for (; s->virtual_gateway_ids[last]; ++last); + } + if (pos < last) { + s->virtual_gateway_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->virtual_gateway_ids, "", pa); + SET_NEXT(s->virtual_gateway_ids, (aa), pa); + } + } else { + TRY(!aa, "VirtualGatewayIds argument missing\n"); + s->virtual_gateway_ids_str = aa; + } } else if (!(aret = strcmp(str, "VirtualGatewayIds[]")) || aret == '=') { TRY(!aa, "VirtualGatewayIds[] argument missing\n"); SET_NEXT(s->virtual_gateway_ids, (aa), pa); @@ -3756,14 +8859,35 @@ int filters_virtual_gateway_parser(void *v_s, char *str, char *aa, struct ptr_ar int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_vm *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Architectures")) == 0 || aret == '=') { - TRY(!aa, "Architectures argument missing\n"); - s->architectures_str = aa; + if ((aret = strcmp(str, "Architectures")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Architectures argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Architectures require an index\n"); + if (s->architectures) { + for (; s->architectures[last]; ++last); + } + if (pos < last) { + s->architectures[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->architectures, "", pa); + SET_NEXT(s->architectures, (aa), pa); + } + } else { + TRY(!aa, "Architectures argument missing\n"); + s->architectures_str = aa; + } } else if (!(aret = strcmp(str, "Architectures[]")) || aret == '=') { TRY(!aa, "Architectures[] argument missing\n"); SET_NEXT(s->architectures, (aa), pa); } else - if ((aret = argcmp(str, "BlockDeviceMappingDeleteOnVmDeletion")) == 0 || aret == '=') { + if ((aret = strcmp(str, "BlockDeviceMappingDeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_block_device_mapping_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->block_device_mapping_delete_on_vm_deletion = 1; @@ -3773,56 +8897,203 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("BlockDeviceMappingDeleteOnVmDeletion require true/false\n"); } } else - if ((aret = argcmp(str, "BlockDeviceMappingDeviceNames")) == 0 || aret == '=') { - TRY(!aa, "BlockDeviceMappingDeviceNames argument missing\n"); - s->block_device_mapping_device_names_str = aa; + if ((aret = strcmp(str, "BlockDeviceMappingDeviceNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "BlockDeviceMappingDeviceNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "BlockDeviceMappingDeviceNames require an index\n"); + if (s->block_device_mapping_device_names) { + for (; s->block_device_mapping_device_names[last]; ++last); + } + if (pos < last) { + s->block_device_mapping_device_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->block_device_mapping_device_names, "", pa); + SET_NEXT(s->block_device_mapping_device_names, (aa), pa); + } + } else { + TRY(!aa, "BlockDeviceMappingDeviceNames argument missing\n"); + s->block_device_mapping_device_names_str = aa; + } } else if (!(aret = strcmp(str, "BlockDeviceMappingDeviceNames[]")) || aret == '=') { TRY(!aa, "BlockDeviceMappingDeviceNames[] argument missing\n"); SET_NEXT(s->block_device_mapping_device_names, (aa), pa); } else - if ((aret = argcmp(str, "BlockDeviceMappingLinkDates")) == 0 || aret == '=') { - TRY(!aa, "BlockDeviceMappingLinkDates argument missing\n"); - s->block_device_mapping_link_dates_str = aa; + if ((aret = strcmp(str, "BlockDeviceMappingLinkDates")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "BlockDeviceMappingLinkDates argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "BlockDeviceMappingLinkDates require an index\n"); + if (s->block_device_mapping_link_dates) { + for (; s->block_device_mapping_link_dates[last]; ++last); + } + if (pos < last) { + s->block_device_mapping_link_dates[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->block_device_mapping_link_dates, "", pa); + SET_NEXT(s->block_device_mapping_link_dates, (aa), pa); + } + } else { + TRY(!aa, "BlockDeviceMappingLinkDates argument missing\n"); + s->block_device_mapping_link_dates_str = aa; + } } else if (!(aret = strcmp(str, "BlockDeviceMappingLinkDates[]")) || aret == '=') { TRY(!aa, "BlockDeviceMappingLinkDates[] argument missing\n"); SET_NEXT(s->block_device_mapping_link_dates, (aa), pa); } else - if ((aret = argcmp(str, "BlockDeviceMappingStates")) == 0 || aret == '=') { - TRY(!aa, "BlockDeviceMappingStates argument missing\n"); - s->block_device_mapping_states_str = aa; + if ((aret = strcmp(str, "BlockDeviceMappingStates")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "BlockDeviceMappingStates argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "BlockDeviceMappingStates require an index\n"); + if (s->block_device_mapping_states) { + for (; s->block_device_mapping_states[last]; ++last); + } + if (pos < last) { + s->block_device_mapping_states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->block_device_mapping_states, "", pa); + SET_NEXT(s->block_device_mapping_states, (aa), pa); + } + } else { + TRY(!aa, "BlockDeviceMappingStates argument missing\n"); + s->block_device_mapping_states_str = aa; + } } else if (!(aret = strcmp(str, "BlockDeviceMappingStates[]")) || aret == '=') { TRY(!aa, "BlockDeviceMappingStates[] argument missing\n"); SET_NEXT(s->block_device_mapping_states, (aa), pa); } else - if ((aret = argcmp(str, "BlockDeviceMappingVolumeIds")) == 0 || aret == '=') { - TRY(!aa, "BlockDeviceMappingVolumeIds argument missing\n"); - s->block_device_mapping_volume_ids_str = aa; + if ((aret = strcmp(str, "BlockDeviceMappingVolumeIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "BlockDeviceMappingVolumeIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "BlockDeviceMappingVolumeIds require an index\n"); + if (s->block_device_mapping_volume_ids) { + for (; s->block_device_mapping_volume_ids[last]; ++last); + } + if (pos < last) { + s->block_device_mapping_volume_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->block_device_mapping_volume_ids, "", pa); + SET_NEXT(s->block_device_mapping_volume_ids, (aa), pa); + } + } else { + TRY(!aa, "BlockDeviceMappingVolumeIds argument missing\n"); + s->block_device_mapping_volume_ids_str = aa; + } } else if (!(aret = strcmp(str, "BlockDeviceMappingVolumeIds[]")) || aret == '=') { TRY(!aa, "BlockDeviceMappingVolumeIds[] argument missing\n"); SET_NEXT(s->block_device_mapping_volume_ids, (aa), pa); } else - if ((aret = argcmp(str, "ClientTokens")) == 0 || aret == '=') { - TRY(!aa, "ClientTokens argument missing\n"); - s->client_tokens_str = aa; + if ((aret = strcmp(str, "ClientTokens")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ClientTokens argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ClientTokens require an index\n"); + if (s->client_tokens) { + for (; s->client_tokens[last]; ++last); + } + if (pos < last) { + s->client_tokens[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->client_tokens, "", pa); + SET_NEXT(s->client_tokens, (aa), pa); + } + } else { + TRY(!aa, "ClientTokens argument missing\n"); + s->client_tokens_str = aa; + } } else if (!(aret = strcmp(str, "ClientTokens[]")) || aret == '=') { TRY(!aa, "ClientTokens[] argument missing\n"); SET_NEXT(s->client_tokens, (aa), pa); } else - if ((aret = argcmp(str, "CreationDates")) == 0 || aret == '=') { - TRY(!aa, "CreationDates argument missing\n"); - s->creation_dates_str = aa; + if ((aret = strcmp(str, "CreationDates")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "CreationDates argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "CreationDates require an index\n"); + if (s->creation_dates) { + for (; s->creation_dates[last]; ++last); + } + if (pos < last) { + s->creation_dates[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->creation_dates, "", pa); + SET_NEXT(s->creation_dates, (aa), pa); + } + } else { + TRY(!aa, "CreationDates argument missing\n"); + s->creation_dates_str = aa; + } } else if (!(aret = strcmp(str, "CreationDates[]")) || aret == '=') { TRY(!aa, "CreationDates[] argument missing\n"); SET_NEXT(s->creation_dates, (aa), pa); } else - if ((aret = argcmp(str, "ImageIds")) == 0 || aret == '=') { - TRY(!aa, "ImageIds argument missing\n"); - s->image_ids_str = aa; + if ((aret = strcmp(str, "ImageIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ImageIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ImageIds require an index\n"); + if (s->image_ids) { + for (; s->image_ids[last]; ++last); + } + if (pos < last) { + s->image_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->image_ids, "", pa); + SET_NEXT(s->image_ids, (aa), pa); + } + } else { + TRY(!aa, "ImageIds argument missing\n"); + s->image_ids_str = aa; + } } else if (!(aret = strcmp(str, "ImageIds[]")) || aret == '=') { TRY(!aa, "ImageIds[] argument missing\n"); SET_NEXT(s->image_ids, (aa), pa); } else - if ((aret = argcmp(str, "IsSourceDestChecked")) == 0 || aret == '=') { + if ((aret = strcmp(str, "IsSourceDestChecked")) == 0 || aret == '=' || aret == '.') { s->is_set_is_source_dest_checked = 1; if (!aa || !strcasecmp(aa, "true")) { s->is_source_dest_checked = 1; @@ -3832,49 +9103,175 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("IsSourceDestChecked require true/false\n"); } } else - if ((aret = argcmp(str, "KeypairNames")) == 0 || aret == '=') { - TRY(!aa, "KeypairNames argument missing\n"); - s->keypair_names_str = aa; + if ((aret = strcmp(str, "KeypairNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "KeypairNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "KeypairNames require an index\n"); + if (s->keypair_names) { + for (; s->keypair_names[last]; ++last); + } + if (pos < last) { + s->keypair_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->keypair_names, "", pa); + SET_NEXT(s->keypair_names, (aa), pa); + } + } else { + TRY(!aa, "KeypairNames argument missing\n"); + s->keypair_names_str = aa; + } } else if (!(aret = strcmp(str, "KeypairNames[]")) || aret == '=') { TRY(!aa, "KeypairNames[] argument missing\n"); SET_NEXT(s->keypair_names, (aa), pa); } else - if ((aret = argcmp(str, "LaunchNumbers")) == 0 || aret == '=') { - TRY(!aa, "LaunchNumbers argument missing\n"); - s->launch_numbers_str = aa; + if ((aret = strcmp(str, "LaunchNumbers")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LaunchNumbers argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LaunchNumbers require an index\n"); + if (s->launch_numbers) { + for (; s->launch_numbers[last]; ++last); + } + if (pos < last) { + s->launch_numbers[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->launch_numbers, 0, pa); + SET_NEXT(s->launch_numbers, atoi(aa), pa); + } + } else { + TRY(!aa, "LaunchNumbers argument missing\n"); + s->launch_numbers_str = aa; + } } else if (!(aret = strcmp(str, "LaunchNumbers[]")) || aret == '=') { TRY(!aa, "LaunchNumbers[] argument missing\n"); SET_NEXT(s->launch_numbers, atoi(aa), pa); } else - if ((aret = argcmp(str, "Lifecycles")) == 0 || aret == '=') { - TRY(!aa, "Lifecycles argument missing\n"); - s->lifecycles_str = aa; + if ((aret = strcmp(str, "Lifecycles")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Lifecycles argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Lifecycles require an index\n"); + if (s->lifecycles) { + for (; s->lifecycles[last]; ++last); + } + if (pos < last) { + s->lifecycles[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->lifecycles, "", pa); + SET_NEXT(s->lifecycles, (aa), pa); + } + } else { + TRY(!aa, "Lifecycles argument missing\n"); + s->lifecycles_str = aa; + } } else if (!(aret = strcmp(str, "Lifecycles[]")) || aret == '=') { TRY(!aa, "Lifecycles[] argument missing\n"); SET_NEXT(s->lifecycles, (aa), pa); } else - if ((aret = argcmp(str, "NetIds")) == 0 || aret == '=') { - TRY(!aa, "NetIds argument missing\n"); - s->net_ids_str = aa; + if ((aret = strcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NetIds require an index\n"); + if (s->net_ids) { + for (; s->net_ids[last]; ++last); + } + if (pos < last) { + s->net_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->net_ids, "", pa); + SET_NEXT(s->net_ids, (aa), pa); + } + } else { + TRY(!aa, "NetIds argument missing\n"); + s->net_ids_str = aa; + } } else if (!(aret = strcmp(str, "NetIds[]")) || aret == '=') { TRY(!aa, "NetIds[] argument missing\n"); SET_NEXT(s->net_ids, (aa), pa); } else - if ((aret = argcmp(str, "NicAccountIds")) == 0 || aret == '=') { - TRY(!aa, "NicAccountIds argument missing\n"); - s->nic_account_ids_str = aa; + if ((aret = strcmp(str, "NicAccountIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicAccountIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicAccountIds require an index\n"); + if (s->nic_account_ids) { + for (; s->nic_account_ids[last]; ++last); + } + if (pos < last) { + s->nic_account_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_account_ids, "", pa); + SET_NEXT(s->nic_account_ids, (aa), pa); + } + } else { + TRY(!aa, "NicAccountIds argument missing\n"); + s->nic_account_ids_str = aa; + } } else if (!(aret = strcmp(str, "NicAccountIds[]")) || aret == '=') { TRY(!aa, "NicAccountIds[] argument missing\n"); SET_NEXT(s->nic_account_ids, (aa), pa); } else - if ((aret = argcmp(str, "NicDescriptions")) == 0 || aret == '=') { - TRY(!aa, "NicDescriptions argument missing\n"); - s->nic_descriptions_str = aa; + if ((aret = strcmp(str, "NicDescriptions")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicDescriptions argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicDescriptions require an index\n"); + if (s->nic_descriptions) { + for (; s->nic_descriptions[last]; ++last); + } + if (pos < last) { + s->nic_descriptions[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_descriptions, "", pa); + SET_NEXT(s->nic_descriptions, (aa), pa); + } + } else { + TRY(!aa, "NicDescriptions argument missing\n"); + s->nic_descriptions_str = aa; + } } else if (!(aret = strcmp(str, "NicDescriptions[]")) || aret == '=') { TRY(!aa, "NicDescriptions[] argument missing\n"); SET_NEXT(s->nic_descriptions, (aa), pa); } else - if ((aret = argcmp(str, "NicIsSourceDestChecked")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NicIsSourceDestChecked")) == 0 || aret == '=' || aret == '.') { s->is_set_nic_is_source_dest_checked = 1; if (!aa || !strcasecmp(aa, "true")) { s->nic_is_source_dest_checked = 1; @@ -3884,7 +9281,7 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("NicIsSourceDestChecked require true/false\n"); } } else - if ((aret = argcmp(str, "NicLinkNicDeleteOnVmDeletion")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NicLinkNicDeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_nic_link_nic_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->nic_link_nic_delete_on_vm_deletion = 1; @@ -3894,112 +9291,427 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("NicLinkNicDeleteOnVmDeletion require true/false\n"); } } else - if ((aret = argcmp(str, "NicLinkNicDeviceNumbers")) == 0 || aret == '=') { - TRY(!aa, "NicLinkNicDeviceNumbers argument missing\n"); - s->nic_link_nic_device_numbers_str = aa; + if ((aret = strcmp(str, "NicLinkNicDeviceNumbers")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicLinkNicDeviceNumbers argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicLinkNicDeviceNumbers require an index\n"); + if (s->nic_link_nic_device_numbers) { + for (; s->nic_link_nic_device_numbers[last]; ++last); + } + if (pos < last) { + s->nic_link_nic_device_numbers[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_link_nic_device_numbers, 0, pa); + SET_NEXT(s->nic_link_nic_device_numbers, atoi(aa), pa); + } + } else { + TRY(!aa, "NicLinkNicDeviceNumbers argument missing\n"); + s->nic_link_nic_device_numbers_str = aa; + } } else if (!(aret = strcmp(str, "NicLinkNicDeviceNumbers[]")) || aret == '=') { TRY(!aa, "NicLinkNicDeviceNumbers[] argument missing\n"); SET_NEXT(s->nic_link_nic_device_numbers, atoi(aa), pa); } else - if ((aret = argcmp(str, "NicLinkNicLinkNicDates")) == 0 || aret == '=') { - TRY(!aa, "NicLinkNicLinkNicDates argument missing\n"); - s->nic_link_nic_link_nic_dates_str = aa; + if ((aret = strcmp(str, "NicLinkNicLinkNicDates")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicLinkNicLinkNicDates argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicLinkNicLinkNicDates require an index\n"); + if (s->nic_link_nic_link_nic_dates) { + for (; s->nic_link_nic_link_nic_dates[last]; ++last); + } + if (pos < last) { + s->nic_link_nic_link_nic_dates[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_link_nic_link_nic_dates, "", pa); + SET_NEXT(s->nic_link_nic_link_nic_dates, (aa), pa); + } + } else { + TRY(!aa, "NicLinkNicLinkNicDates argument missing\n"); + s->nic_link_nic_link_nic_dates_str = aa; + } } else if (!(aret = strcmp(str, "NicLinkNicLinkNicDates[]")) || aret == '=') { TRY(!aa, "NicLinkNicLinkNicDates[] argument missing\n"); SET_NEXT(s->nic_link_nic_link_nic_dates, (aa), pa); } else - if ((aret = argcmp(str, "NicLinkNicLinkNicIds")) == 0 || aret == '=') { - TRY(!aa, "NicLinkNicLinkNicIds argument missing\n"); - s->nic_link_nic_link_nic_ids_str = aa; + if ((aret = strcmp(str, "NicLinkNicLinkNicIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicLinkNicLinkNicIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicLinkNicLinkNicIds require an index\n"); + if (s->nic_link_nic_link_nic_ids) { + for (; s->nic_link_nic_link_nic_ids[last]; ++last); + } + if (pos < last) { + s->nic_link_nic_link_nic_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_link_nic_link_nic_ids, "", pa); + SET_NEXT(s->nic_link_nic_link_nic_ids, (aa), pa); + } + } else { + TRY(!aa, "NicLinkNicLinkNicIds argument missing\n"); + s->nic_link_nic_link_nic_ids_str = aa; + } } else if (!(aret = strcmp(str, "NicLinkNicLinkNicIds[]")) || aret == '=') { TRY(!aa, "NicLinkNicLinkNicIds[] argument missing\n"); SET_NEXT(s->nic_link_nic_link_nic_ids, (aa), pa); } else - if ((aret = argcmp(str, "NicLinkNicStates")) == 0 || aret == '=') { - TRY(!aa, "NicLinkNicStates argument missing\n"); - s->nic_link_nic_states_str = aa; + if ((aret = strcmp(str, "NicLinkNicStates")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicLinkNicStates argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicLinkNicStates require an index\n"); + if (s->nic_link_nic_states) { + for (; s->nic_link_nic_states[last]; ++last); + } + if (pos < last) { + s->nic_link_nic_states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_link_nic_states, "", pa); + SET_NEXT(s->nic_link_nic_states, (aa), pa); + } + } else { + TRY(!aa, "NicLinkNicStates argument missing\n"); + s->nic_link_nic_states_str = aa; + } } else if (!(aret = strcmp(str, "NicLinkNicStates[]")) || aret == '=') { TRY(!aa, "NicLinkNicStates[] argument missing\n"); SET_NEXT(s->nic_link_nic_states, (aa), pa); } else - if ((aret = argcmp(str, "NicLinkNicVmAccountIds")) == 0 || aret == '=') { - TRY(!aa, "NicLinkNicVmAccountIds argument missing\n"); - s->nic_link_nic_vm_account_ids_str = aa; + if ((aret = strcmp(str, "NicLinkNicVmAccountIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicLinkNicVmAccountIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicLinkNicVmAccountIds require an index\n"); + if (s->nic_link_nic_vm_account_ids) { + for (; s->nic_link_nic_vm_account_ids[last]; ++last); + } + if (pos < last) { + s->nic_link_nic_vm_account_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_link_nic_vm_account_ids, "", pa); + SET_NEXT(s->nic_link_nic_vm_account_ids, (aa), pa); + } + } else { + TRY(!aa, "NicLinkNicVmAccountIds argument missing\n"); + s->nic_link_nic_vm_account_ids_str = aa; + } } else if (!(aret = strcmp(str, "NicLinkNicVmAccountIds[]")) || aret == '=') { TRY(!aa, "NicLinkNicVmAccountIds[] argument missing\n"); SET_NEXT(s->nic_link_nic_vm_account_ids, (aa), pa); } else - if ((aret = argcmp(str, "NicLinkNicVmIds")) == 0 || aret == '=') { - TRY(!aa, "NicLinkNicVmIds argument missing\n"); - s->nic_link_nic_vm_ids_str = aa; + if ((aret = strcmp(str, "NicLinkNicVmIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicLinkNicVmIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicLinkNicVmIds require an index\n"); + if (s->nic_link_nic_vm_ids) { + for (; s->nic_link_nic_vm_ids[last]; ++last); + } + if (pos < last) { + s->nic_link_nic_vm_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_link_nic_vm_ids, "", pa); + SET_NEXT(s->nic_link_nic_vm_ids, (aa), pa); + } + } else { + TRY(!aa, "NicLinkNicVmIds argument missing\n"); + s->nic_link_nic_vm_ids_str = aa; + } } else if (!(aret = strcmp(str, "NicLinkNicVmIds[]")) || aret == '=') { TRY(!aa, "NicLinkNicVmIds[] argument missing\n"); SET_NEXT(s->nic_link_nic_vm_ids, (aa), pa); } else - if ((aret = argcmp(str, "NicLinkPublicIpAccountIds")) == 0 || aret == '=') { - TRY(!aa, "NicLinkPublicIpAccountIds argument missing\n"); - s->nic_link_public_ip_account_ids_str = aa; + if ((aret = strcmp(str, "NicLinkPublicIpAccountIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicLinkPublicIpAccountIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicLinkPublicIpAccountIds require an index\n"); + if (s->nic_link_public_ip_account_ids) { + for (; s->nic_link_public_ip_account_ids[last]; ++last); + } + if (pos < last) { + s->nic_link_public_ip_account_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_link_public_ip_account_ids, "", pa); + SET_NEXT(s->nic_link_public_ip_account_ids, (aa), pa); + } + } else { + TRY(!aa, "NicLinkPublicIpAccountIds argument missing\n"); + s->nic_link_public_ip_account_ids_str = aa; + } } else if (!(aret = strcmp(str, "NicLinkPublicIpAccountIds[]")) || aret == '=') { TRY(!aa, "NicLinkPublicIpAccountIds[] argument missing\n"); SET_NEXT(s->nic_link_public_ip_account_ids, (aa), pa); } else - if ((aret = argcmp(str, "NicLinkPublicIpLinkPublicIpIds")) == 0 || aret == '=') { - TRY(!aa, "NicLinkPublicIpLinkPublicIpIds argument missing\n"); - s->nic_link_public_ip_link_public_ip_ids_str = aa; + if ((aret = strcmp(str, "NicLinkPublicIpLinkPublicIpIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicLinkPublicIpLinkPublicIpIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicLinkPublicIpLinkPublicIpIds require an index\n"); + if (s->nic_link_public_ip_link_public_ip_ids) { + for (; s->nic_link_public_ip_link_public_ip_ids[last]; ++last); + } + if (pos < last) { + s->nic_link_public_ip_link_public_ip_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_link_public_ip_link_public_ip_ids, "", pa); + SET_NEXT(s->nic_link_public_ip_link_public_ip_ids, (aa), pa); + } + } else { + TRY(!aa, "NicLinkPublicIpLinkPublicIpIds argument missing\n"); + s->nic_link_public_ip_link_public_ip_ids_str = aa; + } } else if (!(aret = strcmp(str, "NicLinkPublicIpLinkPublicIpIds[]")) || aret == '=') { TRY(!aa, "NicLinkPublicIpLinkPublicIpIds[] argument missing\n"); SET_NEXT(s->nic_link_public_ip_link_public_ip_ids, (aa), pa); } else - if ((aret = argcmp(str, "NicLinkPublicIpPublicIpIds")) == 0 || aret == '=') { - TRY(!aa, "NicLinkPublicIpPublicIpIds argument missing\n"); - s->nic_link_public_ip_public_ip_ids_str = aa; + if ((aret = strcmp(str, "NicLinkPublicIpPublicIpIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicLinkPublicIpPublicIpIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicLinkPublicIpPublicIpIds require an index\n"); + if (s->nic_link_public_ip_public_ip_ids) { + for (; s->nic_link_public_ip_public_ip_ids[last]; ++last); + } + if (pos < last) { + s->nic_link_public_ip_public_ip_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_link_public_ip_public_ip_ids, "", pa); + SET_NEXT(s->nic_link_public_ip_public_ip_ids, (aa), pa); + } + } else { + TRY(!aa, "NicLinkPublicIpPublicIpIds argument missing\n"); + s->nic_link_public_ip_public_ip_ids_str = aa; + } } else if (!(aret = strcmp(str, "NicLinkPublicIpPublicIpIds[]")) || aret == '=') { TRY(!aa, "NicLinkPublicIpPublicIpIds[] argument missing\n"); SET_NEXT(s->nic_link_public_ip_public_ip_ids, (aa), pa); } else - if ((aret = argcmp(str, "NicLinkPublicIpPublicIps")) == 0 || aret == '=') { - TRY(!aa, "NicLinkPublicIpPublicIps argument missing\n"); - s->nic_link_public_ip_public_ips_str = aa; + if ((aret = strcmp(str, "NicLinkPublicIpPublicIps")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicLinkPublicIpPublicIps argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicLinkPublicIpPublicIps require an index\n"); + if (s->nic_link_public_ip_public_ips) { + for (; s->nic_link_public_ip_public_ips[last]; ++last); + } + if (pos < last) { + s->nic_link_public_ip_public_ips[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_link_public_ip_public_ips, "", pa); + SET_NEXT(s->nic_link_public_ip_public_ips, (aa), pa); + } + } else { + TRY(!aa, "NicLinkPublicIpPublicIps argument missing\n"); + s->nic_link_public_ip_public_ips_str = aa; + } } else if (!(aret = strcmp(str, "NicLinkPublicIpPublicIps[]")) || aret == '=') { TRY(!aa, "NicLinkPublicIpPublicIps[] argument missing\n"); SET_NEXT(s->nic_link_public_ip_public_ips, (aa), pa); } else - if ((aret = argcmp(str, "NicMacAddresses")) == 0 || aret == '=') { - TRY(!aa, "NicMacAddresses argument missing\n"); - s->nic_mac_addresses_str = aa; + if ((aret = strcmp(str, "NicMacAddresses")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicMacAddresses argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicMacAddresses require an index\n"); + if (s->nic_mac_addresses) { + for (; s->nic_mac_addresses[last]; ++last); + } + if (pos < last) { + s->nic_mac_addresses[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_mac_addresses, "", pa); + SET_NEXT(s->nic_mac_addresses, (aa), pa); + } + } else { + TRY(!aa, "NicMacAddresses argument missing\n"); + s->nic_mac_addresses_str = aa; + } } else if (!(aret = strcmp(str, "NicMacAddresses[]")) || aret == '=') { TRY(!aa, "NicMacAddresses[] argument missing\n"); SET_NEXT(s->nic_mac_addresses, (aa), pa); } else - if ((aret = argcmp(str, "NicNetIds")) == 0 || aret == '=') { - TRY(!aa, "NicNetIds argument missing\n"); - s->nic_net_ids_str = aa; + if ((aret = strcmp(str, "NicNetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicNetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicNetIds require an index\n"); + if (s->nic_net_ids) { + for (; s->nic_net_ids[last]; ++last); + } + if (pos < last) { + s->nic_net_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_net_ids, "", pa); + SET_NEXT(s->nic_net_ids, (aa), pa); + } + } else { + TRY(!aa, "NicNetIds argument missing\n"); + s->nic_net_ids_str = aa; + } } else if (!(aret = strcmp(str, "NicNetIds[]")) || aret == '=') { TRY(!aa, "NicNetIds[] argument missing\n"); SET_NEXT(s->nic_net_ids, (aa), pa); } else - if ((aret = argcmp(str, "NicNicIds")) == 0 || aret == '=') { - TRY(!aa, "NicNicIds argument missing\n"); - s->nic_nic_ids_str = aa; + if ((aret = strcmp(str, "NicNicIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicNicIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicNicIds require an index\n"); + if (s->nic_nic_ids) { + for (; s->nic_nic_ids[last]; ++last); + } + if (pos < last) { + s->nic_nic_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_nic_ids, "", pa); + SET_NEXT(s->nic_nic_ids, (aa), pa); + } + } else { + TRY(!aa, "NicNicIds argument missing\n"); + s->nic_nic_ids_str = aa; + } } else if (!(aret = strcmp(str, "NicNicIds[]")) || aret == '=') { TRY(!aa, "NicNicIds[] argument missing\n"); SET_NEXT(s->nic_nic_ids, (aa), pa); } else - if ((aret = argcmp(str, "NicPrivateIpsLinkPublicIpAccountIds")) == 0 || aret == '=') { - TRY(!aa, "NicPrivateIpsLinkPublicIpAccountIds argument missing\n"); - s->nic_private_ips_link_public_ip_account_ids_str = aa; + if ((aret = strcmp(str, "NicPrivateIpsLinkPublicIpAccountIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicPrivateIpsLinkPublicIpAccountIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicPrivateIpsLinkPublicIpAccountIds require an index\n"); + if (s->nic_private_ips_link_public_ip_account_ids) { + for (; s->nic_private_ips_link_public_ip_account_ids[last]; ++last); + } + if (pos < last) { + s->nic_private_ips_link_public_ip_account_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_private_ips_link_public_ip_account_ids, "", pa); + SET_NEXT(s->nic_private_ips_link_public_ip_account_ids, (aa), pa); + } + } else { + TRY(!aa, "NicPrivateIpsLinkPublicIpAccountIds argument missing\n"); + s->nic_private_ips_link_public_ip_account_ids_str = aa; + } } else if (!(aret = strcmp(str, "NicPrivateIpsLinkPublicIpAccountIds[]")) || aret == '=') { TRY(!aa, "NicPrivateIpsLinkPublicIpAccountIds[] argument missing\n"); SET_NEXT(s->nic_private_ips_link_public_ip_account_ids, (aa), pa); } else - if ((aret = argcmp(str, "NicPrivateIpsLinkPublicIpIds")) == 0 || aret == '=') { - TRY(!aa, "NicPrivateIpsLinkPublicIpIds argument missing\n"); - s->nic_private_ips_link_public_ip_ids_str = aa; + if ((aret = strcmp(str, "NicPrivateIpsLinkPublicIpIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicPrivateIpsLinkPublicIpIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicPrivateIpsLinkPublicIpIds require an index\n"); + if (s->nic_private_ips_link_public_ip_ids) { + for (; s->nic_private_ips_link_public_ip_ids[last]; ++last); + } + if (pos < last) { + s->nic_private_ips_link_public_ip_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_private_ips_link_public_ip_ids, "", pa); + SET_NEXT(s->nic_private_ips_link_public_ip_ids, (aa), pa); + } + } else { + TRY(!aa, "NicPrivateIpsLinkPublicIpIds argument missing\n"); + s->nic_private_ips_link_public_ip_ids_str = aa; + } } else if (!(aret = strcmp(str, "NicPrivateIpsLinkPublicIpIds[]")) || aret == '=') { TRY(!aa, "NicPrivateIpsLinkPublicIpIds[] argument missing\n"); SET_NEXT(s->nic_private_ips_link_public_ip_ids, (aa), pa); } else - if ((aret = argcmp(str, "NicPrivateIpsPrimaryIp")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NicPrivateIpsPrimaryIp")) == 0 || aret == '=' || aret == '.') { s->is_set_nic_private_ips_primary_ip = 1; if (!aa || !strcasecmp(aa, "true")) { s->nic_private_ips_primary_ip = 1; @@ -4009,212 +9721,842 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("NicPrivateIpsPrimaryIp require true/false\n"); } } else - if ((aret = argcmp(str, "NicPrivateIpsPrivateIps")) == 0 || aret == '=') { - TRY(!aa, "NicPrivateIpsPrivateIps argument missing\n"); - s->nic_private_ips_private_ips_str = aa; + if ((aret = strcmp(str, "NicPrivateIpsPrivateIps")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicPrivateIpsPrivateIps argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicPrivateIpsPrivateIps require an index\n"); + if (s->nic_private_ips_private_ips) { + for (; s->nic_private_ips_private_ips[last]; ++last); + } + if (pos < last) { + s->nic_private_ips_private_ips[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_private_ips_private_ips, "", pa); + SET_NEXT(s->nic_private_ips_private_ips, (aa), pa); + } + } else { + TRY(!aa, "NicPrivateIpsPrivateIps argument missing\n"); + s->nic_private_ips_private_ips_str = aa; + } } else if (!(aret = strcmp(str, "NicPrivateIpsPrivateIps[]")) || aret == '=') { TRY(!aa, "NicPrivateIpsPrivateIps[] argument missing\n"); SET_NEXT(s->nic_private_ips_private_ips, (aa), pa); } else - if ((aret = argcmp(str, "NicSecurityGroupIds")) == 0 || aret == '=') { - TRY(!aa, "NicSecurityGroupIds argument missing\n"); - s->nic_security_group_ids_str = aa; + if ((aret = strcmp(str, "NicSecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicSecurityGroupIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicSecurityGroupIds require an index\n"); + if (s->nic_security_group_ids) { + for (; s->nic_security_group_ids[last]; ++last); + } + if (pos < last) { + s->nic_security_group_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_security_group_ids, "", pa); + SET_NEXT(s->nic_security_group_ids, (aa), pa); + } + } else { + TRY(!aa, "NicSecurityGroupIds argument missing\n"); + s->nic_security_group_ids_str = aa; + } } else if (!(aret = strcmp(str, "NicSecurityGroupIds[]")) || aret == '=') { TRY(!aa, "NicSecurityGroupIds[] argument missing\n"); SET_NEXT(s->nic_security_group_ids, (aa), pa); } else - if ((aret = argcmp(str, "NicSecurityGroupNames")) == 0 || aret == '=') { - TRY(!aa, "NicSecurityGroupNames argument missing\n"); - s->nic_security_group_names_str = aa; + if ((aret = strcmp(str, "NicSecurityGroupNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicSecurityGroupNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicSecurityGroupNames require an index\n"); + if (s->nic_security_group_names) { + for (; s->nic_security_group_names[last]; ++last); + } + if (pos < last) { + s->nic_security_group_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_security_group_names, "", pa); + SET_NEXT(s->nic_security_group_names, (aa), pa); + } + } else { + TRY(!aa, "NicSecurityGroupNames argument missing\n"); + s->nic_security_group_names_str = aa; + } } else if (!(aret = strcmp(str, "NicSecurityGroupNames[]")) || aret == '=') { TRY(!aa, "NicSecurityGroupNames[] argument missing\n"); SET_NEXT(s->nic_security_group_names, (aa), pa); } else - if ((aret = argcmp(str, "NicStates")) == 0 || aret == '=') { - TRY(!aa, "NicStates argument missing\n"); - s->nic_states_str = aa; + if ((aret = strcmp(str, "NicStates")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicStates argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicStates require an index\n"); + if (s->nic_states) { + for (; s->nic_states[last]; ++last); + } + if (pos < last) { + s->nic_states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_states, "", pa); + SET_NEXT(s->nic_states, (aa), pa); + } + } else { + TRY(!aa, "NicStates argument missing\n"); + s->nic_states_str = aa; + } } else if (!(aret = strcmp(str, "NicStates[]")) || aret == '=') { TRY(!aa, "NicStates[] argument missing\n"); SET_NEXT(s->nic_states, (aa), pa); } else - if ((aret = argcmp(str, "NicSubnetIds")) == 0 || aret == '=') { - TRY(!aa, "NicSubnetIds argument missing\n"); - s->nic_subnet_ids_str = aa; + if ((aret = strcmp(str, "NicSubnetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicSubnetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicSubnetIds require an index\n"); + if (s->nic_subnet_ids) { + for (; s->nic_subnet_ids[last]; ++last); + } + if (pos < last) { + s->nic_subnet_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_subnet_ids, "", pa); + SET_NEXT(s->nic_subnet_ids, (aa), pa); + } + } else { + TRY(!aa, "NicSubnetIds argument missing\n"); + s->nic_subnet_ids_str = aa; + } } else if (!(aret = strcmp(str, "NicSubnetIds[]")) || aret == '=') { TRY(!aa, "NicSubnetIds[] argument missing\n"); SET_NEXT(s->nic_subnet_ids, (aa), pa); } else - if ((aret = argcmp(str, "NicSubregionNames")) == 0 || aret == '=') { - TRY(!aa, "NicSubregionNames argument missing\n"); - s->nic_subregion_names_str = aa; + if ((aret = strcmp(str, "NicSubregionNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NicSubregionNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NicSubregionNames require an index\n"); + if (s->nic_subregion_names) { + for (; s->nic_subregion_names[last]; ++last); + } + if (pos < last) { + s->nic_subregion_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->nic_subregion_names, "", pa); + SET_NEXT(s->nic_subregion_names, (aa), pa); + } + } else { + TRY(!aa, "NicSubregionNames argument missing\n"); + s->nic_subregion_names_str = aa; + } } else if (!(aret = strcmp(str, "NicSubregionNames[]")) || aret == '=') { TRY(!aa, "NicSubregionNames[] argument missing\n"); SET_NEXT(s->nic_subregion_names, (aa), pa); } else - if ((aret = argcmp(str, "Platforms")) == 0 || aret == '=') { - TRY(!aa, "Platforms argument missing\n"); - s->platforms_str = aa; + if ((aret = strcmp(str, "Platforms")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Platforms argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Platforms require an index\n"); + if (s->platforms) { + for (; s->platforms[last]; ++last); + } + if (pos < last) { + s->platforms[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->platforms, "", pa); + SET_NEXT(s->platforms, (aa), pa); + } + } else { + TRY(!aa, "Platforms argument missing\n"); + s->platforms_str = aa; + } } else if (!(aret = strcmp(str, "Platforms[]")) || aret == '=') { TRY(!aa, "Platforms[] argument missing\n"); SET_NEXT(s->platforms, (aa), pa); } else - if ((aret = argcmp(str, "PrivateIps")) == 0 || aret == '=') { - TRY(!aa, "PrivateIps argument missing\n"); - s->private_ips_str = aa; + if ((aret = strcmp(str, "PrivateIps")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "PrivateIps argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "PrivateIps require an index\n"); + if (s->private_ips) { + for (; s->private_ips[last]; ++last); + } + if (pos < last) { + s->private_ips[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->private_ips, "", pa); + SET_NEXT(s->private_ips, (aa), pa); + } + } else { + TRY(!aa, "PrivateIps argument missing\n"); + s->private_ips_str = aa; + } } else if (!(aret = strcmp(str, "PrivateIps[]")) || aret == '=') { TRY(!aa, "PrivateIps[] argument missing\n"); SET_NEXT(s->private_ips, (aa), pa); } else - if ((aret = argcmp(str, "ProductCodes")) == 0 || aret == '=') { - TRY(!aa, "ProductCodes argument missing\n"); - s->product_codes_str = aa; + if ((aret = strcmp(str, "ProductCodes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ProductCodes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ProductCodes require an index\n"); + if (s->product_codes) { + for (; s->product_codes[last]; ++last); + } + if (pos < last) { + s->product_codes[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->product_codes, "", pa); + SET_NEXT(s->product_codes, (aa), pa); + } + } else { + TRY(!aa, "ProductCodes argument missing\n"); + s->product_codes_str = aa; + } } else if (!(aret = strcmp(str, "ProductCodes[]")) || aret == '=') { TRY(!aa, "ProductCodes[] argument missing\n"); SET_NEXT(s->product_codes, (aa), pa); } else - if ((aret = argcmp(str, "PublicIps")) == 0 || aret == '=') { - TRY(!aa, "PublicIps argument missing\n"); - s->public_ips_str = aa; + if ((aret = strcmp(str, "PublicIps")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "PublicIps argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "PublicIps require an index\n"); + if (s->public_ips) { + for (; s->public_ips[last]; ++last); + } + if (pos < last) { + s->public_ips[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->public_ips, "", pa); + SET_NEXT(s->public_ips, (aa), pa); + } + } else { + TRY(!aa, "PublicIps argument missing\n"); + s->public_ips_str = aa; + } } else if (!(aret = strcmp(str, "PublicIps[]")) || aret == '=') { TRY(!aa, "PublicIps[] argument missing\n"); SET_NEXT(s->public_ips, (aa), pa); } else - if ((aret = argcmp(str, "ReservationIds")) == 0 || aret == '=') { - TRY(!aa, "ReservationIds argument missing\n"); - s->reservation_ids_str = aa; + if ((aret = strcmp(str, "ReservationIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ReservationIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ReservationIds require an index\n"); + if (s->reservation_ids) { + for (; s->reservation_ids[last]; ++last); + } + if (pos < last) { + s->reservation_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->reservation_ids, "", pa); + SET_NEXT(s->reservation_ids, (aa), pa); + } + } else { + TRY(!aa, "ReservationIds argument missing\n"); + s->reservation_ids_str = aa; + } } else if (!(aret = strcmp(str, "ReservationIds[]")) || aret == '=') { TRY(!aa, "ReservationIds[] argument missing\n"); SET_NEXT(s->reservation_ids, (aa), pa); } else - if ((aret = argcmp(str, "RootDeviceNames")) == 0 || aret == '=') { - TRY(!aa, "RootDeviceNames argument missing\n"); - s->root_device_names_str = aa; + if ((aret = strcmp(str, "RootDeviceNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "RootDeviceNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "RootDeviceNames require an index\n"); + if (s->root_device_names) { + for (; s->root_device_names[last]; ++last); + } + if (pos < last) { + s->root_device_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->root_device_names, "", pa); + SET_NEXT(s->root_device_names, (aa), pa); + } + } else { + TRY(!aa, "RootDeviceNames argument missing\n"); + s->root_device_names_str = aa; + } } else if (!(aret = strcmp(str, "RootDeviceNames[]")) || aret == '=') { TRY(!aa, "RootDeviceNames[] argument missing\n"); SET_NEXT(s->root_device_names, (aa), pa); } else - if ((aret = argcmp(str, "RootDeviceTypes")) == 0 || aret == '=') { - TRY(!aa, "RootDeviceTypes argument missing\n"); - s->root_device_types_str = aa; + if ((aret = strcmp(str, "RootDeviceTypes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "RootDeviceTypes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "RootDeviceTypes require an index\n"); + if (s->root_device_types) { + for (; s->root_device_types[last]; ++last); + } + if (pos < last) { + s->root_device_types[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->root_device_types, "", pa); + SET_NEXT(s->root_device_types, (aa), pa); + } + } else { + TRY(!aa, "RootDeviceTypes argument missing\n"); + s->root_device_types_str = aa; + } } else if (!(aret = strcmp(str, "RootDeviceTypes[]")) || aret == '=') { TRY(!aa, "RootDeviceTypes[] argument missing\n"); SET_NEXT(s->root_device_types, (aa), pa); } else - if ((aret = argcmp(str, "SecurityGroupIds")) == 0 || aret == '=') { - TRY(!aa, "SecurityGroupIds argument missing\n"); - s->security_group_ids_str = aa; + if ((aret = strcmp(str, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SecurityGroupIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SecurityGroupIds require an index\n"); + if (s->security_group_ids) { + for (; s->security_group_ids[last]; ++last); + } + if (pos < last) { + s->security_group_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->security_group_ids, "", pa); + SET_NEXT(s->security_group_ids, (aa), pa); + } + } else { + TRY(!aa, "SecurityGroupIds argument missing\n"); + s->security_group_ids_str = aa; + } } else if (!(aret = strcmp(str, "SecurityGroupIds[]")) || aret == '=') { TRY(!aa, "SecurityGroupIds[] argument missing\n"); SET_NEXT(s->security_group_ids, (aa), pa); } else - if ((aret = argcmp(str, "SecurityGroupNames")) == 0 || aret == '=') { - TRY(!aa, "SecurityGroupNames argument missing\n"); - s->security_group_names_str = aa; + if ((aret = strcmp(str, "SecurityGroupNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SecurityGroupNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SecurityGroupNames require an index\n"); + if (s->security_group_names) { + for (; s->security_group_names[last]; ++last); + } + if (pos < last) { + s->security_group_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->security_group_names, "", pa); + SET_NEXT(s->security_group_names, (aa), pa); + } + } else { + TRY(!aa, "SecurityGroupNames argument missing\n"); + s->security_group_names_str = aa; + } } else if (!(aret = strcmp(str, "SecurityGroupNames[]")) || aret == '=') { TRY(!aa, "SecurityGroupNames[] argument missing\n"); SET_NEXT(s->security_group_names, (aa), pa); } else - if ((aret = argcmp(str, "StateReasonCodes")) == 0 || aret == '=') { - TRY(!aa, "StateReasonCodes argument missing\n"); - s->state_reason_codes_str = aa; + if ((aret = strcmp(str, "StateReasonCodes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "StateReasonCodes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "StateReasonCodes require an index\n"); + if (s->state_reason_codes) { + for (; s->state_reason_codes[last]; ++last); + } + if (pos < last) { + s->state_reason_codes[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->state_reason_codes, 0, pa); + SET_NEXT(s->state_reason_codes, atoi(aa), pa); + } + } else { + TRY(!aa, "StateReasonCodes argument missing\n"); + s->state_reason_codes_str = aa; + } } else if (!(aret = strcmp(str, "StateReasonCodes[]")) || aret == '=') { TRY(!aa, "StateReasonCodes[] argument missing\n"); SET_NEXT(s->state_reason_codes, atoi(aa), pa); } else - if ((aret = argcmp(str, "StateReasonMessages")) == 0 || aret == '=') { - TRY(!aa, "StateReasonMessages argument missing\n"); - s->state_reason_messages_str = aa; + if ((aret = strcmp(str, "StateReasonMessages")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "StateReasonMessages argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "StateReasonMessages require an index\n"); + if (s->state_reason_messages) { + for (; s->state_reason_messages[last]; ++last); + } + if (pos < last) { + s->state_reason_messages[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->state_reason_messages, "", pa); + SET_NEXT(s->state_reason_messages, (aa), pa); + } + } else { + TRY(!aa, "StateReasonMessages argument missing\n"); + s->state_reason_messages_str = aa; + } } else if (!(aret = strcmp(str, "StateReasonMessages[]")) || aret == '=') { TRY(!aa, "StateReasonMessages[] argument missing\n"); SET_NEXT(s->state_reason_messages, (aa), pa); } else - if ((aret = argcmp(str, "StateReasons")) == 0 || aret == '=') { - TRY(!aa, "StateReasons argument missing\n"); - s->state_reasons_str = aa; + if ((aret = strcmp(str, "StateReasons")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "StateReasons argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "StateReasons require an index\n"); + if (s->state_reasons) { + for (; s->state_reasons[last]; ++last); + } + if (pos < last) { + s->state_reasons[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->state_reasons, "", pa); + SET_NEXT(s->state_reasons, (aa), pa); + } + } else { + TRY(!aa, "StateReasons argument missing\n"); + s->state_reasons_str = aa; + } } else if (!(aret = strcmp(str, "StateReasons[]")) || aret == '=') { TRY(!aa, "StateReasons[] argument missing\n"); SET_NEXT(s->state_reasons, (aa), pa); } else - if ((aret = argcmp(str, "SubnetIds")) == 0 || aret == '=') { - TRY(!aa, "SubnetIds argument missing\n"); - s->subnet_ids_str = aa; + if ((aret = strcmp(str, "SubnetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SubnetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SubnetIds require an index\n"); + if (s->subnet_ids) { + for (; s->subnet_ids[last]; ++last); + } + if (pos < last) { + s->subnet_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->subnet_ids, "", pa); + SET_NEXT(s->subnet_ids, (aa), pa); + } + } else { + TRY(!aa, "SubnetIds argument missing\n"); + s->subnet_ids_str = aa; + } } else if (!(aret = strcmp(str, "SubnetIds[]")) || aret == '=') { TRY(!aa, "SubnetIds[] argument missing\n"); SET_NEXT(s->subnet_ids, (aa), pa); } else - if ((aret = argcmp(str, "SubregionNames")) == 0 || aret == '=') { - TRY(!aa, "SubregionNames argument missing\n"); - s->subregion_names_str = aa; + if ((aret = strcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SubregionNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SubregionNames require an index\n"); + if (s->subregion_names) { + for (; s->subregion_names[last]; ++last); + } + if (pos < last) { + s->subregion_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->subregion_names, "", pa); + SET_NEXT(s->subregion_names, (aa), pa); + } + } else { + TRY(!aa, "SubregionNames argument missing\n"); + s->subregion_names_str = aa; + } } else if (!(aret = strcmp(str, "SubregionNames[]")) || aret == '=') { TRY(!aa, "SubregionNames[] argument missing\n"); SET_NEXT(s->subregion_names, (aa), pa); } else - if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=') { - TRY(!aa, "TagKeys argument missing\n"); - s->tag_keys_str = aa; + if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagKeys argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagKeys require an index\n"); + if (s->tag_keys) { + for (; s->tag_keys[last]; ++last); + } + if (pos < last) { + s->tag_keys[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_keys, "", pa); + SET_NEXT(s->tag_keys, (aa), pa); + } + } else { + TRY(!aa, "TagKeys argument missing\n"); + s->tag_keys_str = aa; + } } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=') { - TRY(!aa, "TagValues argument missing\n"); - s->tag_values_str = aa; + if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagValues argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagValues require an index\n"); + if (s->tag_values) { + for (; s->tag_values[last]; ++last); + } + if (pos < last) { + s->tag_values[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_values, "", pa); + SET_NEXT(s->tag_values, (aa), pa); + } + } else { + TRY(!aa, "TagValues argument missing\n"); + s->tag_values_str = aa; + } } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { - TRY(!aa, "Tags argument missing\n"); - s->tags_str = aa; + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Tags argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Tags require an index\n"); + if (s->tags) { + for (; s->tags[last]; ++last); + } + if (pos < last) { + s->tags[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tags, "", pa); + SET_NEXT(s->tags, (aa), pa); + } + } else { + TRY(!aa, "Tags argument missing\n"); + s->tags_str = aa; + } } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else - if ((aret = argcmp(str, "Tenancies")) == 0 || aret == '=') { - TRY(!aa, "Tenancies argument missing\n"); - s->tenancies_str = aa; + if ((aret = strcmp(str, "Tenancies")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Tenancies argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Tenancies require an index\n"); + if (s->tenancies) { + for (; s->tenancies[last]; ++last); + } + if (pos < last) { + s->tenancies[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tenancies, "", pa); + SET_NEXT(s->tenancies, (aa), pa); + } + } else { + TRY(!aa, "Tenancies argument missing\n"); + s->tenancies_str = aa; + } } else if (!(aret = strcmp(str, "Tenancies[]")) || aret == '=') { TRY(!aa, "Tenancies[] argument missing\n"); SET_NEXT(s->tenancies, (aa), pa); } else - if ((aret = argcmp(str, "VmIds")) == 0 || aret == '=') { - TRY(!aa, "VmIds argument missing\n"); - s->vm_ids_str = aa; + if ((aret = strcmp(str, "VmIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmIds require an index\n"); + if (s->vm_ids) { + for (; s->vm_ids[last]; ++last); + } + if (pos < last) { + s->vm_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_ids, "", pa); + SET_NEXT(s->vm_ids, (aa), pa); + } + } else { + TRY(!aa, "VmIds argument missing\n"); + s->vm_ids_str = aa; + } } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); } else - if ((aret = argcmp(str, "VmSecurityGroupIds")) == 0 || aret == '=') { - TRY(!aa, "VmSecurityGroupIds argument missing\n"); - s->vm_security_group_ids_str = aa; + if ((aret = strcmp(str, "VmSecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmSecurityGroupIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmSecurityGroupIds require an index\n"); + if (s->vm_security_group_ids) { + for (; s->vm_security_group_ids[last]; ++last); + } + if (pos < last) { + s->vm_security_group_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_security_group_ids, "", pa); + SET_NEXT(s->vm_security_group_ids, (aa), pa); + } + } else { + TRY(!aa, "VmSecurityGroupIds argument missing\n"); + s->vm_security_group_ids_str = aa; + } } else if (!(aret = strcmp(str, "VmSecurityGroupIds[]")) || aret == '=') { TRY(!aa, "VmSecurityGroupIds[] argument missing\n"); SET_NEXT(s->vm_security_group_ids, (aa), pa); } else - if ((aret = argcmp(str, "VmSecurityGroupNames")) == 0 || aret == '=') { - TRY(!aa, "VmSecurityGroupNames argument missing\n"); - s->vm_security_group_names_str = aa; + if ((aret = strcmp(str, "VmSecurityGroupNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmSecurityGroupNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmSecurityGroupNames require an index\n"); + if (s->vm_security_group_names) { + for (; s->vm_security_group_names[last]; ++last); + } + if (pos < last) { + s->vm_security_group_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_security_group_names, "", pa); + SET_NEXT(s->vm_security_group_names, (aa), pa); + } + } else { + TRY(!aa, "VmSecurityGroupNames argument missing\n"); + s->vm_security_group_names_str = aa; + } } else if (!(aret = strcmp(str, "VmSecurityGroupNames[]")) || aret == '=') { TRY(!aa, "VmSecurityGroupNames[] argument missing\n"); SET_NEXT(s->vm_security_group_names, (aa), pa); } else - if ((aret = argcmp(str, "VmStateCodes")) == 0 || aret == '=') { - TRY(!aa, "VmStateCodes argument missing\n"); - s->vm_state_codes_str = aa; + if ((aret = strcmp(str, "VmStateCodes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmStateCodes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmStateCodes require an index\n"); + if (s->vm_state_codes) { + for (; s->vm_state_codes[last]; ++last); + } + if (pos < last) { + s->vm_state_codes[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_state_codes, 0, pa); + SET_NEXT(s->vm_state_codes, atoi(aa), pa); + } + } else { + TRY(!aa, "VmStateCodes argument missing\n"); + s->vm_state_codes_str = aa; + } } else if (!(aret = strcmp(str, "VmStateCodes[]")) || aret == '=') { TRY(!aa, "VmStateCodes[] argument missing\n"); SET_NEXT(s->vm_state_codes, atoi(aa), pa); } else - if ((aret = argcmp(str, "VmStateNames")) == 0 || aret == '=') { - TRY(!aa, "VmStateNames argument missing\n"); - s->vm_state_names_str = aa; + if ((aret = strcmp(str, "VmStateNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmStateNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmStateNames require an index\n"); + if (s->vm_state_names) { + for (; s->vm_state_names[last]; ++last); + } + if (pos < last) { + s->vm_state_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_state_names, "", pa); + SET_NEXT(s->vm_state_names, (aa), pa); + } + } else { + TRY(!aa, "VmStateNames argument missing\n"); + s->vm_state_names_str = aa; + } } else if (!(aret = strcmp(str, "VmStateNames[]")) || aret == '=') { TRY(!aa, "VmStateNames[] argument missing\n"); SET_NEXT(s->vm_state_names, (aa), pa); } else - if ((aret = argcmp(str, "VmTypes")) == 0 || aret == '=') { - TRY(!aa, "VmTypes argument missing\n"); - s->vm_types_str = aa; + if ((aret = strcmp(str, "VmTypes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmTypes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmTypes require an index\n"); + if (s->vm_types) { + for (; s->vm_types[last]; ++last); + } + if (pos < last) { + s->vm_types[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_types, "", pa); + SET_NEXT(s->vm_types, (aa), pa); + } + } else { + TRY(!aa, "VmTypes argument missing\n"); + s->vm_types_str = aa; + } } else if (!(aret = strcmp(str, "VmTypes[]")) || aret == '=') { TRY(!aa, "VmTypes[] argument missing\n"); SET_NEXT(s->vm_types, (aa), pa); @@ -4229,72 +10571,282 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int filters_vm_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_vm_group *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Descriptions")) == 0 || aret == '=') { - TRY(!aa, "Descriptions argument missing\n"); - s->descriptions_str = aa; + if ((aret = strcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Descriptions argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Descriptions require an index\n"); + if (s->descriptions) { + for (; s->descriptions[last]; ++last); + } + if (pos < last) { + s->descriptions[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->descriptions, "", pa); + SET_NEXT(s->descriptions, (aa), pa); + } + } else { + TRY(!aa, "Descriptions argument missing\n"); + s->descriptions_str = aa; + } } else if (!(aret = strcmp(str, "Descriptions[]")) || aret == '=') { TRY(!aa, "Descriptions[] argument missing\n"); SET_NEXT(s->descriptions, (aa), pa); } else - if ((aret = argcmp(str, "SecurityGroupIds")) == 0 || aret == '=') { - TRY(!aa, "SecurityGroupIds argument missing\n"); - s->security_group_ids_str = aa; + if ((aret = strcmp(str, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SecurityGroupIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SecurityGroupIds require an index\n"); + if (s->security_group_ids) { + for (; s->security_group_ids[last]; ++last); + } + if (pos < last) { + s->security_group_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->security_group_ids, "", pa); + SET_NEXT(s->security_group_ids, (aa), pa); + } + } else { + TRY(!aa, "SecurityGroupIds argument missing\n"); + s->security_group_ids_str = aa; + } } else if (!(aret = strcmp(str, "SecurityGroupIds[]")) || aret == '=') { TRY(!aa, "SecurityGroupIds[] argument missing\n"); SET_NEXT(s->security_group_ids, (aa), pa); } else - if ((aret = argcmp(str, "SubnetIds")) == 0 || aret == '=') { - TRY(!aa, "SubnetIds argument missing\n"); - s->subnet_ids_str = aa; + if ((aret = strcmp(str, "SubnetIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SubnetIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SubnetIds require an index\n"); + if (s->subnet_ids) { + for (; s->subnet_ids[last]; ++last); + } + if (pos < last) { + s->subnet_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->subnet_ids, "", pa); + SET_NEXT(s->subnet_ids, (aa), pa); + } + } else { + TRY(!aa, "SubnetIds argument missing\n"); + s->subnet_ids_str = aa; + } } else if (!(aret = strcmp(str, "SubnetIds[]")) || aret == '=') { TRY(!aa, "SubnetIds[] argument missing\n"); SET_NEXT(s->subnet_ids, (aa), pa); } else - if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=') { - TRY(!aa, "TagKeys argument missing\n"); - s->tag_keys_str = aa; + if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagKeys argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagKeys require an index\n"); + if (s->tag_keys) { + for (; s->tag_keys[last]; ++last); + } + if (pos < last) { + s->tag_keys[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_keys, "", pa); + SET_NEXT(s->tag_keys, (aa), pa); + } + } else { + TRY(!aa, "TagKeys argument missing\n"); + s->tag_keys_str = aa; + } } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=') { - TRY(!aa, "TagValues argument missing\n"); - s->tag_values_str = aa; + if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagValues argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagValues require an index\n"); + if (s->tag_values) { + for (; s->tag_values[last]; ++last); + } + if (pos < last) { + s->tag_values[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_values, "", pa); + SET_NEXT(s->tag_values, (aa), pa); + } + } else { + TRY(!aa, "TagValues argument missing\n"); + s->tag_values_str = aa; + } } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { - TRY(!aa, "Tags argument missing\n"); - s->tags_str = aa; + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Tags argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Tags require an index\n"); + if (s->tags) { + for (; s->tags[last]; ++last); + } + if (pos < last) { + s->tags[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tags, "", pa); + SET_NEXT(s->tags, (aa), pa); + } + } else { + TRY(!aa, "Tags argument missing\n"); + s->tags_str = aa; + } } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else - if ((aret = argcmp(str, "VmCounts")) == 0 || aret == '=') { - TRY(!aa, "VmCounts argument missing\n"); - s->vm_counts_str = aa; + if ((aret = strcmp(str, "VmCounts")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmCounts argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmCounts require an index\n"); + if (s->vm_counts) { + for (; s->vm_counts[last]; ++last); + } + if (pos < last) { + s->vm_counts[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_counts, 0, pa); + SET_NEXT(s->vm_counts, atoi(aa), pa); + } + } else { + TRY(!aa, "VmCounts argument missing\n"); + s->vm_counts_str = aa; + } } else if (!(aret = strcmp(str, "VmCounts[]")) || aret == '=') { TRY(!aa, "VmCounts[] argument missing\n"); SET_NEXT(s->vm_counts, atoi(aa), pa); } else - if ((aret = argcmp(str, "VmGroupIds")) == 0 || aret == '=') { - TRY(!aa, "VmGroupIds argument missing\n"); - s->vm_group_ids_str = aa; + if ((aret = strcmp(str, "VmGroupIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmGroupIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmGroupIds require an index\n"); + if (s->vm_group_ids) { + for (; s->vm_group_ids[last]; ++last); + } + if (pos < last) { + s->vm_group_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_group_ids, "", pa); + SET_NEXT(s->vm_group_ids, (aa), pa); + } + } else { + TRY(!aa, "VmGroupIds argument missing\n"); + s->vm_group_ids_str = aa; + } } else if (!(aret = strcmp(str, "VmGroupIds[]")) || aret == '=') { TRY(!aa, "VmGroupIds[] argument missing\n"); SET_NEXT(s->vm_group_ids, (aa), pa); } else - if ((aret = argcmp(str, "VmGroupNames")) == 0 || aret == '=') { - TRY(!aa, "VmGroupNames argument missing\n"); - s->vm_group_names_str = aa; + if ((aret = strcmp(str, "VmGroupNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmGroupNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmGroupNames require an index\n"); + if (s->vm_group_names) { + for (; s->vm_group_names[last]; ++last); + } + if (pos < last) { + s->vm_group_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_group_names, "", pa); + SET_NEXT(s->vm_group_names, (aa), pa); + } + } else { + TRY(!aa, "VmGroupNames argument missing\n"); + s->vm_group_names_str = aa; + } } else if (!(aret = strcmp(str, "VmGroupNames[]")) || aret == '=') { TRY(!aa, "VmGroupNames[] argument missing\n"); SET_NEXT(s->vm_group_names, (aa), pa); } else - if ((aret = argcmp(str, "VmTemplateIds")) == 0 || aret == '=') { - TRY(!aa, "VmTemplateIds argument missing\n"); - s->vm_template_ids_str = aa; + if ((aret = strcmp(str, "VmTemplateIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmTemplateIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmTemplateIds require an index\n"); + if (s->vm_template_ids) { + for (; s->vm_template_ids[last]; ++last); + } + if (pos < last) { + s->vm_template_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_template_ids, "", pa); + SET_NEXT(s->vm_template_ids, (aa), pa); + } + } else { + TRY(!aa, "VmTemplateIds argument missing\n"); + s->vm_template_ids_str = aa; + } } else if (!(aret = strcmp(str, "VmTemplateIds[]")) || aret == '=') { TRY(!aa, "VmTemplateIds[] argument missing\n"); SET_NEXT(s->vm_template_ids, (aa), pa); @@ -4309,86 +10861,338 @@ int filters_vm_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa int filters_vm_template_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_vm_template *s = v_s; int aret = 0; - if ((aret = argcmp(str, "CpuCores")) == 0 || aret == '=') { - TRY(!aa, "CpuCores argument missing\n"); - s->cpu_cores_str = aa; + if ((aret = strcmp(str, "CpuCores")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "CpuCores argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "CpuCores require an index\n"); + if (s->cpu_cores) { + for (; s->cpu_cores[last]; ++last); + } + if (pos < last) { + s->cpu_cores[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->cpu_cores, 0, pa); + SET_NEXT(s->cpu_cores, atoi(aa), pa); + } + } else { + TRY(!aa, "CpuCores argument missing\n"); + s->cpu_cores_str = aa; + } } else if (!(aret = strcmp(str, "CpuCores[]")) || aret == '=') { TRY(!aa, "CpuCores[] argument missing\n"); SET_NEXT(s->cpu_cores, atoi(aa), pa); } else - if ((aret = argcmp(str, "CpuGenerations")) == 0 || aret == '=') { - TRY(!aa, "CpuGenerations argument missing\n"); - s->cpu_generations_str = aa; + if ((aret = strcmp(str, "CpuGenerations")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "CpuGenerations argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "CpuGenerations require an index\n"); + if (s->cpu_generations) { + for (; s->cpu_generations[last]; ++last); + } + if (pos < last) { + s->cpu_generations[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->cpu_generations, "", pa); + SET_NEXT(s->cpu_generations, (aa), pa); + } + } else { + TRY(!aa, "CpuGenerations argument missing\n"); + s->cpu_generations_str = aa; + } } else if (!(aret = strcmp(str, "CpuGenerations[]")) || aret == '=') { TRY(!aa, "CpuGenerations[] argument missing\n"); SET_NEXT(s->cpu_generations, (aa), pa); } else - if ((aret = argcmp(str, "CpuPerformances")) == 0 || aret == '=') { - TRY(!aa, "CpuPerformances argument missing\n"); - s->cpu_performances_str = aa; + if ((aret = strcmp(str, "CpuPerformances")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "CpuPerformances argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "CpuPerformances require an index\n"); + if (s->cpu_performances) { + for (; s->cpu_performances[last]; ++last); + } + if (pos < last) { + s->cpu_performances[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->cpu_performances, "", pa); + SET_NEXT(s->cpu_performances, (aa), pa); + } + } else { + TRY(!aa, "CpuPerformances argument missing\n"); + s->cpu_performances_str = aa; + } } else if (!(aret = strcmp(str, "CpuPerformances[]")) || aret == '=') { TRY(!aa, "CpuPerformances[] argument missing\n"); SET_NEXT(s->cpu_performances, (aa), pa); } else - if ((aret = argcmp(str, "Descriptions")) == 0 || aret == '=') { - TRY(!aa, "Descriptions argument missing\n"); - s->descriptions_str = aa; + if ((aret = strcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Descriptions argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Descriptions require an index\n"); + if (s->descriptions) { + for (; s->descriptions[last]; ++last); + } + if (pos < last) { + s->descriptions[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->descriptions, "", pa); + SET_NEXT(s->descriptions, (aa), pa); + } + } else { + TRY(!aa, "Descriptions argument missing\n"); + s->descriptions_str = aa; + } } else if (!(aret = strcmp(str, "Descriptions[]")) || aret == '=') { TRY(!aa, "Descriptions[] argument missing\n"); SET_NEXT(s->descriptions, (aa), pa); } else - if ((aret = argcmp(str, "ImageIds")) == 0 || aret == '=') { - TRY(!aa, "ImageIds argument missing\n"); - s->image_ids_str = aa; + if ((aret = strcmp(str, "ImageIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ImageIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ImageIds require an index\n"); + if (s->image_ids) { + for (; s->image_ids[last]; ++last); + } + if (pos < last) { + s->image_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->image_ids, "", pa); + SET_NEXT(s->image_ids, (aa), pa); + } + } else { + TRY(!aa, "ImageIds argument missing\n"); + s->image_ids_str = aa; + } } else if (!(aret = strcmp(str, "ImageIds[]")) || aret == '=') { TRY(!aa, "ImageIds[] argument missing\n"); SET_NEXT(s->image_ids, (aa), pa); } else - if ((aret = argcmp(str, "KeypairNames")) == 0 || aret == '=') { - TRY(!aa, "KeypairNames argument missing\n"); - s->keypair_names_str = aa; + if ((aret = strcmp(str, "KeypairNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "KeypairNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "KeypairNames require an index\n"); + if (s->keypair_names) { + for (; s->keypair_names[last]; ++last); + } + if (pos < last) { + s->keypair_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->keypair_names, "", pa); + SET_NEXT(s->keypair_names, (aa), pa); + } + } else { + TRY(!aa, "KeypairNames argument missing\n"); + s->keypair_names_str = aa; + } } else if (!(aret = strcmp(str, "KeypairNames[]")) || aret == '=') { TRY(!aa, "KeypairNames[] argument missing\n"); SET_NEXT(s->keypair_names, (aa), pa); } else - if ((aret = argcmp(str, "Rams")) == 0 || aret == '=') { - TRY(!aa, "Rams argument missing\n"); - s->rams_str = aa; + if ((aret = strcmp(str, "Rams")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Rams argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Rams require an index\n"); + if (s->rams) { + for (; s->rams[last]; ++last); + } + if (pos < last) { + s->rams[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->rams, 0, pa); + SET_NEXT(s->rams, atoi(aa), pa); + } + } else { + TRY(!aa, "Rams argument missing\n"); + s->rams_str = aa; + } } else if (!(aret = strcmp(str, "Rams[]")) || aret == '=') { TRY(!aa, "Rams[] argument missing\n"); SET_NEXT(s->rams, atoi(aa), pa); } else - if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=') { - TRY(!aa, "TagKeys argument missing\n"); - s->tag_keys_str = aa; + if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagKeys argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagKeys require an index\n"); + if (s->tag_keys) { + for (; s->tag_keys[last]; ++last); + } + if (pos < last) { + s->tag_keys[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_keys, "", pa); + SET_NEXT(s->tag_keys, (aa), pa); + } + } else { + TRY(!aa, "TagKeys argument missing\n"); + s->tag_keys_str = aa; + } } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=') { - TRY(!aa, "TagValues argument missing\n"); - s->tag_values_str = aa; + if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagValues argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagValues require an index\n"); + if (s->tag_values) { + for (; s->tag_values[last]; ++last); + } + if (pos < last) { + s->tag_values[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_values, "", pa); + SET_NEXT(s->tag_values, (aa), pa); + } + } else { + TRY(!aa, "TagValues argument missing\n"); + s->tag_values_str = aa; + } } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { - TRY(!aa, "Tags argument missing\n"); - s->tags_str = aa; + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Tags argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Tags require an index\n"); + if (s->tags) { + for (; s->tags[last]; ++last); + } + if (pos < last) { + s->tags[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tags, "", pa); + SET_NEXT(s->tags, (aa), pa); + } + } else { + TRY(!aa, "Tags argument missing\n"); + s->tags_str = aa; + } } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else - if ((aret = argcmp(str, "VmTemplateIds")) == 0 || aret == '=') { - TRY(!aa, "VmTemplateIds argument missing\n"); - s->vm_template_ids_str = aa; + if ((aret = strcmp(str, "VmTemplateIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmTemplateIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmTemplateIds require an index\n"); + if (s->vm_template_ids) { + for (; s->vm_template_ids[last]; ++last); + } + if (pos < last) { + s->vm_template_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_template_ids, "", pa); + SET_NEXT(s->vm_template_ids, (aa), pa); + } + } else { + TRY(!aa, "VmTemplateIds argument missing\n"); + s->vm_template_ids_str = aa; + } } else if (!(aret = strcmp(str, "VmTemplateIds[]")) || aret == '=') { TRY(!aa, "VmTemplateIds[] argument missing\n"); SET_NEXT(s->vm_template_ids, (aa), pa); } else - if ((aret = argcmp(str, "VmTemplateNames")) == 0 || aret == '=') { - TRY(!aa, "VmTemplateNames argument missing\n"); - s->vm_template_names_str = aa; + if ((aret = strcmp(str, "VmTemplateNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmTemplateNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmTemplateNames require an index\n"); + if (s->vm_template_names) { + for (; s->vm_template_names[last]; ++last); + } + if (pos < last) { + s->vm_template_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_template_names, "", pa); + SET_NEXT(s->vm_template_names, (aa), pa); + } + } else { + TRY(!aa, "VmTemplateNames argument missing\n"); + s->vm_template_names_str = aa; + } } else if (!(aret = strcmp(str, "VmTemplateNames[]")) || aret == '=') { TRY(!aa, "VmTemplateNames[] argument missing\n"); SET_NEXT(s->vm_template_names, (aa), pa); @@ -4403,7 +11207,7 @@ int filters_vm_template_parser(void *v_s, char *str, char *aa, struct ptr_array int filters_vm_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_vm_type *s = v_s; int aret = 0; - if ((aret = argcmp(str, "BsuOptimized")) == 0 || aret == '=') { + if ((aret = strcmp(str, "BsuOptimized")) == 0 || aret == '=' || aret == '.') { s->is_set_bsu_optimized = 1; if (!aa || !strcasecmp(aa, "true")) { s->bsu_optimized = 1; @@ -4413,58 +11217,226 @@ int filters_vm_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) BAD_RET("BsuOptimized require true/false\n"); } } else - if ((aret = argcmp(str, "EphemeralsTypes")) == 0 || aret == '=') { - TRY(!aa, "EphemeralsTypes argument missing\n"); - s->ephemerals_types_str = aa; + if ((aret = strcmp(str, "EphemeralsTypes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "EphemeralsTypes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "EphemeralsTypes require an index\n"); + if (s->ephemerals_types) { + for (; s->ephemerals_types[last]; ++last); + } + if (pos < last) { + s->ephemerals_types[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->ephemerals_types, "", pa); + SET_NEXT(s->ephemerals_types, (aa), pa); + } + } else { + TRY(!aa, "EphemeralsTypes argument missing\n"); + s->ephemerals_types_str = aa; + } } else if (!(aret = strcmp(str, "EphemeralsTypes[]")) || aret == '=') { TRY(!aa, "EphemeralsTypes[] argument missing\n"); SET_NEXT(s->ephemerals_types, (aa), pa); } else - if ((aret = argcmp(str, "Eths")) == 0 || aret == '=') { - TRY(!aa, "Eths argument missing\n"); - s->eths_str = aa; + if ((aret = strcmp(str, "Eths")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Eths argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Eths require an index\n"); + if (s->eths) { + for (; s->eths[last]; ++last); + } + if (pos < last) { + s->eths[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->eths, 0, pa); + SET_NEXT(s->eths, atoi(aa), pa); + } + } else { + TRY(!aa, "Eths argument missing\n"); + s->eths_str = aa; + } } else if (!(aret = strcmp(str, "Eths[]")) || aret == '=') { TRY(!aa, "Eths[] argument missing\n"); SET_NEXT(s->eths, atoi(aa), pa); } else - if ((aret = argcmp(str, "Gpus")) == 0 || aret == '=') { - TRY(!aa, "Gpus argument missing\n"); - s->gpus_str = aa; + if ((aret = strcmp(str, "Gpus")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Gpus argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Gpus require an index\n"); + if (s->gpus) { + for (; s->gpus[last]; ++last); + } + if (pos < last) { + s->gpus[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->gpus, 0, pa); + SET_NEXT(s->gpus, atoi(aa), pa); + } + } else { + TRY(!aa, "Gpus argument missing\n"); + s->gpus_str = aa; + } } else if (!(aret = strcmp(str, "Gpus[]")) || aret == '=') { TRY(!aa, "Gpus[] argument missing\n"); SET_NEXT(s->gpus, atoi(aa), pa); } else - if ((aret = argcmp(str, "MemorySizes")) == 0 || aret == '=') { - TRY(!aa, "MemorySizes argument missing\n"); - s->memory_sizes_str = aa; + if ((aret = strcmp(str, "MemorySizes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "MemorySizes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "MemorySizes require an index\n"); + if (s->memory_sizes) { + for (; s->memory_sizes[last]; ++last); + } + if (pos < last) { + s->memory_sizes[pos] = atof(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->memory_sizes, 0.0, pa); + SET_NEXT(s->memory_sizes, atof(aa), pa); + } + } else { + TRY(!aa, "MemorySizes argument missing\n"); + s->memory_sizes_str = aa; + } } else if (!(aret = strcmp(str, "MemorySizes[]")) || aret == '=') { TRY(!aa, "MemorySizes[] argument missing\n"); SET_NEXT(s->memory_sizes, atof(aa), pa); } else - if ((aret = argcmp(str, "VcoreCounts")) == 0 || aret == '=') { - TRY(!aa, "VcoreCounts argument missing\n"); - s->vcore_counts_str = aa; + if ((aret = strcmp(str, "VcoreCounts")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VcoreCounts argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VcoreCounts require an index\n"); + if (s->vcore_counts) { + for (; s->vcore_counts[last]; ++last); + } + if (pos < last) { + s->vcore_counts[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vcore_counts, 0, pa); + SET_NEXT(s->vcore_counts, atoi(aa), pa); + } + } else { + TRY(!aa, "VcoreCounts argument missing\n"); + s->vcore_counts_str = aa; + } } else if (!(aret = strcmp(str, "VcoreCounts[]")) || aret == '=') { TRY(!aa, "VcoreCounts[] argument missing\n"); SET_NEXT(s->vcore_counts, atoi(aa), pa); } else - if ((aret = argcmp(str, "VmTypeNames")) == 0 || aret == '=') { - TRY(!aa, "VmTypeNames argument missing\n"); - s->vm_type_names_str = aa; + if ((aret = strcmp(str, "VmTypeNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmTypeNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmTypeNames require an index\n"); + if (s->vm_type_names) { + for (; s->vm_type_names[last]; ++last); + } + if (pos < last) { + s->vm_type_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_type_names, "", pa); + SET_NEXT(s->vm_type_names, (aa), pa); + } + } else { + TRY(!aa, "VmTypeNames argument missing\n"); + s->vm_type_names_str = aa; + } } else if (!(aret = strcmp(str, "VmTypeNames[]")) || aret == '=') { TRY(!aa, "VmTypeNames[] argument missing\n"); SET_NEXT(s->vm_type_names, (aa), pa); } else - if ((aret = argcmp(str, "VolumeCounts")) == 0 || aret == '=') { - TRY(!aa, "VolumeCounts argument missing\n"); - s->volume_counts_str = aa; + if ((aret = strcmp(str, "VolumeCounts")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VolumeCounts argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VolumeCounts require an index\n"); + if (s->volume_counts) { + for (; s->volume_counts[last]; ++last); + } + if (pos < last) { + s->volume_counts[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->volume_counts, 0, pa); + SET_NEXT(s->volume_counts, atoi(aa), pa); + } + } else { + TRY(!aa, "VolumeCounts argument missing\n"); + s->volume_counts_str = aa; + } } else if (!(aret = strcmp(str, "VolumeCounts[]")) || aret == '=') { TRY(!aa, "VolumeCounts[] argument missing\n"); SET_NEXT(s->volume_counts, atoi(aa), pa); } else - if ((aret = argcmp(str, "VolumeSizes")) == 0 || aret == '=') { - TRY(!aa, "VolumeSizes argument missing\n"); - s->volume_sizes_str = aa; + if ((aret = strcmp(str, "VolumeSizes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VolumeSizes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VolumeSizes require an index\n"); + if (s->volume_sizes) { + for (; s->volume_sizes[last]; ++last); + } + if (pos < last) { + s->volume_sizes[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->volume_sizes, 0, pa); + SET_NEXT(s->volume_sizes, atoi(aa), pa); + } + } else { + TRY(!aa, "VolumeSizes argument missing\n"); + s->volume_sizes_str = aa; + } } else if (!(aret = strcmp(str, "VolumeSizes[]")) || aret == '=') { TRY(!aa, "VolumeSizes[] argument missing\n"); SET_NEXT(s->volume_sizes, atoi(aa), pa); @@ -4479,51 +11451,198 @@ int filters_vm_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int filters_vms_state_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_vms_state *s = v_s; int aret = 0; - if ((aret = argcmp(str, "MaintenanceEventCodes")) == 0 || aret == '=') { - TRY(!aa, "MaintenanceEventCodes argument missing\n"); - s->maintenance_event_codes_str = aa; + if ((aret = strcmp(str, "MaintenanceEventCodes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "MaintenanceEventCodes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "MaintenanceEventCodes require an index\n"); + if (s->maintenance_event_codes) { + for (; s->maintenance_event_codes[last]; ++last); + } + if (pos < last) { + s->maintenance_event_codes[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->maintenance_event_codes, "", pa); + SET_NEXT(s->maintenance_event_codes, (aa), pa); + } + } else { + TRY(!aa, "MaintenanceEventCodes argument missing\n"); + s->maintenance_event_codes_str = aa; + } } else if (!(aret = strcmp(str, "MaintenanceEventCodes[]")) || aret == '=') { TRY(!aa, "MaintenanceEventCodes[] argument missing\n"); SET_NEXT(s->maintenance_event_codes, (aa), pa); } else - if ((aret = argcmp(str, "MaintenanceEventDescriptions")) == 0 || aret == '=') { - TRY(!aa, "MaintenanceEventDescriptions argument missing\n"); - s->maintenance_event_descriptions_str = aa; + if ((aret = strcmp(str, "MaintenanceEventDescriptions")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "MaintenanceEventDescriptions argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "MaintenanceEventDescriptions require an index\n"); + if (s->maintenance_event_descriptions) { + for (; s->maintenance_event_descriptions[last]; ++last); + } + if (pos < last) { + s->maintenance_event_descriptions[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->maintenance_event_descriptions, "", pa); + SET_NEXT(s->maintenance_event_descriptions, (aa), pa); + } + } else { + TRY(!aa, "MaintenanceEventDescriptions argument missing\n"); + s->maintenance_event_descriptions_str = aa; + } } else if (!(aret = strcmp(str, "MaintenanceEventDescriptions[]")) || aret == '=') { TRY(!aa, "MaintenanceEventDescriptions[] argument missing\n"); SET_NEXT(s->maintenance_event_descriptions, (aa), pa); } else - if ((aret = argcmp(str, "MaintenanceEventsNotAfter")) == 0 || aret == '=') { - TRY(!aa, "MaintenanceEventsNotAfter argument missing\n"); - s->maintenance_events_not_after_str = aa; + if ((aret = strcmp(str, "MaintenanceEventsNotAfter")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "MaintenanceEventsNotAfter argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "MaintenanceEventsNotAfter require an index\n"); + if (s->maintenance_events_not_after) { + for (; s->maintenance_events_not_after[last]; ++last); + } + if (pos < last) { + s->maintenance_events_not_after[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->maintenance_events_not_after, "", pa); + SET_NEXT(s->maintenance_events_not_after, (aa), pa); + } + } else { + TRY(!aa, "MaintenanceEventsNotAfter argument missing\n"); + s->maintenance_events_not_after_str = aa; + } } else if (!(aret = strcmp(str, "MaintenanceEventsNotAfter[]")) || aret == '=') { TRY(!aa, "MaintenanceEventsNotAfter[] argument missing\n"); SET_NEXT(s->maintenance_events_not_after, (aa), pa); } else - if ((aret = argcmp(str, "MaintenanceEventsNotBefore")) == 0 || aret == '=') { - TRY(!aa, "MaintenanceEventsNotBefore argument missing\n"); - s->maintenance_events_not_before_str = aa; + if ((aret = strcmp(str, "MaintenanceEventsNotBefore")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "MaintenanceEventsNotBefore argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "MaintenanceEventsNotBefore require an index\n"); + if (s->maintenance_events_not_before) { + for (; s->maintenance_events_not_before[last]; ++last); + } + if (pos < last) { + s->maintenance_events_not_before[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->maintenance_events_not_before, "", pa); + SET_NEXT(s->maintenance_events_not_before, (aa), pa); + } + } else { + TRY(!aa, "MaintenanceEventsNotBefore argument missing\n"); + s->maintenance_events_not_before_str = aa; + } } else if (!(aret = strcmp(str, "MaintenanceEventsNotBefore[]")) || aret == '=') { TRY(!aa, "MaintenanceEventsNotBefore[] argument missing\n"); SET_NEXT(s->maintenance_events_not_before, (aa), pa); } else - if ((aret = argcmp(str, "SubregionNames")) == 0 || aret == '=') { - TRY(!aa, "SubregionNames argument missing\n"); - s->subregion_names_str = aa; + if ((aret = strcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SubregionNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SubregionNames require an index\n"); + if (s->subregion_names) { + for (; s->subregion_names[last]; ++last); + } + if (pos < last) { + s->subregion_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->subregion_names, "", pa); + SET_NEXT(s->subregion_names, (aa), pa); + } + } else { + TRY(!aa, "SubregionNames argument missing\n"); + s->subregion_names_str = aa; + } } else if (!(aret = strcmp(str, "SubregionNames[]")) || aret == '=') { TRY(!aa, "SubregionNames[] argument missing\n"); SET_NEXT(s->subregion_names, (aa), pa); } else - if ((aret = argcmp(str, "VmIds")) == 0 || aret == '=') { - TRY(!aa, "VmIds argument missing\n"); - s->vm_ids_str = aa; + if ((aret = strcmp(str, "VmIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmIds require an index\n"); + if (s->vm_ids) { + for (; s->vm_ids[last]; ++last); + } + if (pos < last) { + s->vm_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_ids, "", pa); + SET_NEXT(s->vm_ids, (aa), pa); + } + } else { + TRY(!aa, "VmIds argument missing\n"); + s->vm_ids_str = aa; + } } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); } else - if ((aret = argcmp(str, "VmStates")) == 0 || aret == '=') { - TRY(!aa, "VmStates argument missing\n"); - s->vm_states_str = aa; + if ((aret = strcmp(str, "VmStates")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmStates argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmStates require an index\n"); + if (s->vm_states) { + for (; s->vm_states[last]; ++last); + } + if (pos < last) { + s->vm_states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_states, "", pa); + SET_NEXT(s->vm_states, (aa), pa); + } + } else { + TRY(!aa, "VmStates argument missing\n"); + s->vm_states_str = aa; + } } else if (!(aret = strcmp(str, "VmStates[]")) || aret == '=') { TRY(!aa, "VmStates[] argument missing\n"); SET_NEXT(s->vm_states, (aa), pa); @@ -4538,14 +11657,35 @@ int filters_vms_state_parser(void *v_s, char *str, char *aa, struct ptr_array *p int filters_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_volume *s = v_s; int aret = 0; - if ((aret = argcmp(str, "CreationDates")) == 0 || aret == '=') { - TRY(!aa, "CreationDates argument missing\n"); - s->creation_dates_str = aa; + if ((aret = strcmp(str, "CreationDates")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "CreationDates argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "CreationDates require an index\n"); + if (s->creation_dates) { + for (; s->creation_dates[last]; ++last); + } + if (pos < last) { + s->creation_dates[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->creation_dates, "", pa); + SET_NEXT(s->creation_dates, (aa), pa); + } + } else { + TRY(!aa, "CreationDates argument missing\n"); + s->creation_dates_str = aa; + } } else if (!(aret = strcmp(str, "CreationDates[]")) || aret == '=') { TRY(!aa, "CreationDates[] argument missing\n"); SET_NEXT(s->creation_dates, (aa), pa); } else - if ((aret = argcmp(str, "LinkVolumeDeleteOnVmDeletion")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LinkVolumeDeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_link_volume_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->link_volume_delete_on_vm_deletion = 1; @@ -4555,93 +11695,366 @@ int filters_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) BAD_RET("LinkVolumeDeleteOnVmDeletion require true/false\n"); } } else - if ((aret = argcmp(str, "LinkVolumeDeviceNames")) == 0 || aret == '=') { - TRY(!aa, "LinkVolumeDeviceNames argument missing\n"); - s->link_volume_device_names_str = aa; + if ((aret = strcmp(str, "LinkVolumeDeviceNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LinkVolumeDeviceNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LinkVolumeDeviceNames require an index\n"); + if (s->link_volume_device_names) { + for (; s->link_volume_device_names[last]; ++last); + } + if (pos < last) { + s->link_volume_device_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->link_volume_device_names, "", pa); + SET_NEXT(s->link_volume_device_names, (aa), pa); + } + } else { + TRY(!aa, "LinkVolumeDeviceNames argument missing\n"); + s->link_volume_device_names_str = aa; + } } else if (!(aret = strcmp(str, "LinkVolumeDeviceNames[]")) || aret == '=') { TRY(!aa, "LinkVolumeDeviceNames[] argument missing\n"); SET_NEXT(s->link_volume_device_names, (aa), pa); } else - if ((aret = argcmp(str, "LinkVolumeLinkDates")) == 0 || aret == '=') { - TRY(!aa, "LinkVolumeLinkDates argument missing\n"); - s->link_volume_link_dates_str = aa; + if ((aret = strcmp(str, "LinkVolumeLinkDates")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LinkVolumeLinkDates argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LinkVolumeLinkDates require an index\n"); + if (s->link_volume_link_dates) { + for (; s->link_volume_link_dates[last]; ++last); + } + if (pos < last) { + s->link_volume_link_dates[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->link_volume_link_dates, "", pa); + SET_NEXT(s->link_volume_link_dates, (aa), pa); + } + } else { + TRY(!aa, "LinkVolumeLinkDates argument missing\n"); + s->link_volume_link_dates_str = aa; + } } else if (!(aret = strcmp(str, "LinkVolumeLinkDates[]")) || aret == '=') { TRY(!aa, "LinkVolumeLinkDates[] argument missing\n"); SET_NEXT(s->link_volume_link_dates, (aa), pa); } else - if ((aret = argcmp(str, "LinkVolumeLinkStates")) == 0 || aret == '=') { - TRY(!aa, "LinkVolumeLinkStates argument missing\n"); - s->link_volume_link_states_str = aa; + if ((aret = strcmp(str, "LinkVolumeLinkStates")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LinkVolumeLinkStates argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LinkVolumeLinkStates require an index\n"); + if (s->link_volume_link_states) { + for (; s->link_volume_link_states[last]; ++last); + } + if (pos < last) { + s->link_volume_link_states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->link_volume_link_states, "", pa); + SET_NEXT(s->link_volume_link_states, (aa), pa); + } + } else { + TRY(!aa, "LinkVolumeLinkStates argument missing\n"); + s->link_volume_link_states_str = aa; + } } else if (!(aret = strcmp(str, "LinkVolumeLinkStates[]")) || aret == '=') { TRY(!aa, "LinkVolumeLinkStates[] argument missing\n"); SET_NEXT(s->link_volume_link_states, (aa), pa); } else - if ((aret = argcmp(str, "LinkVolumeVmIds")) == 0 || aret == '=') { - TRY(!aa, "LinkVolumeVmIds argument missing\n"); - s->link_volume_vm_ids_str = aa; + if ((aret = strcmp(str, "LinkVolumeVmIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LinkVolumeVmIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LinkVolumeVmIds require an index\n"); + if (s->link_volume_vm_ids) { + for (; s->link_volume_vm_ids[last]; ++last); + } + if (pos < last) { + s->link_volume_vm_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->link_volume_vm_ids, "", pa); + SET_NEXT(s->link_volume_vm_ids, (aa), pa); + } + } else { + TRY(!aa, "LinkVolumeVmIds argument missing\n"); + s->link_volume_vm_ids_str = aa; + } } else if (!(aret = strcmp(str, "LinkVolumeVmIds[]")) || aret == '=') { TRY(!aa, "LinkVolumeVmIds[] argument missing\n"); SET_NEXT(s->link_volume_vm_ids, (aa), pa); } else - if ((aret = argcmp(str, "SnapshotIds")) == 0 || aret == '=') { - TRY(!aa, "SnapshotIds argument missing\n"); - s->snapshot_ids_str = aa; + if ((aret = strcmp(str, "SnapshotIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SnapshotIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SnapshotIds require an index\n"); + if (s->snapshot_ids) { + for (; s->snapshot_ids[last]; ++last); + } + if (pos < last) { + s->snapshot_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->snapshot_ids, "", pa); + SET_NEXT(s->snapshot_ids, (aa), pa); + } + } else { + TRY(!aa, "SnapshotIds argument missing\n"); + s->snapshot_ids_str = aa; + } } else if (!(aret = strcmp(str, "SnapshotIds[]")) || aret == '=') { TRY(!aa, "SnapshotIds[] argument missing\n"); SET_NEXT(s->snapshot_ids, (aa), pa); } else - if ((aret = argcmp(str, "SubregionNames")) == 0 || aret == '=') { - TRY(!aa, "SubregionNames argument missing\n"); - s->subregion_names_str = aa; + if ((aret = strcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SubregionNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SubregionNames require an index\n"); + if (s->subregion_names) { + for (; s->subregion_names[last]; ++last); + } + if (pos < last) { + s->subregion_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->subregion_names, "", pa); + SET_NEXT(s->subregion_names, (aa), pa); + } + } else { + TRY(!aa, "SubregionNames argument missing\n"); + s->subregion_names_str = aa; + } } else if (!(aret = strcmp(str, "SubregionNames[]")) || aret == '=') { TRY(!aa, "SubregionNames[] argument missing\n"); SET_NEXT(s->subregion_names, (aa), pa); } else - if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=') { - TRY(!aa, "TagKeys argument missing\n"); - s->tag_keys_str = aa; + if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagKeys argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagKeys require an index\n"); + if (s->tag_keys) { + for (; s->tag_keys[last]; ++last); + } + if (pos < last) { + s->tag_keys[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_keys, "", pa); + SET_NEXT(s->tag_keys, (aa), pa); + } + } else { + TRY(!aa, "TagKeys argument missing\n"); + s->tag_keys_str = aa; + } } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=') { - TRY(!aa, "TagValues argument missing\n"); - s->tag_values_str = aa; + if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagValues argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagValues require an index\n"); + if (s->tag_values) { + for (; s->tag_values[last]; ++last); + } + if (pos < last) { + s->tag_values[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_values, "", pa); + SET_NEXT(s->tag_values, (aa), pa); + } + } else { + TRY(!aa, "TagValues argument missing\n"); + s->tag_values_str = aa; + } } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { - TRY(!aa, "Tags argument missing\n"); - s->tags_str = aa; + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Tags argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Tags require an index\n"); + if (s->tags) { + for (; s->tags[last]; ++last); + } + if (pos < last) { + s->tags[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tags, "", pa); + SET_NEXT(s->tags, (aa), pa); + } + } else { + TRY(!aa, "Tags argument missing\n"); + s->tags_str = aa; + } } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else - if ((aret = argcmp(str, "VolumeIds")) == 0 || aret == '=') { - TRY(!aa, "VolumeIds argument missing\n"); - s->volume_ids_str = aa; + if ((aret = strcmp(str, "VolumeIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VolumeIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VolumeIds require an index\n"); + if (s->volume_ids) { + for (; s->volume_ids[last]; ++last); + } + if (pos < last) { + s->volume_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->volume_ids, "", pa); + SET_NEXT(s->volume_ids, (aa), pa); + } + } else { + TRY(!aa, "VolumeIds argument missing\n"); + s->volume_ids_str = aa; + } } else if (!(aret = strcmp(str, "VolumeIds[]")) || aret == '=') { TRY(!aa, "VolumeIds[] argument missing\n"); SET_NEXT(s->volume_ids, (aa), pa); } else - if ((aret = argcmp(str, "VolumeSizes")) == 0 || aret == '=') { - TRY(!aa, "VolumeSizes argument missing\n"); - s->volume_sizes_str = aa; + if ((aret = strcmp(str, "VolumeSizes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VolumeSizes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VolumeSizes require an index\n"); + if (s->volume_sizes) { + for (; s->volume_sizes[last]; ++last); + } + if (pos < last) { + s->volume_sizes[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->volume_sizes, 0, pa); + SET_NEXT(s->volume_sizes, atoi(aa), pa); + } + } else { + TRY(!aa, "VolumeSizes argument missing\n"); + s->volume_sizes_str = aa; + } } else if (!(aret = strcmp(str, "VolumeSizes[]")) || aret == '=') { TRY(!aa, "VolumeSizes[] argument missing\n"); SET_NEXT(s->volume_sizes, atoi(aa), pa); } else - if ((aret = argcmp(str, "VolumeStates")) == 0 || aret == '=') { - TRY(!aa, "VolumeStates argument missing\n"); - s->volume_states_str = aa; + if ((aret = strcmp(str, "VolumeStates")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VolumeStates argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VolumeStates require an index\n"); + if (s->volume_states) { + for (; s->volume_states[last]; ++last); + } + if (pos < last) { + s->volume_states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->volume_states, "", pa); + SET_NEXT(s->volume_states, (aa), pa); + } + } else { + TRY(!aa, "VolumeStates argument missing\n"); + s->volume_states_str = aa; + } } else if (!(aret = strcmp(str, "VolumeStates[]")) || aret == '=') { TRY(!aa, "VolumeStates[] argument missing\n"); SET_NEXT(s->volume_states, (aa), pa); } else - if ((aret = argcmp(str, "VolumeTypes")) == 0 || aret == '=') { - TRY(!aa, "VolumeTypes argument missing\n"); - s->volume_types_str = aa; + if ((aret = strcmp(str, "VolumeTypes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VolumeTypes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VolumeTypes require an index\n"); + if (s->volume_types) { + for (; s->volume_types[last]; ++last); + } + if (pos < last) { + s->volume_types[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->volume_types, "", pa); + SET_NEXT(s->volume_types, (aa), pa); + } + } else { + TRY(!aa, "VolumeTypes argument missing\n"); + s->volume_types_str = aa; + } } else if (!(aret = strcmp(str, "VolumeTypes[]")) || aret == '=') { TRY(!aa, "VolumeTypes[] argument missing\n"); SET_NEXT(s->volume_types, (aa), pa); @@ -4656,42 +12069,147 @@ int filters_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int filters_vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_vpn_connection *s = v_s; int aret = 0; - if ((aret = argcmp(str, "BgpAsns")) == 0 || aret == '=') { - TRY(!aa, "BgpAsns argument missing\n"); - s->bgp_asns_str = aa; + if ((aret = strcmp(str, "BgpAsns")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "BgpAsns argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "BgpAsns require an index\n"); + if (s->bgp_asns) { + for (; s->bgp_asns[last]; ++last); + } + if (pos < last) { + s->bgp_asns[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->bgp_asns, 0, pa); + SET_NEXT(s->bgp_asns, atoi(aa), pa); + } + } else { + TRY(!aa, "BgpAsns argument missing\n"); + s->bgp_asns_str = aa; + } } else if (!(aret = strcmp(str, "BgpAsns[]")) || aret == '=') { TRY(!aa, "BgpAsns[] argument missing\n"); SET_NEXT(s->bgp_asns, atoi(aa), pa); } else - if ((aret = argcmp(str, "ClientGatewayIds")) == 0 || aret == '=') { - TRY(!aa, "ClientGatewayIds argument missing\n"); - s->client_gateway_ids_str = aa; + if ((aret = strcmp(str, "ClientGatewayIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ClientGatewayIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ClientGatewayIds require an index\n"); + if (s->client_gateway_ids) { + for (; s->client_gateway_ids[last]; ++last); + } + if (pos < last) { + s->client_gateway_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->client_gateway_ids, "", pa); + SET_NEXT(s->client_gateway_ids, (aa), pa); + } + } else { + TRY(!aa, "ClientGatewayIds argument missing\n"); + s->client_gateway_ids_str = aa; + } } else if (!(aret = strcmp(str, "ClientGatewayIds[]")) || aret == '=') { TRY(!aa, "ClientGatewayIds[] argument missing\n"); SET_NEXT(s->client_gateway_ids, (aa), pa); } else - if ((aret = argcmp(str, "ConnectionTypes")) == 0 || aret == '=') { - TRY(!aa, "ConnectionTypes argument missing\n"); - s->connection_types_str = aa; + if ((aret = strcmp(str, "ConnectionTypes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ConnectionTypes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ConnectionTypes require an index\n"); + if (s->connection_types) { + for (; s->connection_types[last]; ++last); + } + if (pos < last) { + s->connection_types[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->connection_types, "", pa); + SET_NEXT(s->connection_types, (aa), pa); + } + } else { + TRY(!aa, "ConnectionTypes argument missing\n"); + s->connection_types_str = aa; + } } else if (!(aret = strcmp(str, "ConnectionTypes[]")) || aret == '=') { TRY(!aa, "ConnectionTypes[] argument missing\n"); SET_NEXT(s->connection_types, (aa), pa); } else - if ((aret = argcmp(str, "RouteDestinationIpRanges")) == 0 || aret == '=') { - TRY(!aa, "RouteDestinationIpRanges argument missing\n"); - s->route_destination_ip_ranges_str = aa; + if ((aret = strcmp(str, "RouteDestinationIpRanges")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "RouteDestinationIpRanges argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "RouteDestinationIpRanges require an index\n"); + if (s->route_destination_ip_ranges) { + for (; s->route_destination_ip_ranges[last]; ++last); + } + if (pos < last) { + s->route_destination_ip_ranges[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->route_destination_ip_ranges, "", pa); + SET_NEXT(s->route_destination_ip_ranges, (aa), pa); + } + } else { + TRY(!aa, "RouteDestinationIpRanges argument missing\n"); + s->route_destination_ip_ranges_str = aa; + } } else if (!(aret = strcmp(str, "RouteDestinationIpRanges[]")) || aret == '=') { TRY(!aa, "RouteDestinationIpRanges[] argument missing\n"); SET_NEXT(s->route_destination_ip_ranges, (aa), pa); } else - if ((aret = argcmp(str, "States")) == 0 || aret == '=') { - TRY(!aa, "States argument missing\n"); - s->states_str = aa; + if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "States argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "States require an index\n"); + if (s->states) { + for (; s->states[last]; ++last); + } + if (pos < last) { + s->states[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->states, "", pa); + SET_NEXT(s->states, (aa), pa); + } + } else { + TRY(!aa, "States argument missing\n"); + s->states_str = aa; + } } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = argcmp(str, "StaticRoutesOnly")) == 0 || aret == '=') { + if ((aret = strcmp(str, "StaticRoutesOnly")) == 0 || aret == '=' || aret == '.') { s->is_set_static_routes_only = 1; if (!aa || !strcasecmp(aa, "true")) { s->static_routes_only = 1; @@ -4701,37 +12219,142 @@ int filters_vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_arr BAD_RET("StaticRoutesOnly require true/false\n"); } } else - if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=') { - TRY(!aa, "TagKeys argument missing\n"); - s->tag_keys_str = aa; + if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagKeys argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagKeys require an index\n"); + if (s->tag_keys) { + for (; s->tag_keys[last]; ++last); + } + if (pos < last) { + s->tag_keys[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_keys, "", pa); + SET_NEXT(s->tag_keys, (aa), pa); + } + } else { + TRY(!aa, "TagKeys argument missing\n"); + s->tag_keys_str = aa; + } } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=') { - TRY(!aa, "TagValues argument missing\n"); - s->tag_values_str = aa; + if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "TagValues argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "TagValues require an index\n"); + if (s->tag_values) { + for (; s->tag_values[last]; ++last); + } + if (pos < last) { + s->tag_values[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tag_values, "", pa); + SET_NEXT(s->tag_values, (aa), pa); + } + } else { + TRY(!aa, "TagValues argument missing\n"); + s->tag_values_str = aa; + } } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { - TRY(!aa, "Tags argument missing\n"); - s->tags_str = aa; + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Tags argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Tags require an index\n"); + if (s->tags) { + for (; s->tags[last]; ++last); + } + if (pos < last) { + s->tags[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->tags, "", pa); + SET_NEXT(s->tags, (aa), pa); + } + } else { + TRY(!aa, "Tags argument missing\n"); + s->tags_str = aa; + } } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else - if ((aret = argcmp(str, "VirtualGatewayIds")) == 0 || aret == '=') { - TRY(!aa, "VirtualGatewayIds argument missing\n"); - s->virtual_gateway_ids_str = aa; + if ((aret = strcmp(str, "VirtualGatewayIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VirtualGatewayIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VirtualGatewayIds require an index\n"); + if (s->virtual_gateway_ids) { + for (; s->virtual_gateway_ids[last]; ++last); + } + if (pos < last) { + s->virtual_gateway_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->virtual_gateway_ids, "", pa); + SET_NEXT(s->virtual_gateway_ids, (aa), pa); + } + } else { + TRY(!aa, "VirtualGatewayIds argument missing\n"); + s->virtual_gateway_ids_str = aa; + } } else if (!(aret = strcmp(str, "VirtualGatewayIds[]")) || aret == '=') { TRY(!aa, "VirtualGatewayIds[] argument missing\n"); SET_NEXT(s->virtual_gateway_ids, (aa), pa); } else - if ((aret = argcmp(str, "VpnConnectionIds")) == 0 || aret == '=') { - TRY(!aa, "VpnConnectionIds argument missing\n"); - s->vpn_connection_ids_str = aa; + if ((aret = strcmp(str, "VpnConnectionIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VpnConnectionIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VpnConnectionIds require an index\n"); + if (s->vpn_connection_ids) { + for (; s->vpn_connection_ids[last]; ++last); + } + if (pos < last) { + s->vpn_connection_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vpn_connection_ids, "", pa); + SET_NEXT(s->vpn_connection_ids, (aa), pa); + } + } else { + TRY(!aa, "VpnConnectionIds argument missing\n"); + s->vpn_connection_ids_str = aa; + } } else if (!(aret = strcmp(str, "VpnConnectionIds[]")) || aret == '=') { TRY(!aa, "VpnConnectionIds[] argument missing\n"); SET_NEXT(s->vpn_connection_ids, (aa), pa); @@ -4746,7 +12369,7 @@ int filters_vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_arr int flexible_gpu_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct flexible_gpu *s = v_s; int aret = 0; - if ((aret = argcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->delete_on_vm_deletion = 1; @@ -4756,32 +12379,32 @@ int flexible_gpu_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = argcmp(str, "FlexibleGpuId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "FlexibleGpuId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "FlexibleGpuId argument missing\n"); s->flexible_gpu_id = aa; // string string } else - if ((aret = argcmp(str, "Generation")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Generation")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Generation argument missing\n"); s->generation = aa; // string string } else - if ((aret = argcmp(str, "ModelName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ModelName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ModelName argument missing\n"); s->model_name = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "SubregionName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubregionName argument missing\n"); s->subregion_name = aa; // string string } else - if ((aret = argcmp(str, "VmId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmId argument missing\n"); s->vm_id = aa; // string string @@ -4796,29 +12419,50 @@ int flexible_gpu_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int flexible_gpu_catalog_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct flexible_gpu_catalog *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Generations")) == 0 || aret == '=') { - TRY(!aa, "Generations argument missing\n"); - s->generations_str = aa; + if ((aret = strcmp(str, "Generations")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Generations argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Generations require an index\n"); + if (s->generations) { + for (; s->generations[last]; ++last); + } + if (pos < last) { + s->generations[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->generations, "", pa); + SET_NEXT(s->generations, (aa), pa); + } + } else { + TRY(!aa, "Generations argument missing\n"); + s->generations_str = aa; + } } else if (!(aret = strcmp(str, "Generations[]")) || aret == '=') { TRY(!aa, "Generations[] argument missing\n"); SET_NEXT(s->generations, (aa), pa); } else - if ((aret = argcmp(str, "MaxCpu")) == 0 || aret == '=') { + if ((aret = strcmp(str, "MaxCpu")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "MaxCpu argument missing\n"); s->is_set_max_cpu = 1; s->max_cpu = atoi(aa); } else - if ((aret = argcmp(str, "MaxRam")) == 0 || aret == '=') { + if ((aret = strcmp(str, "MaxRam")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "MaxRam argument missing\n"); s->is_set_max_ram = 1; s->max_ram = atoi(aa); } else - if ((aret = argcmp(str, "ModelName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ModelName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ModelName argument missing\n"); s->model_name = aa; // string string } else - if ((aret = argcmp(str, "VRam")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VRam")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VRam argument missing\n"); s->is_set_vram = 1; s->vram = atoi(aa); @@ -4833,37 +12477,37 @@ int flexible_gpu_catalog_parser(void *v_s, char *str, char *aa, struct ptr_array int health_check_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct health_check *s = v_s; int aret = 0; - if ((aret = argcmp(str, "CheckInterval")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CheckInterval")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CheckInterval argument missing\n"); s->is_set_check_interval = 1; s->check_interval = atoi(aa); } else - if ((aret = argcmp(str, "HealthyThreshold")) == 0 || aret == '=') { + if ((aret = strcmp(str, "HealthyThreshold")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "HealthyThreshold argument missing\n"); s->is_set_healthy_threshold = 1; s->healthy_threshold = atoi(aa); } else - if ((aret = argcmp(str, "Path")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Path")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Path argument missing\n"); s->path = aa; // string string } else - if ((aret = argcmp(str, "Port")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Port")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Port argument missing\n"); s->is_set_port = 1; s->port = atoi(aa); } else - if ((aret = argcmp(str, "Protocol")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Protocol")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Protocol argument missing\n"); s->protocol = aa; // string string } else - if ((aret = argcmp(str, "Timeout")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Timeout")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Timeout argument missing\n"); s->is_set_timeout = 1; s->timeout = atoi(aa); } else - if ((aret = argcmp(str, "UnhealthyThreshold")) == 0 || aret == '=') { + if ((aret = strcmp(str, "UnhealthyThreshold")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "UnhealthyThreshold argument missing\n"); s->is_set_unhealthy_threshold = 1; s->unhealthy_threshold = atoi(aa); @@ -4878,22 +12522,22 @@ int health_check_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct image *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccountAlias")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AccountAlias")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountAlias argument missing\n"); s->account_alias = aa; // string string } else - if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = argcmp(str, "Architecture")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Architecture")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Architecture argument missing\n"); s->architecture = aa; // string string } else - if ((aret = argcmp(str, "BlockDeviceMappings")) == 0 || aret == '=') { + if ((aret = strcmp(str, "BlockDeviceMappings")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -4918,37 +12562,37 @@ int image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->block_device_mappings_str = aa; // array ref BlockDeviceMappingImage ref } } else - if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = argcmp(str, "Description")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = argcmp(str, "FileLocation")) == 0 || aret == '=') { + if ((aret = strcmp(str, "FileLocation")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "FileLocation argument missing\n"); s->file_location = aa; // string string } else - if ((aret = argcmp(str, "ImageId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ImageId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ImageId argument missing\n"); s->image_id = aa; // string string } else - if ((aret = argcmp(str, "ImageName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ImageName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ImageName argument missing\n"); s->image_name = aa; // string string } else - if ((aret = argcmp(str, "ImageType")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ImageType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ImageType argument missing\n"); s->image_type = aa; // string string } else - if ((aret = argcmp(str, "PermissionsToLaunch")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PermissionsToLaunch")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "PermissionsToLaunch argument missing\n"); @@ -4965,29 +12609,50 @@ int image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->permissions_to_launch_str = aa; } } else - if ((aret = argcmp(str, "ProductCodes")) == 0 || aret == '=') { - TRY(!aa, "ProductCodes argument missing\n"); - s->product_codes_str = aa; + if ((aret = strcmp(str, "ProductCodes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ProductCodes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ProductCodes require an index\n"); + if (s->product_codes) { + for (; s->product_codes[last]; ++last); + } + if (pos < last) { + s->product_codes[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->product_codes, "", pa); + SET_NEXT(s->product_codes, (aa), pa); + } + } else { + TRY(!aa, "ProductCodes argument missing\n"); + s->product_codes_str = aa; + } } else if (!(aret = strcmp(str, "ProductCodes[]")) || aret == '=') { TRY(!aa, "ProductCodes[] argument missing\n"); SET_NEXT(s->product_codes, (aa), pa); } else - if ((aret = argcmp(str, "RootDeviceName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "RootDeviceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "RootDeviceName argument missing\n"); s->root_device_name = aa; // string string } else - if ((aret = argcmp(str, "RootDeviceType")) == 0 || aret == '=') { + if ((aret = strcmp(str, "RootDeviceType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "RootDeviceType argument missing\n"); s->root_device_type = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "StateComment")) == 0 || aret == '=') { + if ((aret = strcmp(str, "StateComment")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "StateComment argument missing\n"); @@ -5004,7 +12669,7 @@ int image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->state_comment_str = aa; } } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -5039,17 +12704,17 @@ int image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int image_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct image_export_task *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Comment")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Comment")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Comment argument missing\n"); s->comment = aa; // string string } else - if ((aret = argcmp(str, "ImageId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ImageId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ImageId argument missing\n"); s->image_id = aa; // string string } else - if ((aret = argcmp(str, "OsuExport")) == 0 || aret == '=') { + if ((aret = strcmp(str, "OsuExport")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "OsuExport argument missing\n"); @@ -5066,17 +12731,17 @@ int image_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array *p s->osu_export_str = aa; } } else - if ((aret = argcmp(str, "Progress")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Progress")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Progress argument missing\n"); s->is_set_progress = 1; s->progress = atoi(aa); } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -5101,7 +12766,7 @@ int image_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array *p s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = argcmp(str, "TaskId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "TaskId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "TaskId argument missing\n"); s->task_id = aa; // string string @@ -5116,12 +12781,12 @@ int image_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array *p int inline_policy_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct inline_policy *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Body")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Body")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Body argument missing\n"); s->body = aa; // string string } else - if ((aret = argcmp(str, "Name")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Name")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Name argument missing\n"); s->name = aa; // string string @@ -5136,22 +12801,22 @@ int inline_policy_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int internet_service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct internet_service *s = v_s; int aret = 0; - if ((aret = argcmp(str, "InternetServiceId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "InternetServiceId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "InternetServiceId argument missing\n"); s->internet_service_id = aa; // string string } else - if ((aret = argcmp(str, "NetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -5186,17 +12851,17 @@ int internet_service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa int keypair_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct keypair *s = v_s; int aret = 0; - if ((aret = argcmp(str, "KeypairFingerprint")) == 0 || aret == '=') { + if ((aret = strcmp(str, "KeypairFingerprint")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "KeypairFingerprint argument missing\n"); s->keypair_fingerprint = aa; // string string } else - if ((aret = argcmp(str, "KeypairName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "KeypairName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "KeypairName argument missing\n"); s->keypair_name = aa; // string string } else - if ((aret = argcmp(str, "KeypairType")) == 0 || aret == '=') { + if ((aret = strcmp(str, "KeypairType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "KeypairType argument missing\n"); s->keypair_type = aa; // string string @@ -5211,22 +12876,22 @@ int keypair_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int keypair_created_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct keypair_created *s = v_s; int aret = 0; - if ((aret = argcmp(str, "KeypairFingerprint")) == 0 || aret == '=') { + if ((aret = strcmp(str, "KeypairFingerprint")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "KeypairFingerprint argument missing\n"); s->keypair_fingerprint = aa; // string string } else - if ((aret = argcmp(str, "KeypairName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "KeypairName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "KeypairName argument missing\n"); s->keypair_name = aa; // string string } else - if ((aret = argcmp(str, "KeypairType")) == 0 || aret == '=') { + if ((aret = strcmp(str, "KeypairType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "KeypairType argument missing\n"); s->keypair_type = aa; // string string } else - if ((aret = argcmp(str, "PrivateKey")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PrivateKey")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PrivateKey argument missing\n"); s->private_key = aa; // string string @@ -5241,7 +12906,7 @@ int keypair_created_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int link_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct link_nic *s = v_s; int aret = 0; - if ((aret = argcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->delete_on_vm_deletion = 1; @@ -5251,27 +12916,27 @@ int link_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = argcmp(str, "DeviceNumber")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DeviceNumber")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DeviceNumber argument missing\n"); s->is_set_device_number = 1; s->device_number = atoi(aa); } else - if ((aret = argcmp(str, "LinkNicId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LinkNicId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LinkNicId argument missing\n"); s->link_nic_id = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "VmAccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VmAccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmAccountId argument missing\n"); s->vm_account_id = aa; // string string } else - if ((aret = argcmp(str, "VmId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmId argument missing\n"); s->vm_id = aa; // string string @@ -5286,7 +12951,7 @@ int link_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int link_nic_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct link_nic_light *s = v_s; int aret = 0; - if ((aret = argcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->delete_on_vm_deletion = 1; @@ -5296,17 +12961,17 @@ int link_nic_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = argcmp(str, "DeviceNumber")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DeviceNumber")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DeviceNumber argument missing\n"); s->is_set_device_number = 1; s->device_number = atoi(aa); } else - if ((aret = argcmp(str, "LinkNicId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LinkNicId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LinkNicId argument missing\n"); s->link_nic_id = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string @@ -5321,7 +12986,7 @@ int link_nic_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int link_nic_to_update_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct link_nic_to_update *s = v_s; int aret = 0; - if ((aret = argcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->delete_on_vm_deletion = 1; @@ -5331,7 +12996,7 @@ int link_nic_to_update_parser(void *v_s, char *str, char *aa, struct ptr_array * BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = argcmp(str, "LinkNicId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LinkNicId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LinkNicId argument missing\n"); s->link_nic_id = aa; // string string @@ -5346,27 +13011,27 @@ int link_nic_to_update_parser(void *v_s, char *str, char *aa, struct ptr_array * int link_public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct link_public_ip *s = v_s; int aret = 0; - if ((aret = argcmp(str, "LinkPublicIpId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LinkPublicIpId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LinkPublicIpId argument missing\n"); s->link_public_ip_id = aa; // string string } else - if ((aret = argcmp(str, "PublicDnsName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PublicDnsName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicDnsName argument missing\n"); s->public_dns_name = aa; // string string } else - if ((aret = argcmp(str, "PublicIp")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PublicIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIp argument missing\n"); s->public_ip = aa; // string string } else - if ((aret = argcmp(str, "PublicIpAccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PublicIpAccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIpAccountId argument missing\n"); s->public_ip_account_id = aa; // string string } else - if ((aret = argcmp(str, "PublicIpId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PublicIpId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIpId argument missing\n"); s->public_ip_id = aa; // string string @@ -5381,17 +13046,17 @@ int link_public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int link_public_ip_light_for_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct link_public_ip_light_for_vm *s = v_s; int aret = 0; - if ((aret = argcmp(str, "PublicDnsName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PublicDnsName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicDnsName argument missing\n"); s->public_dns_name = aa; // string string } else - if ((aret = argcmp(str, "PublicIp")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PublicIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIp argument missing\n"); s->public_ip = aa; // string string } else - if ((aret = argcmp(str, "PublicIpAccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PublicIpAccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIpAccountId argument missing\n"); s->public_ip_account_id = aa; // string string @@ -5406,12 +13071,12 @@ int link_public_ip_light_for_vm_parser(void *v_s, char *str, char *aa, struct pt int link_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct link_route_table *s = v_s; int aret = 0; - if ((aret = argcmp(str, "LinkRouteTableId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LinkRouteTableId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LinkRouteTableId argument missing\n"); s->link_route_table_id = aa; // string string } else - if ((aret = argcmp(str, "Main")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Main")) == 0 || aret == '=' || aret == '.') { s->is_set_main = 1; if (!aa || !strcasecmp(aa, "true")) { s->main = 1; @@ -5421,17 +13086,17 @@ int link_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array *pa BAD_RET("Main require true/false\n"); } } else - if ((aret = argcmp(str, "NetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = argcmp(str, "RouteTableId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "RouteTableId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "RouteTableId argument missing\n"); s->route_table_id = aa; // string string } else - if ((aret = argcmp(str, "SubnetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubnetId argument missing\n"); s->subnet_id = aa; // string string @@ -5446,27 +13111,27 @@ int link_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array *pa int linked_policy_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct linked_policy *s = v_s; int aret = 0; - if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = argcmp(str, "LastModificationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LastModificationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LastModificationDate argument missing\n"); s->last_modification_date = aa; // string string } else - if ((aret = argcmp(str, "Orn")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Orn")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Orn argument missing\n"); s->orn = aa; // string string } else - if ((aret = argcmp(str, "PolicyId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PolicyId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PolicyId argument missing\n"); s->policy_id = aa; // string string } else - if ((aret = argcmp(str, "PolicyName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PolicyName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PolicyName argument missing\n"); s->policy_name = aa; // string string @@ -5481,7 +13146,7 @@ int linked_policy_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int linked_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct linked_volume *s = v_s; int aret = 0; - if ((aret = argcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->delete_on_vm_deletion = 1; @@ -5491,22 +13156,22 @@ int linked_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = argcmp(str, "DeviceName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DeviceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DeviceName argument missing\n"); s->device_name = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "VmId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmId argument missing\n"); s->vm_id = aa; // string string } else - if ((aret = argcmp(str, "VolumeId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VolumeId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VolumeId argument missing\n"); s->volume_id = aa; // string string @@ -5521,34 +13186,55 @@ int linked_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int listener_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct listener *s = v_s; int aret = 0; - if ((aret = argcmp(str, "BackendPort")) == 0 || aret == '=') { + if ((aret = strcmp(str, "BackendPort")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "BackendPort argument missing\n"); s->is_set_backend_port = 1; s->backend_port = atoi(aa); } else - if ((aret = argcmp(str, "BackendProtocol")) == 0 || aret == '=') { + if ((aret = strcmp(str, "BackendProtocol")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "BackendProtocol argument missing\n"); s->backend_protocol = aa; // string string } else - if ((aret = argcmp(str, "LoadBalancerPort")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LoadBalancerPort")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LoadBalancerPort argument missing\n"); s->is_set_load_balancer_port = 1; s->load_balancer_port = atoi(aa); } else - if ((aret = argcmp(str, "LoadBalancerProtocol")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LoadBalancerProtocol")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LoadBalancerProtocol argument missing\n"); s->load_balancer_protocol = aa; // string string } else - if ((aret = argcmp(str, "PolicyNames")) == 0 || aret == '=') { - TRY(!aa, "PolicyNames argument missing\n"); - s->policy_names_str = aa; + if ((aret = strcmp(str, "PolicyNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "PolicyNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "PolicyNames require an index\n"); + if (s->policy_names) { + for (; s->policy_names[last]; ++last); + } + if (pos < last) { + s->policy_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->policy_names, "", pa); + SET_NEXT(s->policy_names, (aa), pa); + } + } else { + TRY(!aa, "PolicyNames argument missing\n"); + s->policy_names_str = aa; + } } else if (!(aret = strcmp(str, "PolicyNames[]")) || aret == '=') { TRY(!aa, "PolicyNames[] argument missing\n"); SET_NEXT(s->policy_names, (aa), pa); } else - if ((aret = argcmp(str, "ServerCertificateId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ServerCertificateId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ServerCertificateId argument missing\n"); s->server_certificate_id = aa; // string string @@ -5563,27 +13249,27 @@ int listener_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int listener_for_creation_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct listener_for_creation *s = v_s; int aret = 0; - if ((aret = argcmp(str, "BackendPort")) == 0 || aret == '=') { + if ((aret = strcmp(str, "BackendPort")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "BackendPort argument missing\n"); s->is_set_backend_port = 1; s->backend_port = atoi(aa); } else - if ((aret = argcmp(str, "BackendProtocol")) == 0 || aret == '=') { + if ((aret = strcmp(str, "BackendProtocol")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "BackendProtocol argument missing\n"); s->backend_protocol = aa; // string string } else - if ((aret = argcmp(str, "LoadBalancerPort")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LoadBalancerPort")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LoadBalancerPort argument missing\n"); s->is_set_load_balancer_port = 1; s->load_balancer_port = atoi(aa); } else - if ((aret = argcmp(str, "LoadBalancerProtocol")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LoadBalancerProtocol")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LoadBalancerProtocol argument missing\n"); s->load_balancer_protocol = aa; // string string } else - if ((aret = argcmp(str, "ServerCertificateId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ServerCertificateId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ServerCertificateId argument missing\n"); s->server_certificate_id = aa; // string string @@ -5598,44 +13284,65 @@ int listener_for_creation_parser(void *v_s, char *str, char *aa, struct ptr_arra int listener_rule_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct listener_rule *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Action")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Action")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Action argument missing\n"); s->action = aa; // string string } else - if ((aret = argcmp(str, "HostNamePattern")) == 0 || aret == '=') { + if ((aret = strcmp(str, "HostNamePattern")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "HostNamePattern argument missing\n"); s->host_name_pattern = aa; // string string } else - if ((aret = argcmp(str, "ListenerId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ListenerId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ListenerId argument missing\n"); s->is_set_listener_id = 1; s->listener_id = atoi(aa); } else - if ((aret = argcmp(str, "ListenerRuleId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ListenerRuleId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ListenerRuleId argument missing\n"); s->is_set_listener_rule_id = 1; s->listener_rule_id = atoi(aa); } else - if ((aret = argcmp(str, "ListenerRuleName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ListenerRuleName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ListenerRuleName argument missing\n"); s->listener_rule_name = aa; // string string } else - if ((aret = argcmp(str, "PathPattern")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PathPattern")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PathPattern argument missing\n"); s->path_pattern = aa; // string string } else - if ((aret = argcmp(str, "Priority")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Priority")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Priority argument missing\n"); s->is_set_priority = 1; s->priority = atoi(aa); } else - if ((aret = argcmp(str, "VmIds")) == 0 || aret == '=') { - TRY(!aa, "VmIds argument missing\n"); - s->vm_ids_str = aa; + if ((aret = strcmp(str, "VmIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmIds require an index\n"); + if (s->vm_ids) { + for (; s->vm_ids[last]; ++last); + } + if (pos < last) { + s->vm_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_ids, "", pa); + SET_NEXT(s->vm_ids, (aa), pa); + } + } else { + TRY(!aa, "VmIds argument missing\n"); + s->vm_ids_str = aa; + } } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); @@ -5650,27 +13357,27 @@ int listener_rule_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int listener_rule_for_creation_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct listener_rule_for_creation *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Action")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Action")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Action argument missing\n"); s->action = aa; // string string } else - if ((aret = argcmp(str, "HostNamePattern")) == 0 || aret == '=') { + if ((aret = strcmp(str, "HostNamePattern")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "HostNamePattern argument missing\n"); s->host_name_pattern = aa; // string string } else - if ((aret = argcmp(str, "ListenerRuleName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ListenerRuleName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ListenerRuleName argument missing\n"); s->listener_rule_name = aa; // string string } else - if ((aret = argcmp(str, "PathPattern")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PathPattern")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PathPattern argument missing\n"); s->path_pattern = aa; // string string } else - if ((aret = argcmp(str, "Priority")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Priority")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Priority argument missing\n"); s->is_set_priority = 1; s->priority = atoi(aa); @@ -5685,7 +13392,7 @@ int listener_rule_for_creation_parser(void *v_s, char *str, char *aa, struct ptr int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct load_balancer *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccessLog")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AccessLog")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "AccessLog argument missing\n"); @@ -5702,7 +13409,7 @@ int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->access_log_str = aa; } } else - if ((aret = argcmp(str, "ApplicationStickyCookiePolicies")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ApplicationStickyCookiePolicies")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -5727,26 +13434,68 @@ int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->application_sticky_cookie_policies_str = aa; // array ref ApplicationStickyCookiePolicy ref } } else - if ((aret = argcmp(str, "BackendIps")) == 0 || aret == '=') { - TRY(!aa, "BackendIps argument missing\n"); - s->backend_ips_str = aa; + if ((aret = strcmp(str, "BackendIps")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "BackendIps argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "BackendIps require an index\n"); + if (s->backend_ips) { + for (; s->backend_ips[last]; ++last); + } + if (pos < last) { + s->backend_ips[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->backend_ips, "", pa); + SET_NEXT(s->backend_ips, (aa), pa); + } + } else { + TRY(!aa, "BackendIps argument missing\n"); + s->backend_ips_str = aa; + } } else if (!(aret = strcmp(str, "BackendIps[]")) || aret == '=') { TRY(!aa, "BackendIps[] argument missing\n"); SET_NEXT(s->backend_ips, (aa), pa); } else - if ((aret = argcmp(str, "BackendVmIds")) == 0 || aret == '=') { - TRY(!aa, "BackendVmIds argument missing\n"); - s->backend_vm_ids_str = aa; + if ((aret = strcmp(str, "BackendVmIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "BackendVmIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "BackendVmIds require an index\n"); + if (s->backend_vm_ids) { + for (; s->backend_vm_ids[last]; ++last); + } + if (pos < last) { + s->backend_vm_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->backend_vm_ids, "", pa); + SET_NEXT(s->backend_vm_ids, (aa), pa); + } + } else { + TRY(!aa, "BackendVmIds argument missing\n"); + s->backend_vm_ids_str = aa; + } } else if (!(aret = strcmp(str, "BackendVmIds[]")) || aret == '=') { TRY(!aa, "BackendVmIds[] argument missing\n"); SET_NEXT(s->backend_vm_ids, (aa), pa); } else - if ((aret = argcmp(str, "DnsName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DnsName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DnsName argument missing\n"); s->dns_name = aa; // string string } else - if ((aret = argcmp(str, "HealthCheck")) == 0 || aret == '=') { + if ((aret = strcmp(str, "HealthCheck")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "HealthCheck argument missing\n"); @@ -5763,7 +13512,7 @@ int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->health_check_str = aa; } } else - if ((aret = argcmp(str, "Listeners")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Listeners")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -5788,12 +13537,12 @@ int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->listeners_str = aa; // array ref Listener ref } } else - if ((aret = argcmp(str, "LoadBalancerName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LoadBalancerName argument missing\n"); s->load_balancer_name = aa; // string string } else - if ((aret = argcmp(str, "LoadBalancerStickyCookiePolicies")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LoadBalancerStickyCookiePolicies")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -5818,22 +13567,22 @@ int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->load_balancer_sticky_cookie_policies_str = aa; // array ref LoadBalancerStickyCookiePolicy ref } } else - if ((aret = argcmp(str, "LoadBalancerType")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LoadBalancerType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LoadBalancerType argument missing\n"); s->load_balancer_type = aa; // string string } else - if ((aret = argcmp(str, "NetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = argcmp(str, "PublicIp")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PublicIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIp argument missing\n"); s->public_ip = aa; // string string } else - if ((aret = argcmp(str, "SecuredCookies")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SecuredCookies")) == 0 || aret == '=' || aret == '.') { s->is_set_secured_cookies = 1; if (!aa || !strcasecmp(aa, "true")) { s->secured_cookies = 1; @@ -5843,14 +13592,35 @@ int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("SecuredCookies require true/false\n"); } } else - if ((aret = argcmp(str, "SecurityGroups")) == 0 || aret == '=') { - TRY(!aa, "SecurityGroups argument missing\n"); - s->security_groups_str = aa; + if ((aret = strcmp(str, "SecurityGroups")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SecurityGroups argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SecurityGroups require an index\n"); + if (s->security_groups) { + for (; s->security_groups[last]; ++last); + } + if (pos < last) { + s->security_groups[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->security_groups, "", pa); + SET_NEXT(s->security_groups, (aa), pa); + } + } else { + TRY(!aa, "SecurityGroups argument missing\n"); + s->security_groups_str = aa; + } } else if (!(aret = strcmp(str, "SecurityGroups[]")) || aret == '=') { TRY(!aa, "SecurityGroups[] argument missing\n"); SET_NEXT(s->security_groups, (aa), pa); } else - if ((aret = argcmp(str, "SourceSecurityGroup")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SourceSecurityGroup")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "SourceSecurityGroup argument missing\n"); @@ -5867,21 +13637,63 @@ int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->source_security_group_str = aa; } } else - if ((aret = argcmp(str, "Subnets")) == 0 || aret == '=') { - TRY(!aa, "Subnets argument missing\n"); - s->subnets_str = aa; + if ((aret = strcmp(str, "Subnets")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Subnets argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Subnets require an index\n"); + if (s->subnets) { + for (; s->subnets[last]; ++last); + } + if (pos < last) { + s->subnets[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->subnets, "", pa); + SET_NEXT(s->subnets, (aa), pa); + } + } else { + TRY(!aa, "Subnets argument missing\n"); + s->subnets_str = aa; + } } else if (!(aret = strcmp(str, "Subnets[]")) || aret == '=') { TRY(!aa, "Subnets[] argument missing\n"); SET_NEXT(s->subnets, (aa), pa); } else - if ((aret = argcmp(str, "SubregionNames")) == 0 || aret == '=') { - TRY(!aa, "SubregionNames argument missing\n"); - s->subregion_names_str = aa; + if ((aret = strcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SubregionNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SubregionNames require an index\n"); + if (s->subregion_names) { + for (; s->subregion_names[last]; ++last); + } + if (pos < last) { + s->subregion_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->subregion_names, "", pa); + SET_NEXT(s->subregion_names, (aa), pa); + } + } else { + TRY(!aa, "SubregionNames argument missing\n"); + s->subregion_names_str = aa; + } } else if (!(aret = strcmp(str, "SubregionNames[]")) || aret == '=') { TRY(!aa, "SubregionNames[] argument missing\n"); SET_NEXT(s->subregion_names, (aa), pa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -5916,12 +13728,12 @@ int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int load_balancer_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct load_balancer_light *s = v_s; int aret = 0; - if ((aret = argcmp(str, "LoadBalancerName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LoadBalancerName argument missing\n"); s->load_balancer_name = aa; // string string } else - if ((aret = argcmp(str, "LoadBalancerPort")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LoadBalancerPort")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LoadBalancerPort argument missing\n"); s->is_set_load_balancer_port = 1; s->load_balancer_port = atoi(aa); @@ -5936,12 +13748,12 @@ int load_balancer_light_parser(void *v_s, char *str, char *aa, struct ptr_array int load_balancer_sticky_cookie_policy_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct load_balancer_sticky_cookie_policy *s = v_s; int aret = 0; - if ((aret = argcmp(str, "CookieExpirationPeriod")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CookieExpirationPeriod")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CookieExpirationPeriod argument missing\n"); s->is_set_cookie_expiration_period = 1; s->cookie_expiration_period = atoi(aa); } else - if ((aret = argcmp(str, "PolicyName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PolicyName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PolicyName argument missing\n"); s->policy_name = aa; // string string @@ -5956,17 +13768,17 @@ int load_balancer_sticky_cookie_policy_parser(void *v_s, char *str, char *aa, st int load_balancer_tag_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct load_balancer_tag *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Key")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Key")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Key argument missing\n"); s->key = aa; // string string } else - if ((aret = argcmp(str, "LoadBalancerName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LoadBalancerName argument missing\n"); s->load_balancer_name = aa; // string string } else - if ((aret = argcmp(str, "Value")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Value")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Value argument missing\n"); s->value = aa; // string string @@ -5981,12 +13793,12 @@ int load_balancer_tag_parser(void *v_s, char *str, char *aa, struct ptr_array *p int location_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct location *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Code")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Code")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Code argument missing\n"); s->code = aa; // string string } else - if ((aret = argcmp(str, "Name")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Name")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Name argument missing\n"); s->name = aa; // string string @@ -6001,82 +13813,82 @@ int location_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int log_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct log *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = argcmp(str, "CallDuration")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CallDuration")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CallDuration argument missing\n"); s->is_set_call_duration = 1; s->call_duration = atoi(aa); } else - if ((aret = argcmp(str, "QueryAccessKey")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryAccessKey")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryAccessKey argument missing\n"); s->query_access_key = aa; // string string } else - if ((aret = argcmp(str, "QueryApiName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryApiName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryApiName argument missing\n"); s->query_api_name = aa; // string string } else - if ((aret = argcmp(str, "QueryApiVersion")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryApiVersion")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryApiVersion argument missing\n"); s->query_api_version = aa; // string string } else - if ((aret = argcmp(str, "QueryCallName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryCallName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryCallName argument missing\n"); s->query_call_name = aa; // string string } else - if ((aret = argcmp(str, "QueryDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryDate argument missing\n"); s->query_date = aa; // string string } else - if ((aret = argcmp(str, "QueryHeaderRaw")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryHeaderRaw")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryHeaderRaw argument missing\n"); s->query_header_raw = aa; // string string } else - if ((aret = argcmp(str, "QueryHeaderSize")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryHeaderSize")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryHeaderSize argument missing\n"); s->is_set_query_header_size = 1; s->query_header_size = atoi(aa); } else - if ((aret = argcmp(str, "QueryIpAddress")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryIpAddress")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryIpAddress argument missing\n"); s->query_ip_address = aa; // string string } else - if ((aret = argcmp(str, "QueryPayloadRaw")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryPayloadRaw")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryPayloadRaw argument missing\n"); s->query_payload_raw = aa; // string string } else - if ((aret = argcmp(str, "QueryPayloadSize")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryPayloadSize")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryPayloadSize argument missing\n"); s->is_set_query_payload_size = 1; s->query_payload_size = atoi(aa); } else - if ((aret = argcmp(str, "QueryUserAgent")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryUserAgent")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryUserAgent argument missing\n"); s->query_user_agent = aa; // string string } else - if ((aret = argcmp(str, "RequestId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "RequestId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "RequestId argument missing\n"); s->request_id = aa; // string string } else - if ((aret = argcmp(str, "ResponseSize")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ResponseSize")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ResponseSize argument missing\n"); s->is_set_response_size = 1; s->response_size = atoi(aa); } else - if ((aret = argcmp(str, "ResponseStatusCode")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ResponseStatusCode")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ResponseStatusCode argument missing\n"); s->is_set_response_status_code = 1; s->response_status_code = atoi(aa); @@ -6091,22 +13903,22 @@ int log_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int maintenance_event_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct maintenance_event *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Code")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Code")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Code argument missing\n"); s->code = aa; // string string } else - if ((aret = argcmp(str, "Description")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = argcmp(str, "NotAfter")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NotAfter")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NotAfter argument missing\n"); s->not_after = aa; // string string } else - if ((aret = argcmp(str, "NotBefore")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NotBefore")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NotBefore argument missing\n"); s->not_before = aa; // string string @@ -6121,22 +13933,22 @@ int maintenance_event_parser(void *v_s, char *str, char *aa, struct ptr_array *p int nat_service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct nat_service *s = v_s; int aret = 0; - if ((aret = argcmp(str, "ClientToken")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ClientToken")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ClientToken argument missing\n"); s->client_token = aa; // string string } else - if ((aret = argcmp(str, "NatServiceId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NatServiceId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NatServiceId argument missing\n"); s->nat_service_id = aa; // string string } else - if ((aret = argcmp(str, "NetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = argcmp(str, "PublicIps")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PublicIps")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -6161,17 +13973,17 @@ int nat_service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->public_ips_str = aa; // array ref PublicIpLight ref } } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "SubnetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubnetId argument missing\n"); s->subnet_id = aa; // string string } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -6206,27 +14018,27 @@ int nat_service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct net *s = v_s; int aret = 0; - if ((aret = argcmp(str, "DhcpOptionsSetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DhcpOptionsSetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DhcpOptionsSetId argument missing\n"); s->dhcp_options_set_id = aa; // string string } else - if ((aret = argcmp(str, "IpRange")) == 0 || aret == '=') { + if ((aret = strcmp(str, "IpRange")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "IpRange argument missing\n"); s->ip_range = aa; // string string } else - if ((aret = argcmp(str, "NetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -6251,7 +14063,7 @@ int net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = argcmp(str, "Tenancy")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tenancy")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Tenancy argument missing\n"); s->tenancy = aa; // string string @@ -6266,34 +14078,55 @@ int net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int net_access_point_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct net_access_point *s = v_s; int aret = 0; - if ((aret = argcmp(str, "NetAccessPointId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NetAccessPointId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetAccessPointId argument missing\n"); s->net_access_point_id = aa; // string string } else - if ((aret = argcmp(str, "NetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = argcmp(str, "RouteTableIds")) == 0 || aret == '=') { - TRY(!aa, "RouteTableIds argument missing\n"); - s->route_table_ids_str = aa; + if ((aret = strcmp(str, "RouteTableIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "RouteTableIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "RouteTableIds require an index\n"); + if (s->route_table_ids) { + for (; s->route_table_ids[last]; ++last); + } + if (pos < last) { + s->route_table_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->route_table_ids, "", pa); + SET_NEXT(s->route_table_ids, (aa), pa); + } + } else { + TRY(!aa, "RouteTableIds argument missing\n"); + s->route_table_ids_str = aa; + } } else if (!(aret = strcmp(str, "RouteTableIds[]")) || aret == '=') { TRY(!aa, "RouteTableIds[] argument missing\n"); SET_NEXT(s->route_table_ids, (aa), pa); } else - if ((aret = argcmp(str, "ServiceName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ServiceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ServiceName argument missing\n"); s->service_name = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -6328,7 +14161,7 @@ int net_access_point_parser(void *v_s, char *str, char *aa, struct ptr_array *pa int net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct net_peering *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccepterNet")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AccepterNet")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "AccepterNet argument missing\n"); @@ -6345,17 +14178,17 @@ int net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->accepter_net_str = aa; } } else - if ((aret = argcmp(str, "ExpirationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ExpirationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ExpirationDate argument missing\n"); s->expiration_date = aa; // string string } else - if ((aret = argcmp(str, "NetPeeringId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NetPeeringId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetPeeringId argument missing\n"); s->net_peering_id = aa; // string string } else - if ((aret = argcmp(str, "SourceNet")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SourceNet")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "SourceNet argument missing\n"); @@ -6372,7 +14205,7 @@ int net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->source_net_str = aa; } } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "State argument missing\n"); @@ -6389,7 +14222,7 @@ int net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->state_str = aa; } } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -6424,12 +14257,12 @@ int net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int net_peering_state_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct net_peering_state *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Message")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Message")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Message argument missing\n"); s->message = aa; // string string } else - if ((aret = argcmp(str, "Name")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Name")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Name argument missing\n"); s->name = aa; // string string @@ -6444,12 +14277,12 @@ int net_peering_state_parser(void *v_s, char *str, char *aa, struct ptr_array *p int net_to_virtual_gateway_link_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct net_to_virtual_gateway_link *s = v_s; int aret = 0; - if ((aret = argcmp(str, "NetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string @@ -6464,17 +14297,17 @@ int net_to_virtual_gateway_link_parser(void *v_s, char *str, char *aa, struct pt int nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct nic *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = argcmp(str, "Description")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = argcmp(str, "IsSourceDestChecked")) == 0 || aret == '=') { + if ((aret = strcmp(str, "IsSourceDestChecked")) == 0 || aret == '=' || aret == '.') { s->is_set_is_source_dest_checked = 1; if (!aa || !strcasecmp(aa, "true")) { s->is_source_dest_checked = 1; @@ -6484,7 +14317,7 @@ int nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("IsSourceDestChecked require true/false\n"); } } else - if ((aret = argcmp(str, "LinkNic")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LinkNic")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "LinkNic argument missing\n"); @@ -6501,7 +14334,7 @@ int nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->link_nic_str = aa; } } else - if ((aret = argcmp(str, "LinkPublicIp")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LinkPublicIp")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "LinkPublicIp argument missing\n"); @@ -6518,27 +14351,27 @@ int nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->link_public_ip_str = aa; } } else - if ((aret = argcmp(str, "MacAddress")) == 0 || aret == '=') { + if ((aret = strcmp(str, "MacAddress")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "MacAddress argument missing\n"); s->mac_address = aa; // string string } else - if ((aret = argcmp(str, "NetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = argcmp(str, "NicId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NicId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NicId argument missing\n"); s->nic_id = aa; // string string } else - if ((aret = argcmp(str, "PrivateDnsName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PrivateDnsName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PrivateDnsName argument missing\n"); s->private_dns_name = aa; // string string } else - if ((aret = argcmp(str, "PrivateIps")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PrivateIps")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -6563,7 +14396,7 @@ int nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->private_ips_str = aa; // array ref PrivateIp ref } } else - if ((aret = argcmp(str, "SecurityGroups")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SecurityGroups")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -6588,22 +14421,22 @@ int nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->security_groups_str = aa; // array ref SecurityGroupLight ref } } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "SubnetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubnetId argument missing\n"); s->subnet_id = aa; // string string } else - if ((aret = argcmp(str, "SubregionName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubregionName argument missing\n"); s->subregion_name = aa; // string string } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -6638,7 +14471,7 @@ int nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int nic_for_vm_creation_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct nic_for_vm_creation *s = v_s; int aret = 0; - if ((aret = argcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->delete_on_vm_deletion = 1; @@ -6648,22 +14481,22 @@ int nic_for_vm_creation_parser(void *v_s, char *str, char *aa, struct ptr_array BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = argcmp(str, "Description")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = argcmp(str, "DeviceNumber")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DeviceNumber")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DeviceNumber argument missing\n"); s->is_set_device_number = 1; s->device_number = atoi(aa); } else - if ((aret = argcmp(str, "NicId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NicId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NicId argument missing\n"); s->nic_id = aa; // string string } else - if ((aret = argcmp(str, "PrivateIps")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PrivateIps")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -6688,19 +14521,40 @@ int nic_for_vm_creation_parser(void *v_s, char *str, char *aa, struct ptr_array s->private_ips_str = aa; // array ref PrivateIpLight ref } } else - if ((aret = argcmp(str, "SecondaryPrivateIpCount")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SecondaryPrivateIpCount")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SecondaryPrivateIpCount argument missing\n"); s->is_set_secondary_private_ip_count = 1; s->secondary_private_ip_count = atoi(aa); } else - if ((aret = argcmp(str, "SecurityGroupIds")) == 0 || aret == '=') { - TRY(!aa, "SecurityGroupIds argument missing\n"); - s->security_group_ids_str = aa; + if ((aret = strcmp(str, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SecurityGroupIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SecurityGroupIds require an index\n"); + if (s->security_group_ids) { + for (; s->security_group_ids[last]; ++last); + } + if (pos < last) { + s->security_group_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->security_group_ids, "", pa); + SET_NEXT(s->security_group_ids, (aa), pa); + } + } else { + TRY(!aa, "SecurityGroupIds argument missing\n"); + s->security_group_ids_str = aa; + } } else if (!(aret = strcmp(str, "SecurityGroupIds[]")) || aret == '=') { TRY(!aa, "SecurityGroupIds[] argument missing\n"); SET_NEXT(s->security_group_ids, (aa), pa); } else - if ((aret = argcmp(str, "SubnetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubnetId argument missing\n"); s->subnet_id = aa; // string string @@ -6715,17 +14569,17 @@ int nic_for_vm_creation_parser(void *v_s, char *str, char *aa, struct ptr_array int nic_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct nic_light *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = argcmp(str, "Description")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = argcmp(str, "IsSourceDestChecked")) == 0 || aret == '=') { + if ((aret = strcmp(str, "IsSourceDestChecked")) == 0 || aret == '=' || aret == '.') { s->is_set_is_source_dest_checked = 1; if (!aa || !strcasecmp(aa, "true")) { s->is_source_dest_checked = 1; @@ -6735,7 +14589,7 @@ int nic_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("IsSourceDestChecked require true/false\n"); } } else - if ((aret = argcmp(str, "LinkNic")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LinkNic")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "LinkNic argument missing\n"); @@ -6752,7 +14606,7 @@ int nic_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->link_nic_str = aa; } } else - if ((aret = argcmp(str, "LinkPublicIp")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LinkPublicIp")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "LinkPublicIp argument missing\n"); @@ -6769,27 +14623,27 @@ int nic_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->link_public_ip_str = aa; } } else - if ((aret = argcmp(str, "MacAddress")) == 0 || aret == '=') { + if ((aret = strcmp(str, "MacAddress")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "MacAddress argument missing\n"); s->mac_address = aa; // string string } else - if ((aret = argcmp(str, "NetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = argcmp(str, "NicId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NicId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NicId argument missing\n"); s->nic_id = aa; // string string } else - if ((aret = argcmp(str, "PrivateDnsName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PrivateDnsName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PrivateDnsName argument missing\n"); s->private_dns_name = aa; // string string } else - if ((aret = argcmp(str, "PrivateIps")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PrivateIps")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -6814,7 +14668,7 @@ int nic_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->private_ips_str = aa; // array ref PrivateIpLightForVm ref } } else - if ((aret = argcmp(str, "SecurityGroups")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SecurityGroups")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -6839,12 +14693,12 @@ int nic_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->security_groups_str = aa; // array ref SecurityGroupLight ref } } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "SubnetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubnetId argument missing\n"); s->subnet_id = aa; // string string @@ -6859,12 +14713,12 @@ int nic_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int osu_api_key_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct osu_api_key *s = v_s; int aret = 0; - if ((aret = argcmp(str, "ApiKeyId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ApiKeyId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ApiKeyId argument missing\n"); s->api_key_id = aa; // string string } else - if ((aret = argcmp(str, "SecretKey")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SecretKey")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SecretKey argument missing\n"); s->secret_key = aa; // string string @@ -6879,22 +14733,22 @@ int osu_api_key_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int osu_export_image_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct osu_export_image_export_task *s = v_s; int aret = 0; - if ((aret = argcmp(str, "DiskImageFormat")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DiskImageFormat")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DiskImageFormat argument missing\n"); s->disk_image_format = aa; // string string } else - if ((aret = argcmp(str, "OsuBucket")) == 0 || aret == '=') { + if ((aret = strcmp(str, "OsuBucket")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OsuBucket argument missing\n"); s->osu_bucket = aa; // string string } else - if ((aret = argcmp(str, "OsuManifestUrl")) == 0 || aret == '=') { + if ((aret = strcmp(str, "OsuManifestUrl")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OsuManifestUrl argument missing\n"); s->osu_manifest_url = aa; // string string } else - if ((aret = argcmp(str, "OsuPrefix")) == 0 || aret == '=') { + if ((aret = strcmp(str, "OsuPrefix")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OsuPrefix argument missing\n"); s->osu_prefix = aa; // string string @@ -6909,17 +14763,17 @@ int osu_export_image_export_task_parser(void *v_s, char *str, char *aa, struct p int osu_export_snapshot_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct osu_export_snapshot_export_task *s = v_s; int aret = 0; - if ((aret = argcmp(str, "DiskImageFormat")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DiskImageFormat")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DiskImageFormat argument missing\n"); s->disk_image_format = aa; // string string } else - if ((aret = argcmp(str, "OsuBucket")) == 0 || aret == '=') { + if ((aret = strcmp(str, "OsuBucket")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OsuBucket argument missing\n"); s->osu_bucket = aa; // string string } else - if ((aret = argcmp(str, "OsuPrefix")) == 0 || aret == '=') { + if ((aret = strcmp(str, "OsuPrefix")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OsuPrefix argument missing\n"); s->osu_prefix = aa; // string string @@ -6934,12 +14788,12 @@ int osu_export_snapshot_export_task_parser(void *v_s, char *str, char *aa, struc int osu_export_to_create_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct osu_export_to_create *s = v_s; int aret = 0; - if ((aret = argcmp(str, "DiskImageFormat")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DiskImageFormat")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DiskImageFormat argument missing\n"); s->disk_image_format = aa; // string string } else - if ((aret = argcmp(str, "OsuApiKey")) == 0 || aret == '=') { + if ((aret = strcmp(str, "OsuApiKey")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "OsuApiKey argument missing\n"); @@ -6956,17 +14810,17 @@ int osu_export_to_create_parser(void *v_s, char *str, char *aa, struct ptr_array s->osu_api_key_str = aa; } } else - if ((aret = argcmp(str, "OsuBucket")) == 0 || aret == '=') { + if ((aret = strcmp(str, "OsuBucket")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OsuBucket argument missing\n"); s->osu_bucket = aa; // string string } else - if ((aret = argcmp(str, "OsuManifestUrl")) == 0 || aret == '=') { + if ((aret = strcmp(str, "OsuManifestUrl")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OsuManifestUrl argument missing\n"); s->osu_manifest_url = aa; // string string } else - if ((aret = argcmp(str, "OsuPrefix")) == 0 || aret == '=') { + if ((aret = strcmp(str, "OsuPrefix")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OsuPrefix argument missing\n"); s->osu_prefix = aa; // string string @@ -6981,14 +14835,35 @@ int osu_export_to_create_parser(void *v_s, char *str, char *aa, struct ptr_array int permissions_on_resource_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct permissions_on_resource *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccountIds")) == 0 || aret == '=') { - TRY(!aa, "AccountIds argument missing\n"); - s->account_ids_str = aa; + if ((aret = strcmp(str, "AccountIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "AccountIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "AccountIds require an index\n"); + if (s->account_ids) { + for (; s->account_ids[last]; ++last); + } + if (pos < last) { + s->account_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->account_ids, "", pa); + SET_NEXT(s->account_ids, (aa), pa); + } + } else { + TRY(!aa, "AccountIds argument missing\n"); + s->account_ids_str = aa; + } } else if (!(aret = strcmp(str, "AccountIds[]")) || aret == '=') { TRY(!aa, "AccountIds[] argument missing\n"); SET_NEXT(s->account_ids, (aa), pa); } else - if ((aret = argcmp(str, "GlobalPermission")) == 0 || aret == '=') { + if ((aret = strcmp(str, "GlobalPermission")) == 0 || aret == '=' || aret == '.') { s->is_set_global_permission = 1; if (!aa || !strcasecmp(aa, "true")) { s->global_permission = 1; @@ -7008,7 +14883,7 @@ int permissions_on_resource_parser(void *v_s, char *str, char *aa, struct ptr_ar int permissions_on_resource_creation_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct permissions_on_resource_creation *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Additions")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Additions")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "Additions argument missing\n"); @@ -7025,7 +14900,7 @@ int permissions_on_resource_creation_parser(void *v_s, char *str, char *aa, stru s->additions_str = aa; } } else - if ((aret = argcmp(str, "Removals")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Removals")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "Removals argument missing\n"); @@ -7052,55 +14927,139 @@ int permissions_on_resource_creation_parser(void *v_s, char *str, char *aa, stru int phase1_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct phase1_options *s = v_s; int aret = 0; - if ((aret = argcmp(str, "DpdTimeoutAction")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DpdTimeoutAction")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DpdTimeoutAction argument missing\n"); s->dpd_timeout_action = aa; // string string } else - if ((aret = argcmp(str, "DpdTimeoutSeconds")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DpdTimeoutSeconds")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DpdTimeoutSeconds argument missing\n"); s->is_set_dpd_timeout_seconds = 1; s->dpd_timeout_seconds = atoi(aa); } else - if ((aret = argcmp(str, "IkeVersions")) == 0 || aret == '=') { - TRY(!aa, "IkeVersions argument missing\n"); - s->ike_versions_str = aa; + if ((aret = strcmp(str, "IkeVersions")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "IkeVersions argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "IkeVersions require an index\n"); + if (s->ike_versions) { + for (; s->ike_versions[last]; ++last); + } + if (pos < last) { + s->ike_versions[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->ike_versions, "", pa); + SET_NEXT(s->ike_versions, (aa), pa); + } + } else { + TRY(!aa, "IkeVersions argument missing\n"); + s->ike_versions_str = aa; + } } else if (!(aret = strcmp(str, "IkeVersions[]")) || aret == '=') { TRY(!aa, "IkeVersions[] argument missing\n"); SET_NEXT(s->ike_versions, (aa), pa); } else - if ((aret = argcmp(str, "Phase1DhGroupNumbers")) == 0 || aret == '=') { - TRY(!aa, "Phase1DhGroupNumbers argument missing\n"); - s->phase1_dh_group_numbers_str = aa; + if ((aret = strcmp(str, "Phase1DhGroupNumbers")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Phase1DhGroupNumbers argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Phase1DhGroupNumbers require an index\n"); + if (s->phase1_dh_group_numbers) { + for (; s->phase1_dh_group_numbers[last]; ++last); + } + if (pos < last) { + s->phase1_dh_group_numbers[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->phase1_dh_group_numbers, 0, pa); + SET_NEXT(s->phase1_dh_group_numbers, atoi(aa), pa); + } + } else { + TRY(!aa, "Phase1DhGroupNumbers argument missing\n"); + s->phase1_dh_group_numbers_str = aa; + } } else if (!(aret = strcmp(str, "Phase1DhGroupNumbers[]")) || aret == '=') { TRY(!aa, "Phase1DhGroupNumbers[] argument missing\n"); SET_NEXT(s->phase1_dh_group_numbers, atoi(aa), pa); } else - if ((aret = argcmp(str, "Phase1EncryptionAlgorithms")) == 0 || aret == '=') { - TRY(!aa, "Phase1EncryptionAlgorithms argument missing\n"); - s->phase1_encryption_algorithms_str = aa; + if ((aret = strcmp(str, "Phase1EncryptionAlgorithms")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Phase1EncryptionAlgorithms argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Phase1EncryptionAlgorithms require an index\n"); + if (s->phase1_encryption_algorithms) { + for (; s->phase1_encryption_algorithms[last]; ++last); + } + if (pos < last) { + s->phase1_encryption_algorithms[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->phase1_encryption_algorithms, "", pa); + SET_NEXT(s->phase1_encryption_algorithms, (aa), pa); + } + } else { + TRY(!aa, "Phase1EncryptionAlgorithms argument missing\n"); + s->phase1_encryption_algorithms_str = aa; + } } else if (!(aret = strcmp(str, "Phase1EncryptionAlgorithms[]")) || aret == '=') { TRY(!aa, "Phase1EncryptionAlgorithms[] argument missing\n"); SET_NEXT(s->phase1_encryption_algorithms, (aa), pa); } else - if ((aret = argcmp(str, "Phase1IntegrityAlgorithms")) == 0 || aret == '=') { - TRY(!aa, "Phase1IntegrityAlgorithms argument missing\n"); - s->phase1_integrity_algorithms_str = aa; + if ((aret = strcmp(str, "Phase1IntegrityAlgorithms")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Phase1IntegrityAlgorithms argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Phase1IntegrityAlgorithms require an index\n"); + if (s->phase1_integrity_algorithms) { + for (; s->phase1_integrity_algorithms[last]; ++last); + } + if (pos < last) { + s->phase1_integrity_algorithms[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->phase1_integrity_algorithms, "", pa); + SET_NEXT(s->phase1_integrity_algorithms, (aa), pa); + } + } else { + TRY(!aa, "Phase1IntegrityAlgorithms argument missing\n"); + s->phase1_integrity_algorithms_str = aa; + } } else if (!(aret = strcmp(str, "Phase1IntegrityAlgorithms[]")) || aret == '=') { TRY(!aa, "Phase1IntegrityAlgorithms[] argument missing\n"); SET_NEXT(s->phase1_integrity_algorithms, (aa), pa); } else - if ((aret = argcmp(str, "Phase1LifetimeSeconds")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Phase1LifetimeSeconds")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Phase1LifetimeSeconds argument missing\n"); s->is_set_phase1_lifetime_seconds = 1; s->phase1_lifetime_seconds = atoi(aa); } else - if ((aret = argcmp(str, "ReplayWindowSize")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ReplayWindowSize")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ReplayWindowSize argument missing\n"); s->is_set_replay_window_size = 1; s->replay_window_size = atoi(aa); } else - if ((aret = argcmp(str, "StartupAction")) == 0 || aret == '=') { + if ((aret = strcmp(str, "StartupAction")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "StartupAction argument missing\n"); s->startup_action = aa; // string string @@ -7115,33 +15074,96 @@ int phase1_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int phase2_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct phase2_options *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Phase2DhGroupNumbers")) == 0 || aret == '=') { - TRY(!aa, "Phase2DhGroupNumbers argument missing\n"); - s->phase2_dh_group_numbers_str = aa; + if ((aret = strcmp(str, "Phase2DhGroupNumbers")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Phase2DhGroupNumbers argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Phase2DhGroupNumbers require an index\n"); + if (s->phase2_dh_group_numbers) { + for (; s->phase2_dh_group_numbers[last]; ++last); + } + if (pos < last) { + s->phase2_dh_group_numbers[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->phase2_dh_group_numbers, 0, pa); + SET_NEXT(s->phase2_dh_group_numbers, atoi(aa), pa); + } + } else { + TRY(!aa, "Phase2DhGroupNumbers argument missing\n"); + s->phase2_dh_group_numbers_str = aa; + } } else if (!(aret = strcmp(str, "Phase2DhGroupNumbers[]")) || aret == '=') { TRY(!aa, "Phase2DhGroupNumbers[] argument missing\n"); SET_NEXT(s->phase2_dh_group_numbers, atoi(aa), pa); } else - if ((aret = argcmp(str, "Phase2EncryptionAlgorithms")) == 0 || aret == '=') { - TRY(!aa, "Phase2EncryptionAlgorithms argument missing\n"); - s->phase2_encryption_algorithms_str = aa; + if ((aret = strcmp(str, "Phase2EncryptionAlgorithms")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Phase2EncryptionAlgorithms argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Phase2EncryptionAlgorithms require an index\n"); + if (s->phase2_encryption_algorithms) { + for (; s->phase2_encryption_algorithms[last]; ++last); + } + if (pos < last) { + s->phase2_encryption_algorithms[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->phase2_encryption_algorithms, "", pa); + SET_NEXT(s->phase2_encryption_algorithms, (aa), pa); + } + } else { + TRY(!aa, "Phase2EncryptionAlgorithms argument missing\n"); + s->phase2_encryption_algorithms_str = aa; + } } else if (!(aret = strcmp(str, "Phase2EncryptionAlgorithms[]")) || aret == '=') { TRY(!aa, "Phase2EncryptionAlgorithms[] argument missing\n"); SET_NEXT(s->phase2_encryption_algorithms, (aa), pa); } else - if ((aret = argcmp(str, "Phase2IntegrityAlgorithms")) == 0 || aret == '=') { - TRY(!aa, "Phase2IntegrityAlgorithms argument missing\n"); - s->phase2_integrity_algorithms_str = aa; + if ((aret = strcmp(str, "Phase2IntegrityAlgorithms")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Phase2IntegrityAlgorithms argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Phase2IntegrityAlgorithms require an index\n"); + if (s->phase2_integrity_algorithms) { + for (; s->phase2_integrity_algorithms[last]; ++last); + } + if (pos < last) { + s->phase2_integrity_algorithms[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->phase2_integrity_algorithms, "", pa); + SET_NEXT(s->phase2_integrity_algorithms, (aa), pa); + } + } else { + TRY(!aa, "Phase2IntegrityAlgorithms argument missing\n"); + s->phase2_integrity_algorithms_str = aa; + } } else if (!(aret = strcmp(str, "Phase2IntegrityAlgorithms[]")) || aret == '=') { TRY(!aa, "Phase2IntegrityAlgorithms[] argument missing\n"); SET_NEXT(s->phase2_integrity_algorithms, (aa), pa); } else - if ((aret = argcmp(str, "Phase2LifetimeSeconds")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Phase2LifetimeSeconds")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Phase2LifetimeSeconds argument missing\n"); s->is_set_phase2_lifetime_seconds = 1; s->phase2_lifetime_seconds = atoi(aa); } else - if ((aret = argcmp(str, "PreSharedKey")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PreSharedKey")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PreSharedKey argument missing\n"); s->pre_shared_key = aa; // string string @@ -7156,12 +15178,12 @@ int phase2_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int placement_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct placement *s = v_s; int aret = 0; - if ((aret = argcmp(str, "SubregionName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubregionName argument missing\n"); s->subregion_name = aa; // string string } else - if ((aret = argcmp(str, "Tenancy")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tenancy")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Tenancy argument missing\n"); s->tenancy = aa; // string string @@ -7176,17 +15198,17 @@ int placement_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int policy_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct policy *s = v_s; int aret = 0; - if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = argcmp(str, "Description")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = argcmp(str, "IsLinkable")) == 0 || aret == '=') { + if ((aret = strcmp(str, "IsLinkable")) == 0 || aret == '=' || aret == '.') { s->is_set_is_linkable = 1; if (!aa || !strcasecmp(aa, "true")) { s->is_linkable = 1; @@ -7196,37 +15218,37 @@ int policy_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("IsLinkable require true/false\n"); } } else - if ((aret = argcmp(str, "LastModificationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LastModificationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LastModificationDate argument missing\n"); s->last_modification_date = aa; // string string } else - if ((aret = argcmp(str, "Orn")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Orn")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Orn argument missing\n"); s->orn = aa; // string string } else - if ((aret = argcmp(str, "Path")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Path")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Path argument missing\n"); s->path = aa; // string string } else - if ((aret = argcmp(str, "PolicyDefaultVersionId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PolicyDefaultVersionId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PolicyDefaultVersionId argument missing\n"); s->policy_default_version_id = aa; // string string } else - if ((aret = argcmp(str, "PolicyId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PolicyId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PolicyId argument missing\n"); s->policy_id = aa; // string string } else - if ((aret = argcmp(str, "PolicyName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PolicyName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PolicyName argument missing\n"); s->policy_name = aa; // string string } else - if ((aret = argcmp(str, "ResourcesCount")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ResourcesCount")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ResourcesCount argument missing\n"); s->is_set_resources_count = 1; s->resources_count = atoi(aa); @@ -7241,17 +15263,17 @@ int policy_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int policy_version_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct policy_version *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Body")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Body")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Body argument missing\n"); s->body = aa; // string string } else - if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = argcmp(str, "DefaultVersion")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DefaultVersion")) == 0 || aret == '=' || aret == '.') { s->is_set_default_version = 1; if (!aa || !strcasecmp(aa, "true")) { s->default_version = 1; @@ -7261,7 +15283,7 @@ int policy_version_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) BAD_RET("DefaultVersion require true/false\n"); } } else - if ((aret = argcmp(str, "VersionId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VersionId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VersionId argument missing\n"); s->version_id = aa; // string string @@ -7276,7 +15298,7 @@ int policy_version_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int private_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct private_ip *s = v_s; int aret = 0; - if ((aret = argcmp(str, "IsPrimary")) == 0 || aret == '=') { + if ((aret = strcmp(str, "IsPrimary")) == 0 || aret == '=' || aret == '.') { s->is_set_is_primary = 1; if (!aa || !strcasecmp(aa, "true")) { s->is_primary = 1; @@ -7286,7 +15308,7 @@ int private_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("IsPrimary require true/false\n"); } } else - if ((aret = argcmp(str, "LinkPublicIp")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LinkPublicIp")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "LinkPublicIp argument missing\n"); @@ -7303,12 +15325,12 @@ int private_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->link_public_ip_str = aa; } } else - if ((aret = argcmp(str, "PrivateDnsName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PrivateDnsName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PrivateDnsName argument missing\n"); s->private_dns_name = aa; // string string } else - if ((aret = argcmp(str, "PrivateIp")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PrivateIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PrivateIp argument missing\n"); s->private_ip = aa; // string string @@ -7323,7 +15345,7 @@ int private_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int private_ip_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct private_ip_light *s = v_s; int aret = 0; - if ((aret = argcmp(str, "IsPrimary")) == 0 || aret == '=') { + if ((aret = strcmp(str, "IsPrimary")) == 0 || aret == '=' || aret == '.') { s->is_set_is_primary = 1; if (!aa || !strcasecmp(aa, "true")) { s->is_primary = 1; @@ -7333,7 +15355,7 @@ int private_ip_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa BAD_RET("IsPrimary require true/false\n"); } } else - if ((aret = argcmp(str, "PrivateIp")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PrivateIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PrivateIp argument missing\n"); s->private_ip = aa; // string string @@ -7348,7 +15370,7 @@ int private_ip_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa int private_ip_light_for_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct private_ip_light_for_vm *s = v_s; int aret = 0; - if ((aret = argcmp(str, "IsPrimary")) == 0 || aret == '=') { + if ((aret = strcmp(str, "IsPrimary")) == 0 || aret == '=' || aret == '.') { s->is_set_is_primary = 1; if (!aa || !strcasecmp(aa, "true")) { s->is_primary = 1; @@ -7358,7 +15380,7 @@ int private_ip_light_for_vm_parser(void *v_s, char *str, char *aa, struct ptr_ar BAD_RET("IsPrimary require true/false\n"); } } else - if ((aret = argcmp(str, "LinkPublicIp")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LinkPublicIp")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "LinkPublicIp argument missing\n"); @@ -7375,12 +15397,12 @@ int private_ip_light_for_vm_parser(void *v_s, char *str, char *aa, struct ptr_ar s->link_public_ip_str = aa; } } else - if ((aret = argcmp(str, "PrivateDnsName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PrivateDnsName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PrivateDnsName argument missing\n"); s->private_dns_name = aa; // string string } else - if ((aret = argcmp(str, "PrivateIp")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PrivateIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PrivateIp argument missing\n"); s->private_ip = aa; // string string @@ -7395,17 +15417,17 @@ int private_ip_light_for_vm_parser(void *v_s, char *str, char *aa, struct ptr_ar int product_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct product_type *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Description")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = argcmp(str, "ProductTypeId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ProductTypeId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ProductTypeId argument missing\n"); s->product_type_id = aa; // string string } else - if ((aret = argcmp(str, "Vendor")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Vendor")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Vendor argument missing\n"); s->vendor = aa; // string string @@ -7420,37 +15442,37 @@ int product_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct public_ip *s = v_s; int aret = 0; - if ((aret = argcmp(str, "LinkPublicIpId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LinkPublicIpId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LinkPublicIpId argument missing\n"); s->link_public_ip_id = aa; // string string } else - if ((aret = argcmp(str, "NicAccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NicAccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NicAccountId argument missing\n"); s->nic_account_id = aa; // string string } else - if ((aret = argcmp(str, "NicId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NicId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NicId argument missing\n"); s->nic_id = aa; // string string } else - if ((aret = argcmp(str, "PrivateIp")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PrivateIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PrivateIp argument missing\n"); s->private_ip = aa; // string string } else - if ((aret = argcmp(str, "PublicIp")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PublicIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIp argument missing\n"); s->public_ip = aa; // string string } else - if ((aret = argcmp(str, "PublicIpId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PublicIpId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIpId argument missing\n"); s->public_ip_id = aa; // string string } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -7475,7 +15497,7 @@ int public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = argcmp(str, "VmId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmId argument missing\n"); s->vm_id = aa; // string string @@ -7490,12 +15512,12 @@ int public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int public_ip_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct public_ip_light *s = v_s; int aret = 0; - if ((aret = argcmp(str, "PublicIp")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PublicIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIp argument missing\n"); s->public_ip = aa; // string string } else - if ((aret = argcmp(str, "PublicIpId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PublicIpId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIpId argument missing\n"); s->public_ip_id = aa; // string string @@ -7510,37 +15532,37 @@ int public_ip_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int quota_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct quota *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = argcmp(str, "Description")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = argcmp(str, "MaxValue")) == 0 || aret == '=') { + if ((aret = strcmp(str, "MaxValue")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "MaxValue argument missing\n"); s->is_set_max_value = 1; s->max_value = atoi(aa); } else - if ((aret = argcmp(str, "Name")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Name")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Name argument missing\n"); s->name = aa; // string string } else - if ((aret = argcmp(str, "QuotaCollection")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QuotaCollection")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QuotaCollection argument missing\n"); s->quota_collection = aa; // string string } else - if ((aret = argcmp(str, "ShortDescription")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ShortDescription")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ShortDescription argument missing\n"); s->short_description = aa; // string string } else - if ((aret = argcmp(str, "UsedValue")) == 0 || aret == '=') { + if ((aret = strcmp(str, "UsedValue")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "UsedValue argument missing\n"); s->is_set_used_value = 1; s->used_value = atoi(aa); @@ -7555,12 +15577,12 @@ int quota_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int quota_types_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct quota_types *s = v_s; int aret = 0; - if ((aret = argcmp(str, "QuotaType")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QuotaType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QuotaType argument missing\n"); s->quota_type = aa; // string string } else - if ((aret = argcmp(str, "Quotas")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Quotas")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -7595,7 +15617,7 @@ int quota_types_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int read_linked_policies_filters_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct read_linked_policies_filters *s = v_s; int aret = 0; - if ((aret = argcmp(str, "PathPrefix")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PathPrefix")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PathPrefix argument missing\n"); s->path_prefix = aa; // string string @@ -7610,7 +15632,7 @@ int read_linked_policies_filters_parser(void *v_s, char *str, char *aa, struct p int read_policies_filters_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct read_policies_filters *s = v_s; int aret = 0; - if ((aret = argcmp(str, "OnlyLinked")) == 0 || aret == '=') { + if ((aret = strcmp(str, "OnlyLinked")) == 0 || aret == '=' || aret == '.') { s->is_set_only_linked = 1; if (!aa || !strcasecmp(aa, "true")) { s->only_linked = 1; @@ -7620,12 +15642,12 @@ int read_policies_filters_parser(void *v_s, char *str, char *aa, struct ptr_arra BAD_RET("OnlyLinked require true/false\n"); } } else - if ((aret = argcmp(str, "PathPrefix")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PathPrefix")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PathPrefix argument missing\n"); s->path_prefix = aa; // string string } else - if ((aret = argcmp(str, "Scope")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Scope")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Scope argument missing\n"); s->scope = aa; // string string @@ -7640,12 +15662,12 @@ int read_policies_filters_parser(void *v_s, char *str, char *aa, struct ptr_arra int region_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct region *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Endpoint")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Endpoint")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Endpoint argument missing\n"); s->endpoint = aa; // string string } else - if ((aret = argcmp(str, "RegionName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "RegionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "RegionName argument missing\n"); s->region_name = aa; // string string @@ -7660,7 +15682,7 @@ int region_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int resource_load_balancer_tag_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct resource_load_balancer_tag *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Key")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Key")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Key argument missing\n"); s->key = aa; // string string @@ -7675,12 +15697,12 @@ int resource_load_balancer_tag_parser(void *v_s, char *str, char *aa, struct ptr int resource_tag_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct resource_tag *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Key")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Key")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Key argument missing\n"); s->key = aa; // string string } else - if ((aret = argcmp(str, "Value")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Value")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Value argument missing\n"); s->value = aa; // string string @@ -7695,57 +15717,57 @@ int resource_tag_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int route_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct route *s = v_s; int aret = 0; - if ((aret = argcmp(str, "CreationMethod")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CreationMethod")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationMethod argument missing\n"); s->creation_method = aa; // string string } else - if ((aret = argcmp(str, "DestinationIpRange")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DestinationIpRange")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DestinationIpRange argument missing\n"); s->destination_ip_range = aa; // string string } else - if ((aret = argcmp(str, "DestinationServiceId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DestinationServiceId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DestinationServiceId argument missing\n"); s->destination_service_id = aa; // string string } else - if ((aret = argcmp(str, "GatewayId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "GatewayId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "GatewayId argument missing\n"); s->gateway_id = aa; // string string } else - if ((aret = argcmp(str, "NatServiceId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NatServiceId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NatServiceId argument missing\n"); s->nat_service_id = aa; // string string } else - if ((aret = argcmp(str, "NetAccessPointId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NetAccessPointId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetAccessPointId argument missing\n"); s->net_access_point_id = aa; // string string } else - if ((aret = argcmp(str, "NetPeeringId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NetPeeringId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetPeeringId argument missing\n"); s->net_peering_id = aa; // string string } else - if ((aret = argcmp(str, "NicId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NicId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NicId argument missing\n"); s->nic_id = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "VmAccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VmAccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmAccountId argument missing\n"); s->vm_account_id = aa; // string string } else - if ((aret = argcmp(str, "VmId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmId argument missing\n"); s->vm_id = aa; // string string @@ -7760,17 +15782,17 @@ int route_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int route_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct route_light *s = v_s; int aret = 0; - if ((aret = argcmp(str, "DestinationIpRange")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DestinationIpRange")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DestinationIpRange argument missing\n"); s->destination_ip_range = aa; // string string } else - if ((aret = argcmp(str, "RouteType")) == 0 || aret == '=') { + if ((aret = strcmp(str, "RouteType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "RouteType argument missing\n"); s->route_type = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string @@ -7785,7 +15807,7 @@ int route_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int route_propagating_virtual_gateway_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct route_propagating_virtual_gateway *s = v_s; int aret = 0; - if ((aret = argcmp(str, "VirtualGatewayId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VirtualGatewayId argument missing\n"); s->virtual_gateway_id = aa; // string string @@ -7800,7 +15822,7 @@ int route_propagating_virtual_gateway_parser(void *v_s, char *str, char *aa, str int route_table_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct route_table *s = v_s; int aret = 0; - if ((aret = argcmp(str, "LinkRouteTables")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LinkRouteTables")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -7825,12 +15847,12 @@ int route_table_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->link_route_tables_str = aa; // array ref LinkRouteTable ref } } else - if ((aret = argcmp(str, "NetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = argcmp(str, "RoutePropagatingVirtualGateways")) == 0 || aret == '=') { + if ((aret = strcmp(str, "RoutePropagatingVirtualGateways")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -7855,12 +15877,12 @@ int route_table_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->route_propagating_virtual_gateways_str = aa; // array ref RoutePropagatingVirtualGateway ref } } else - if ((aret = argcmp(str, "RouteTableId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "RouteTableId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "RouteTableId argument missing\n"); s->route_table_id = aa; // string string } else - if ((aret = argcmp(str, "Routes")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Routes")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -7885,7 +15907,7 @@ int route_table_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->routes_str = aa; // array ref Route ref } } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -7920,17 +15942,17 @@ int route_table_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int security_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct security_group *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = argcmp(str, "Description")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = argcmp(str, "InboundRules")) == 0 || aret == '=') { + if ((aret = strcmp(str, "InboundRules")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -7955,12 +15977,12 @@ int security_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) s->inbound_rules_str = aa; // array ref SecurityGroupRule ref } } else - if ((aret = argcmp(str, "NetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = argcmp(str, "OutboundRules")) == 0 || aret == '=') { + if ((aret = strcmp(str, "OutboundRules")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -7985,17 +16007,17 @@ int security_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) s->outbound_rules_str = aa; // array ref SecurityGroupRule ref } } else - if ((aret = argcmp(str, "SecurityGroupId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SecurityGroupId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SecurityGroupId argument missing\n"); s->security_group_id = aa; // string string } else - if ((aret = argcmp(str, "SecurityGroupName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SecurityGroupName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SecurityGroupName argument missing\n"); s->security_group_name = aa; // string string } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -8030,12 +16052,12 @@ int security_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int security_group_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct security_group_light *s = v_s; int aret = 0; - if ((aret = argcmp(str, "SecurityGroupId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SecurityGroupId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SecurityGroupId argument missing\n"); s->security_group_id = aa; // string string } else - if ((aret = argcmp(str, "SecurityGroupName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SecurityGroupName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SecurityGroupName argument missing\n"); s->security_group_name = aa; // string string @@ -8050,24 +16072,45 @@ int security_group_light_parser(void *v_s, char *str, char *aa, struct ptr_array int security_group_rule_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct security_group_rule *s = v_s; int aret = 0; - if ((aret = argcmp(str, "FromPortRange")) == 0 || aret == '=') { + if ((aret = strcmp(str, "FromPortRange")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "FromPortRange argument missing\n"); s->is_set_from_port_range = 1; s->from_port_range = atoi(aa); } else - if ((aret = argcmp(str, "IpProtocol")) == 0 || aret == '=') { + if ((aret = strcmp(str, "IpProtocol")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "IpProtocol argument missing\n"); s->ip_protocol = aa; // string string } else - if ((aret = argcmp(str, "IpRanges")) == 0 || aret == '=') { - TRY(!aa, "IpRanges argument missing\n"); - s->ip_ranges_str = aa; + if ((aret = strcmp(str, "IpRanges")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "IpRanges argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "IpRanges require an index\n"); + if (s->ip_ranges) { + for (; s->ip_ranges[last]; ++last); + } + if (pos < last) { + s->ip_ranges[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->ip_ranges, "", pa); + SET_NEXT(s->ip_ranges, (aa), pa); + } + } else { + TRY(!aa, "IpRanges argument missing\n"); + s->ip_ranges_str = aa; + } } else if (!(aret = strcmp(str, "IpRanges[]")) || aret == '=') { TRY(!aa, "IpRanges[] argument missing\n"); SET_NEXT(s->ip_ranges, (aa), pa); } else - if ((aret = argcmp(str, "SecurityGroupsMembers")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SecurityGroupsMembers")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -8092,14 +16135,35 @@ int security_group_rule_parser(void *v_s, char *str, char *aa, struct ptr_array s->security_groups_members_str = aa; // array ref SecurityGroupsMember ref } } else - if ((aret = argcmp(str, "ServiceIds")) == 0 || aret == '=') { - TRY(!aa, "ServiceIds argument missing\n"); - s->service_ids_str = aa; + if ((aret = strcmp(str, "ServiceIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ServiceIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ServiceIds require an index\n"); + if (s->service_ids) { + for (; s->service_ids[last]; ++last); + } + if (pos < last) { + s->service_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->service_ids, "", pa); + SET_NEXT(s->service_ids, (aa), pa); + } + } else { + TRY(!aa, "ServiceIds argument missing\n"); + s->service_ids_str = aa; + } } else if (!(aret = strcmp(str, "ServiceIds[]")) || aret == '=') { TRY(!aa, "ServiceIds[] argument missing\n"); SET_NEXT(s->service_ids, (aa), pa); } else - if ((aret = argcmp(str, "ToPortRange")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ToPortRange")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ToPortRange argument missing\n"); s->is_set_to_port_range = 1; s->to_port_range = atoi(aa); @@ -8114,17 +16178,17 @@ int security_group_rule_parser(void *v_s, char *str, char *aa, struct ptr_array int security_groups_member_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct security_groups_member *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = argcmp(str, "SecurityGroupId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SecurityGroupId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SecurityGroupId argument missing\n"); s->security_group_id = aa; // string string } else - if ((aret = argcmp(str, "SecurityGroupName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SecurityGroupName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SecurityGroupName argument missing\n"); s->security_group_name = aa; // string string @@ -8139,32 +16203,32 @@ int security_groups_member_parser(void *v_s, char *str, char *aa, struct ptr_arr int server_certificate_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct server_certificate *s = v_s; int aret = 0; - if ((aret = argcmp(str, "ExpirationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ExpirationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ExpirationDate argument missing\n"); s->expiration_date = aa; // string string } else - if ((aret = argcmp(str, "Id")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Id")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Id argument missing\n"); s->id = aa; // string string } else - if ((aret = argcmp(str, "Name")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Name")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Name argument missing\n"); s->name = aa; // string string } else - if ((aret = argcmp(str, "Orn")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Orn")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Orn argument missing\n"); s->orn = aa; // string string } else - if ((aret = argcmp(str, "Path")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Path")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Path argument missing\n"); s->path = aa; // string string } else - if ((aret = argcmp(str, "UploadDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "UploadDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "UploadDate argument missing\n"); s->upload_date = aa; // string string @@ -8179,19 +16243,40 @@ int server_certificate_parser(void *v_s, char *str, char *aa, struct ptr_array * int service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct service *s = v_s; int aret = 0; - if ((aret = argcmp(str, "IpRanges")) == 0 || aret == '=') { - TRY(!aa, "IpRanges argument missing\n"); - s->ip_ranges_str = aa; + if ((aret = strcmp(str, "IpRanges")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "IpRanges argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "IpRanges require an index\n"); + if (s->ip_ranges) { + for (; s->ip_ranges[last]; ++last); + } + if (pos < last) { + s->ip_ranges[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->ip_ranges, "", pa); + SET_NEXT(s->ip_ranges, (aa), pa); + } + } else { + TRY(!aa, "IpRanges argument missing\n"); + s->ip_ranges_str = aa; + } } else if (!(aret = strcmp(str, "IpRanges[]")) || aret == '=') { TRY(!aa, "IpRanges[] argument missing\n"); SET_NEXT(s->ip_ranges, (aa), pa); } else - if ((aret = argcmp(str, "ServiceId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ServiceId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ServiceId argument missing\n"); s->service_id = aa; // string string } else - if ((aret = argcmp(str, "ServiceName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ServiceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ServiceName argument missing\n"); s->service_name = aa; // string string @@ -8206,27 +16291,27 @@ int service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct snapshot *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccountAlias")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AccountAlias")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountAlias argument missing\n"); s->account_alias = aa; // string string } else - if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = argcmp(str, "Description")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = argcmp(str, "PermissionsToCreateVolume")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PermissionsToCreateVolume")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "PermissionsToCreateVolume argument missing\n"); @@ -8243,22 +16328,22 @@ int snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->permissions_to_create_volume_str = aa; } } else - if ((aret = argcmp(str, "Progress")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Progress")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Progress argument missing\n"); s->is_set_progress = 1; s->progress = atoi(aa); } else - if ((aret = argcmp(str, "SnapshotId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SnapshotId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SnapshotId argument missing\n"); s->snapshot_id = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -8283,12 +16368,12 @@ int snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = argcmp(str, "VolumeId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VolumeId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VolumeId argument missing\n"); s->volume_id = aa; // string string } else - if ((aret = argcmp(str, "VolumeSize")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VolumeSize")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VolumeSize argument missing\n"); s->is_set_volume_size = 1; s->volume_size = atoi(aa); @@ -8303,12 +16388,12 @@ int snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int snapshot_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct snapshot_export_task *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Comment")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Comment")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Comment argument missing\n"); s->comment = aa; // string string } else - if ((aret = argcmp(str, "OsuExport")) == 0 || aret == '=') { + if ((aret = strcmp(str, "OsuExport")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "OsuExport argument missing\n"); @@ -8325,22 +16410,22 @@ int snapshot_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array s->osu_export_str = aa; } } else - if ((aret = argcmp(str, "Progress")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Progress")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Progress argument missing\n"); s->is_set_progress = 1; s->progress = atoi(aa); } else - if ((aret = argcmp(str, "SnapshotId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SnapshotId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SnapshotId argument missing\n"); s->snapshot_id = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -8365,7 +16450,7 @@ int snapshot_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = argcmp(str, "TaskId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "TaskId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "TaskId argument missing\n"); s->task_id = aa; // string string @@ -8380,17 +16465,17 @@ int snapshot_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array int source_net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct source_net *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = argcmp(str, "IpRange")) == 0 || aret == '=') { + if ((aret = strcmp(str, "IpRange")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "IpRange argument missing\n"); s->ip_range = aa; // string string } else - if ((aret = argcmp(str, "NetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string @@ -8405,12 +16490,12 @@ int source_net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int source_security_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct source_security_group *s = v_s; int aret = 0; - if ((aret = argcmp(str, "SecurityGroupAccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SecurityGroupAccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SecurityGroupAccountId argument missing\n"); s->security_group_account_id = aa; // string string } else - if ((aret = argcmp(str, "SecurityGroupName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SecurityGroupName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SecurityGroupName argument missing\n"); s->security_group_name = aa; // string string @@ -8425,12 +16510,12 @@ int source_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arra int state_comment_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct state_comment *s = v_s; int aret = 0; - if ((aret = argcmp(str, "StateCode")) == 0 || aret == '=') { + if ((aret = strcmp(str, "StateCode")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "StateCode argument missing\n"); s->state_code = aa; // string string } else - if ((aret = argcmp(str, "StateMessage")) == 0 || aret == '=') { + if ((aret = strcmp(str, "StateMessage")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "StateMessage argument missing\n"); s->state_message = aa; // string string @@ -8445,17 +16530,17 @@ int state_comment_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int subnet_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct subnet *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AvailableIpsCount")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AvailableIpsCount")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AvailableIpsCount argument missing\n"); s->is_set_available_ips_count = 1; s->available_ips_count = atoi(aa); } else - if ((aret = argcmp(str, "IpRange")) == 0 || aret == '=') { + if ((aret = strcmp(str, "IpRange")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "IpRange argument missing\n"); s->ip_range = aa; // string string } else - if ((aret = argcmp(str, "MapPublicIpOnLaunch")) == 0 || aret == '=') { + if ((aret = strcmp(str, "MapPublicIpOnLaunch")) == 0 || aret == '=' || aret == '.') { s->is_set_map_public_ip_on_launch = 1; if (!aa || !strcasecmp(aa, "true")) { s->map_public_ip_on_launch = 1; @@ -8465,27 +16550,27 @@ int subnet_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("MapPublicIpOnLaunch require true/false\n"); } } else - if ((aret = argcmp(str, "NetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "SubnetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubnetId argument missing\n"); s->subnet_id = aa; // string string } else - if ((aret = argcmp(str, "SubregionName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubregionName argument missing\n"); s->subregion_name = aa; // string string } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -8520,22 +16605,22 @@ int subnet_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int subregion_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct subregion *s = v_s; int aret = 0; - if ((aret = argcmp(str, "LocationCode")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LocationCode")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LocationCode argument missing\n"); s->location_code = aa; // string string } else - if ((aret = argcmp(str, "RegionName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "RegionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "RegionName argument missing\n"); s->region_name = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "SubregionName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubregionName argument missing\n"); s->subregion_name = aa; // string string @@ -8550,22 +16635,22 @@ int subregion_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int tag_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct tag *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Key")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Key")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Key argument missing\n"); s->key = aa; // string string } else - if ((aret = argcmp(str, "ResourceId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ResourceId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ResourceId argument missing\n"); s->resource_id = aa; // string string } else - if ((aret = argcmp(str, "ResourceType")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ResourceType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ResourceType argument missing\n"); s->resource_type = aa; // string string } else - if ((aret = argcmp(str, "Value")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Value")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Value argument missing\n"); s->value = aa; // string string @@ -8580,27 +16665,27 @@ int tag_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int user_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct user *s = v_s; int aret = 0; - if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = argcmp(str, "LastModificationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LastModificationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LastModificationDate argument missing\n"); s->last_modification_date = aa; // string string } else - if ((aret = argcmp(str, "Path")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Path")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Path argument missing\n"); s->path = aa; // string string } else - if ((aret = argcmp(str, "UserId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "UserId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "UserId argument missing\n"); s->user_id = aa; // string string } else - if ((aret = argcmp(str, "UserName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "UserName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "UserName argument missing\n"); s->user_name = aa; // string string @@ -8615,32 +16700,32 @@ int user_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int user_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct user_group *s = v_s; int aret = 0; - if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = argcmp(str, "LastModificationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LastModificationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LastModificationDate argument missing\n"); s->last_modification_date = aa; // string string } else - if ((aret = argcmp(str, "Name")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Name")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Name argument missing\n"); s->name = aa; // string string } else - if ((aret = argcmp(str, "Orn")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Orn")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Orn argument missing\n"); s->orn = aa; // string string } else - if ((aret = argcmp(str, "Path")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Path")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Path argument missing\n"); s->path = aa; // string string } else - if ((aret = argcmp(str, "UserGroupId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "UserGroupId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "UserGroupId argument missing\n"); s->user_group_id = aa; // string string @@ -8655,27 +16740,27 @@ int user_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int vgw_telemetry_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct vgw_telemetry *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AcceptedRouteCount")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AcceptedRouteCount")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AcceptedRouteCount argument missing\n"); s->is_set_accepted_route_count = 1; s->accepted_route_count = atoi(aa); } else - if ((aret = argcmp(str, "LastStateChangeDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LastStateChangeDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LastStateChangeDate argument missing\n"); s->last_state_change_date = aa; // string string } else - if ((aret = argcmp(str, "OutsideIpAddress")) == 0 || aret == '=') { + if ((aret = strcmp(str, "OutsideIpAddress")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OutsideIpAddress argument missing\n"); s->outside_ip_address = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "StateDescription")) == 0 || aret == '=') { + if ((aret = strcmp(str, "StateDescription")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "StateDescription argument missing\n"); s->state_description = aa; // string string @@ -8690,12 +16775,12 @@ int vgw_telemetry_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int virtual_gateway_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct virtual_gateway *s = v_s; int aret = 0; - if ((aret = argcmp(str, "ConnectionType")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ConnectionType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ConnectionType argument missing\n"); s->connection_type = aa; // string string } else - if ((aret = argcmp(str, "NetToVirtualGatewayLinks")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NetToVirtualGatewayLinks")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -8720,12 +16805,12 @@ int virtual_gateway_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) s->net_to_virtual_gateway_links_str = aa; // array ref NetToVirtualGatewayLink ref } } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -8750,7 +16835,7 @@ int virtual_gateway_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = argcmp(str, "VirtualGatewayId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VirtualGatewayId argument missing\n"); s->virtual_gateway_id = aa; // string string @@ -8765,12 +16850,12 @@ int virtual_gateway_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct vm *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Architecture")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Architecture")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Architecture argument missing\n"); s->architecture = aa; // string string } else - if ((aret = argcmp(str, "BlockDeviceMappings")) == 0 || aret == '=') { + if ((aret = strcmp(str, "BlockDeviceMappings")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -8795,7 +16880,7 @@ int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->block_device_mappings_str = aa; // array ref BlockDeviceMappingCreated ref } } else - if ((aret = argcmp(str, "BsuOptimized")) == 0 || aret == '=') { + if ((aret = strcmp(str, "BsuOptimized")) == 0 || aret == '=' || aret == '.') { s->is_set_bsu_optimized = 1; if (!aa || !strcasecmp(aa, "true")) { s->bsu_optimized = 1; @@ -8805,17 +16890,17 @@ int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("BsuOptimized require true/false\n"); } } else - if ((aret = argcmp(str, "ClientToken")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ClientToken")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ClientToken argument missing\n"); s->client_token = aa; // string string } else - if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = argcmp(str, "DeletionProtection")) == 0 || aret == '=') { + if ((aret = strcmp(str, "DeletionProtection")) == 0 || aret == '=' || aret == '.') { s->is_set_deletion_protection = 1; if (!aa || !strcasecmp(aa, "true")) { s->deletion_protection = 1; @@ -8825,17 +16910,17 @@ int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("DeletionProtection require true/false\n"); } } else - if ((aret = argcmp(str, "Hypervisor")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Hypervisor")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Hypervisor argument missing\n"); s->hypervisor = aa; // string string } else - if ((aret = argcmp(str, "ImageId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ImageId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ImageId argument missing\n"); s->image_id = aa; // string string } else - if ((aret = argcmp(str, "IsSourceDestChecked")) == 0 || aret == '=') { + if ((aret = strcmp(str, "IsSourceDestChecked")) == 0 || aret == '=' || aret == '.') { s->is_set_is_source_dest_checked = 1; if (!aa || !strcasecmp(aa, "true")) { s->is_source_dest_checked = 1; @@ -8845,17 +16930,17 @@ int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("IsSourceDestChecked require true/false\n"); } } else - if ((aret = argcmp(str, "KeypairName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "KeypairName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "KeypairName argument missing\n"); s->keypair_name = aa; // string string } else - if ((aret = argcmp(str, "LaunchNumber")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LaunchNumber")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LaunchNumber argument missing\n"); s->is_set_launch_number = 1; s->launch_number = atoi(aa); } else - if ((aret = argcmp(str, "NestedVirtualization")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NestedVirtualization")) == 0 || aret == '=' || aret == '.') { s->is_set_nested_virtualization = 1; if (!aa || !strcasecmp(aa, "true")) { s->nested_virtualization = 1; @@ -8865,12 +16950,12 @@ int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("NestedVirtualization require true/false\n"); } } else - if ((aret = argcmp(str, "NetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = argcmp(str, "Nics")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Nics")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -8895,17 +16980,17 @@ int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->nics_str = aa; // array ref NicLight ref } } else - if ((aret = argcmp(str, "OsFamily")) == 0 || aret == '=') { + if ((aret = strcmp(str, "OsFamily")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OsFamily argument missing\n"); s->os_family = aa; // string string } else - if ((aret = argcmp(str, "Performance")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Performance")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Performance argument missing\n"); s->performance = aa; // string string } else - if ((aret = argcmp(str, "Placement")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Placement")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "Placement argument missing\n"); @@ -8922,49 +17007,70 @@ int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->placement_str = aa; } } else - if ((aret = argcmp(str, "PrivateDnsName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PrivateDnsName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PrivateDnsName argument missing\n"); s->private_dns_name = aa; // string string } else - if ((aret = argcmp(str, "PrivateIp")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PrivateIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PrivateIp argument missing\n"); s->private_ip = aa; // string string } else - if ((aret = argcmp(str, "ProductCodes")) == 0 || aret == '=') { - TRY(!aa, "ProductCodes argument missing\n"); - s->product_codes_str = aa; + if ((aret = strcmp(str, "ProductCodes")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ProductCodes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ProductCodes require an index\n"); + if (s->product_codes) { + for (; s->product_codes[last]; ++last); + } + if (pos < last) { + s->product_codes[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->product_codes, "", pa); + SET_NEXT(s->product_codes, (aa), pa); + } + } else { + TRY(!aa, "ProductCodes argument missing\n"); + s->product_codes_str = aa; + } } else if (!(aret = strcmp(str, "ProductCodes[]")) || aret == '=') { TRY(!aa, "ProductCodes[] argument missing\n"); SET_NEXT(s->product_codes, (aa), pa); } else - if ((aret = argcmp(str, "PublicDnsName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PublicDnsName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicDnsName argument missing\n"); s->public_dns_name = aa; // string string } else - if ((aret = argcmp(str, "PublicIp")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PublicIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIp argument missing\n"); s->public_ip = aa; // string string } else - if ((aret = argcmp(str, "ReservationId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ReservationId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ReservationId argument missing\n"); s->reservation_id = aa; // string string } else - if ((aret = argcmp(str, "RootDeviceName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "RootDeviceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "RootDeviceName argument missing\n"); s->root_device_name = aa; // string string } else - if ((aret = argcmp(str, "RootDeviceType")) == 0 || aret == '=') { + if ((aret = strcmp(str, "RootDeviceType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "RootDeviceType argument missing\n"); s->root_device_type = aa; // string string } else - if ((aret = argcmp(str, "SecurityGroups")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SecurityGroups")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -8989,22 +17095,22 @@ int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->security_groups_str = aa; // array ref SecurityGroupLight ref } } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "StateReason")) == 0 || aret == '=') { + if ((aret = strcmp(str, "StateReason")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "StateReason argument missing\n"); s->state_reason = aa; // string string } else - if ((aret = argcmp(str, "SubnetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubnetId argument missing\n"); s->subnet_id = aa; // string string } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -9029,22 +17135,22 @@ int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = argcmp(str, "UserData")) == 0 || aret == '=') { + if ((aret = strcmp(str, "UserData")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "UserData argument missing\n"); s->user_data = aa; // string string } else - if ((aret = argcmp(str, "VmId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmId argument missing\n"); s->vm_id = aa; // string string } else - if ((aret = argcmp(str, "VmInitiatedShutdownBehavior")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VmInitiatedShutdownBehavior")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmInitiatedShutdownBehavior argument missing\n"); s->vm_initiated_shutdown_behavior = aa; // string string } else - if ((aret = argcmp(str, "VmType")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VmType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmType argument missing\n"); s->vm_type = aa; // string string @@ -9059,39 +17165,60 @@ int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int vm_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct vm_group *s = v_s; int aret = 0; - if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = argcmp(str, "Description")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = argcmp(str, "PositioningStrategy")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PositioningStrategy")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PositioningStrategy argument missing\n"); s->positioning_strategy = aa; // string string } else - if ((aret = argcmp(str, "SecurityGroupIds")) == 0 || aret == '=') { - TRY(!aa, "SecurityGroupIds argument missing\n"); - s->security_group_ids_str = aa; + if ((aret = strcmp(str, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SecurityGroupIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SecurityGroupIds require an index\n"); + if (s->security_group_ids) { + for (; s->security_group_ids[last]; ++last); + } + if (pos < last) { + s->security_group_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->security_group_ids, "", pa); + SET_NEXT(s->security_group_ids, (aa), pa); + } + } else { + TRY(!aa, "SecurityGroupIds argument missing\n"); + s->security_group_ids_str = aa; + } } else if (!(aret = strcmp(str, "SecurityGroupIds[]")) || aret == '=') { TRY(!aa, "SecurityGroupIds[] argument missing\n"); SET_NEXT(s->security_group_ids, (aa), pa); } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "SubnetId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubnetId argument missing\n"); s->subnet_id = aa; // string string } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -9116,29 +17243,50 @@ int vm_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = argcmp(str, "VmCount")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VmCount")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmCount argument missing\n"); s->is_set_vm_count = 1; s->vm_count = atoi(aa); } else - if ((aret = argcmp(str, "VmGroupId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VmGroupId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmGroupId argument missing\n"); s->vm_group_id = aa; // string string } else - if ((aret = argcmp(str, "VmGroupName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VmGroupName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmGroupName argument missing\n"); s->vm_group_name = aa; // string string } else - if ((aret = argcmp(str, "VmIds")) == 0 || aret == '=') { - TRY(!aa, "VmIds argument missing\n"); - s->vm_ids_str = aa; + if ((aret = strcmp(str, "VmIds")) == 0 || aret == '=' || aret == '.') { + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmIds require an index\n"); + if (s->vm_ids) { + for (; s->vm_ids[last]; ++last); + } + if (pos < last) { + s->vm_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_ids, "", pa); + SET_NEXT(s->vm_ids, (aa), pa); + } + } else { + TRY(!aa, "VmIds argument missing\n"); + s->vm_ids_str = aa; + } } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); } else - if ((aret = argcmp(str, "VmTemplateId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VmTemplateId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmTemplateId argument missing\n"); s->vm_template_id = aa; // string string @@ -9153,17 +17301,17 @@ int vm_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int vm_state_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct vm_state *s = v_s; int aret = 0; - if ((aret = argcmp(str, "CurrentState")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CurrentState")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CurrentState argument missing\n"); s->current_state = aa; // string string } else - if ((aret = argcmp(str, "PreviousState")) == 0 || aret == '=') { + if ((aret = strcmp(str, "PreviousState")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PreviousState argument missing\n"); s->previous_state = aa; // string string } else - if ((aret = argcmp(str, "VmId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmId argument missing\n"); s->vm_id = aa; // string string @@ -9178,7 +17326,7 @@ int vm_state_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int vm_states_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct vm_states *s = v_s; int aret = 0; - if ((aret = argcmp(str, "MaintenanceEvents")) == 0 || aret == '=') { + if ((aret = strcmp(str, "MaintenanceEvents")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -9203,17 +17351,17 @@ int vm_states_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->maintenance_events_str = aa; // array ref MaintenanceEvent ref } } else - if ((aret = argcmp(str, "SubregionName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubregionName argument missing\n"); s->subregion_name = aa; // string string } else - if ((aret = argcmp(str, "VmId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmId argument missing\n"); s->vm_id = aa; // string string } else - if ((aret = argcmp(str, "VmState")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VmState")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmState argument missing\n"); s->vm_state = aa; // string string @@ -9228,47 +17376,47 @@ int vm_states_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int vm_template_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct vm_template *s = v_s; int aret = 0; - if ((aret = argcmp(str, "CpuCores")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CpuCores")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CpuCores argument missing\n"); s->is_set_cpu_cores = 1; s->cpu_cores = atoi(aa); } else - if ((aret = argcmp(str, "CpuGeneration")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CpuGeneration")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CpuGeneration argument missing\n"); s->cpu_generation = aa; // string string } else - if ((aret = argcmp(str, "CpuPerformance")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CpuPerformance")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CpuPerformance argument missing\n"); s->cpu_performance = aa; // string string } else - if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = argcmp(str, "Description")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = argcmp(str, "ImageId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ImageId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ImageId argument missing\n"); s->image_id = aa; // string string } else - if ((aret = argcmp(str, "KeypairName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "KeypairName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "KeypairName argument missing\n"); s->keypair_name = aa; // string string } else - if ((aret = argcmp(str, "Ram")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Ram")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Ram argument missing\n"); s->is_set_ram = 1; s->ram = atoi(aa); } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -9293,12 +17441,12 @@ int vm_template_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = argcmp(str, "VmTemplateId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VmTemplateId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmTemplateId argument missing\n"); s->vm_template_id = aa; // string string } else - if ((aret = argcmp(str, "VmTemplateName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VmTemplateName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmTemplateName argument missing\n"); s->vm_template_name = aa; // string string @@ -9313,7 +17461,7 @@ int vm_template_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int vm_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct vm_type *s = v_s; int aret = 0; - if ((aret = argcmp(str, "BsuOptimized")) == 0 || aret == '=') { + if ((aret = strcmp(str, "BsuOptimized")) == 0 || aret == '=' || aret == '.') { s->is_set_bsu_optimized = 1; if (!aa || !strcasecmp(aa, "true")) { s->bsu_optimized = 1; @@ -9323,47 +17471,47 @@ int vm_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("BsuOptimized require true/false\n"); } } else - if ((aret = argcmp(str, "EphemeralsType")) == 0 || aret == '=') { + if ((aret = strcmp(str, "EphemeralsType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "EphemeralsType argument missing\n"); s->ephemerals_type = aa; // string string } else - if ((aret = argcmp(str, "Eth")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Eth")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Eth argument missing\n"); s->is_set_eth = 1; s->eth = atoi(aa); } else - if ((aret = argcmp(str, "Gpu")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Gpu")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Gpu argument missing\n"); s->is_set_gpu = 1; s->gpu = atoi(aa); } else - if ((aret = argcmp(str, "MaxPrivateIps")) == 0 || aret == '=') { + if ((aret = strcmp(str, "MaxPrivateIps")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "MaxPrivateIps argument missing\n"); s->is_set_max_private_ips = 1; s->max_private_ips = atoi(aa); } else - if ((aret = argcmp(str, "MemorySize")) == 0 || aret == '=') { + if ((aret = strcmp(str, "MemorySize")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "MemorySize argument missing\n"); s->is_set_memory_size = 1; s->memory_size = atof(aa); } else - if ((aret = argcmp(str, "VcoreCount")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VcoreCount")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VcoreCount argument missing\n"); s->is_set_vcore_count = 1; s->vcore_count = atoi(aa); } else - if ((aret = argcmp(str, "VmTypeName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VmTypeName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmTypeName argument missing\n"); s->vm_type_name = aa; // string string } else - if ((aret = argcmp(str, "VolumeCount")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VolumeCount")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VolumeCount argument missing\n"); s->is_set_volume_count = 1; s->volume_count = atoi(aa); } else - if ((aret = argcmp(str, "VolumeSize")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VolumeSize")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VolumeSize argument missing\n"); s->is_set_volume_size = 1; s->volume_size = atoi(aa); @@ -9378,17 +17526,17 @@ int vm_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct volume *s = v_s; int aret = 0; - if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = argcmp(str, "Iops")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Iops")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Iops argument missing\n"); s->is_set_iops = 1; s->iops = atoi(aa); } else - if ((aret = argcmp(str, "LinkedVolumes")) == 0 || aret == '=') { + if ((aret = strcmp(str, "LinkedVolumes")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -9413,27 +17561,27 @@ int volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->linked_volumes_str = aa; // array ref LinkedVolume ref } } else - if ((aret = argcmp(str, "Size")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Size")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Size argument missing\n"); s->is_set_size = 1; s->size = atoi(aa); } else - if ((aret = argcmp(str, "SnapshotId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SnapshotId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SnapshotId argument missing\n"); s->snapshot_id = aa; // string string } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "SubregionName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubregionName argument missing\n"); s->subregion_name = aa; // string string } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -9458,12 +17606,12 @@ int volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = argcmp(str, "VolumeId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VolumeId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VolumeId argument missing\n"); s->volume_id = aa; // string string } else - if ((aret = argcmp(str, "VolumeType")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VolumeType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VolumeType argument missing\n"); s->volume_type = aa; // string string @@ -9478,22 +17626,22 @@ int volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct vpn_connection *s = v_s; int aret = 0; - if ((aret = argcmp(str, "ClientGatewayConfiguration")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ClientGatewayConfiguration")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ClientGatewayConfiguration argument missing\n"); s->client_gateway_configuration = aa; // string string } else - if ((aret = argcmp(str, "ClientGatewayId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ClientGatewayId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ClientGatewayId argument missing\n"); s->client_gateway_id = aa; // string string } else - if ((aret = argcmp(str, "ConnectionType")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ConnectionType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ConnectionType argument missing\n"); s->connection_type = aa; // string string } else - if ((aret = argcmp(str, "Routes")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Routes")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -9518,12 +17666,12 @@ int vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) s->routes_str = aa; // array ref RouteLight ref } } else - if ((aret = argcmp(str, "State")) == 0 || aret == '=') { + if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = argcmp(str, "StaticRoutesOnly")) == 0 || aret == '=') { + if ((aret = strcmp(str, "StaticRoutesOnly")) == 0 || aret == '=' || aret == '.') { s->is_set_static_routes_only = 1; if (!aa || !strcasecmp(aa, "true")) { s->static_routes_only = 1; @@ -9533,7 +17681,7 @@ int vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) BAD_RET("StaticRoutesOnly require true/false\n"); } } else - if ((aret = argcmp(str, "Tags")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -9558,7 +17706,7 @@ int vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = argcmp(str, "VgwTelemetries")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VgwTelemetries")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -9583,17 +17731,17 @@ int vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) s->vgw_telemetries_str = aa; // array ref VgwTelemetry ref } } else - if ((aret = argcmp(str, "VirtualGatewayId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VirtualGatewayId argument missing\n"); s->virtual_gateway_id = aa; // string string } else - if ((aret = argcmp(str, "VpnConnectionId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VpnConnectionId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VpnConnectionId argument missing\n"); s->vpn_connection_id = aa; // string string } else - if ((aret = argcmp(str, "VpnOptions")) == 0 || aret == '=') { + if ((aret = strcmp(str, "VpnOptions")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "VpnOptions argument missing\n"); @@ -9620,7 +17768,7 @@ int vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int vpn_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct vpn_options *s = v_s; int aret = 0; - if ((aret = argcmp(str, "Phase1Options")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Phase1Options")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "Phase1Options argument missing\n"); @@ -9637,7 +17785,7 @@ int vpn_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->phase1_options_str = aa; } } else - if ((aret = argcmp(str, "Phase2Options")) == 0 || aret == '=') { + if ((aret = strcmp(str, "Phase2Options")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "Phase2Options argument missing\n"); @@ -9654,7 +17802,7 @@ int vpn_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->phase2_options_str = aa; } } else - if ((aret = argcmp(str, "TunnelInsideIpRange")) == 0 || aret == '=') { + if ((aret = strcmp(str, "TunnelInsideIpRange")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "TunnelInsideIpRange argument missing\n"); s->tunnel_inside_ip_range = aa; // string string @@ -9669,7 +17817,7 @@ int vpn_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct with *s = v_s; int aret = 0; - if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { s->is_set_account_id = 1; if (!aa || !strcasecmp(aa, "true")) { s->account_id = 1; @@ -9679,7 +17827,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("AccountId require true/false\n"); } } else - if ((aret = argcmp(str, "CallDuration")) == 0 || aret == '=') { + if ((aret = strcmp(str, "CallDuration")) == 0 || aret == '=' || aret == '.') { s->is_set_call_duration = 1; if (!aa || !strcasecmp(aa, "true")) { s->call_duration = 1; @@ -9689,7 +17837,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("CallDuration require true/false\n"); } } else - if ((aret = argcmp(str, "QueryAccessKey")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryAccessKey")) == 0 || aret == '=' || aret == '.') { s->is_set_query_access_key = 1; if (!aa || !strcasecmp(aa, "true")) { s->query_access_key = 1; @@ -9699,7 +17847,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("QueryAccessKey require true/false\n"); } } else - if ((aret = argcmp(str, "QueryApiName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryApiName")) == 0 || aret == '=' || aret == '.') { s->is_set_query_api_name = 1; if (!aa || !strcasecmp(aa, "true")) { s->query_api_name = 1; @@ -9709,7 +17857,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("QueryApiName require true/false\n"); } } else - if ((aret = argcmp(str, "QueryApiVersion")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryApiVersion")) == 0 || aret == '=' || aret == '.') { s->is_set_query_api_version = 1; if (!aa || !strcasecmp(aa, "true")) { s->query_api_version = 1; @@ -9719,7 +17867,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("QueryApiVersion require true/false\n"); } } else - if ((aret = argcmp(str, "QueryCallName")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryCallName")) == 0 || aret == '=' || aret == '.') { s->is_set_query_call_name = 1; if (!aa || !strcasecmp(aa, "true")) { s->query_call_name = 1; @@ -9729,7 +17877,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("QueryCallName require true/false\n"); } } else - if ((aret = argcmp(str, "QueryDate")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryDate")) == 0 || aret == '=' || aret == '.') { s->is_set_query_date = 1; if (!aa || !strcasecmp(aa, "true")) { s->query_date = 1; @@ -9739,7 +17887,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("QueryDate require true/false\n"); } } else - if ((aret = argcmp(str, "QueryHeaderRaw")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryHeaderRaw")) == 0 || aret == '=' || aret == '.') { s->is_set_query_header_raw = 1; if (!aa || !strcasecmp(aa, "true")) { s->query_header_raw = 1; @@ -9749,7 +17897,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("QueryHeaderRaw require true/false\n"); } } else - if ((aret = argcmp(str, "QueryHeaderSize")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryHeaderSize")) == 0 || aret == '=' || aret == '.') { s->is_set_query_header_size = 1; if (!aa || !strcasecmp(aa, "true")) { s->query_header_size = 1; @@ -9759,7 +17907,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("QueryHeaderSize require true/false\n"); } } else - if ((aret = argcmp(str, "QueryIpAddress")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryIpAddress")) == 0 || aret == '=' || aret == '.') { s->is_set_query_ip_address = 1; if (!aa || !strcasecmp(aa, "true")) { s->query_ip_address = 1; @@ -9769,7 +17917,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("QueryIpAddress require true/false\n"); } } else - if ((aret = argcmp(str, "QueryPayloadRaw")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryPayloadRaw")) == 0 || aret == '=' || aret == '.') { s->is_set_query_payload_raw = 1; if (!aa || !strcasecmp(aa, "true")) { s->query_payload_raw = 1; @@ -9779,7 +17927,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("QueryPayloadRaw require true/false\n"); } } else - if ((aret = argcmp(str, "QueryPayloadSize")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryPayloadSize")) == 0 || aret == '=' || aret == '.') { s->is_set_query_payload_size = 1; if (!aa || !strcasecmp(aa, "true")) { s->query_payload_size = 1; @@ -9789,7 +17937,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("QueryPayloadSize require true/false\n"); } } else - if ((aret = argcmp(str, "QueryUserAgent")) == 0 || aret == '=') { + if ((aret = strcmp(str, "QueryUserAgent")) == 0 || aret == '=' || aret == '.') { s->is_set_query_user_agent = 1; if (!aa || !strcasecmp(aa, "true")) { s->query_user_agent = 1; @@ -9799,7 +17947,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("QueryUserAgent require true/false\n"); } } else - if ((aret = argcmp(str, "RequestId")) == 0 || aret == '=') { + if ((aret = strcmp(str, "RequestId")) == 0 || aret == '=' || aret == '.') { s->is_set_request_id = 1; if (!aa || !strcasecmp(aa, "true")) { s->request_id = 1; @@ -9809,7 +17957,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("RequestId require true/false\n"); } } else - if ((aret = argcmp(str, "ResponseSize")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ResponseSize")) == 0 || aret == '=' || aret == '.') { s->is_set_response_size = 1; if (!aa || !strcasecmp(aa, "true")) { s->response_size = 1; @@ -9819,7 +17967,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("ResponseSize require true/false\n"); } } else - if ((aret = argcmp(str, "ResponseStatusCode")) == 0 || aret == '=') { + if ((aret = strcmp(str, "ResponseStatusCode")) == 0 || aret == '=' || aret == '.') { s->is_set_response_status_code = 1; if (!aa || !strcasecmp(aa, "true")) { s->response_status_code = 1; @@ -10110,7 +18258,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "ClientGatewayId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ClientGatewayId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ClientGatewayId argument missing\n"); @@ -10121,7 +18269,7 @@ int main(int ac, char **av) s->client_gateway_id = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -10137,7 +18285,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VirtualGatewayId argument missing\n"); @@ -10148,7 +18296,7 @@ int main(int ac, char **av) s->virtual_gateway_id = aa; // string string } else - if ((aret = argcmp(next_a, "VpnConnectionId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VpnConnectionId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VpnConnectionId argument missing\n"); @@ -10159,7 +18307,7 @@ int main(int ac, char **av) s->vpn_connection_id = aa; // string string } else - if ((aret = argcmp(next_a, "VpnOptions")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VpnOptions")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VpnOptions argument missing\n"); @@ -10261,7 +18409,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -10277,7 +18425,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Iops")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Iops")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Iops argument missing\n"); @@ -10288,7 +18436,7 @@ int main(int ac, char **av) s->is_set_iops = 1; s->iops = atoi(aa); } else - if ((aret = argcmp(next_a, "Size")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Size")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Size argument missing\n"); @@ -10299,7 +18447,7 @@ int main(int ac, char **av) s->is_set_size = 1; s->size = atoi(aa); } else - if ((aret = argcmp(next_a, "VolumeId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VolumeId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VolumeId argument missing\n"); @@ -10310,7 +18458,7 @@ int main(int ac, char **av) s->volume_id = aa; // string string } else - if ((aret = argcmp(next_a, "VolumeType")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VolumeType")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VolumeType argument missing\n"); @@ -10400,7 +18548,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -10411,7 +18559,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -10427,7 +18575,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Tags")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Tags argument missing\n"); @@ -10458,7 +18606,7 @@ int main(int ac, char **av) s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = argcmp(next_a, "VmTemplateId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmTemplateId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmTemplateId argument missing\n"); @@ -10469,7 +18617,7 @@ int main(int ac, char **av) s->vm_template_id = aa; // string string } else - if ((aret = argcmp(next_a, "VmTemplateName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmTemplateName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmTemplateName argument missing\n"); @@ -10559,7 +18707,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -10570,7 +18718,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -10586,7 +18734,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Tags")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Tags argument missing\n"); @@ -10617,7 +18765,7 @@ int main(int ac, char **av) s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = argcmp(next_a, "VmGroupId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmGroupId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmGroupId argument missing\n"); @@ -10628,7 +18776,7 @@ int main(int ac, char **av) s->vm_group_id = aa; // string string } else - if ((aret = argcmp(next_a, "VmGroupName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmGroupName argument missing\n"); @@ -10639,7 +18787,7 @@ int main(int ac, char **av) s->vm_group_name = aa; // string string } else - if ((aret = argcmp(next_a, "VmTemplateId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmTemplateId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmTemplateId argument missing\n"); @@ -10729,7 +18877,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "BlockDeviceMappings")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "BlockDeviceMappings")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BlockDeviceMappings argument missing\n"); @@ -10760,7 +18908,7 @@ int main(int ac, char **av) s->block_device_mappings_str = aa; // array ref BlockDeviceMappingVmUpdate ref } } else - if ((aret = argcmp(next_a, "BsuOptimized")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "BsuOptimized")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BsuOptimized argument missing\n"); @@ -10776,7 +18924,7 @@ int main(int ac, char **av) BAD_RET("BsuOptimized require true/false\n"); } } else - if ((aret = argcmp(next_a, "DeletionProtection")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DeletionProtection")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DeletionProtection argument missing\n"); @@ -10792,7 +18940,7 @@ int main(int ac, char **av) BAD_RET("DeletionProtection require true/false\n"); } } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -10808,7 +18956,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "IsSourceDestChecked")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "IsSourceDestChecked")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "IsSourceDestChecked argument missing\n"); @@ -10824,7 +18972,7 @@ int main(int ac, char **av) BAD_RET("IsSourceDestChecked require true/false\n"); } } else - if ((aret = argcmp(next_a, "KeypairName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "KeypairName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "KeypairName argument missing\n"); @@ -10835,7 +18983,7 @@ int main(int ac, char **av) s->keypair_name = aa; // string string } else - if ((aret = argcmp(next_a, "NestedVirtualization")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NestedVirtualization")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NestedVirtualization argument missing\n"); @@ -10851,7 +18999,7 @@ int main(int ac, char **av) BAD_RET("NestedVirtualization require true/false\n"); } } else - if ((aret = argcmp(next_a, "Performance")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Performance")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Performance argument missing\n"); @@ -10862,20 +19010,41 @@ int main(int ac, char **av) s->performance = aa; // string string } else - if ((aret = argcmp(next_a, "SecurityGroupIds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupIds argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "SecurityGroupIds argument missing\n"); - s->security_group_ids_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SecurityGroupIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SecurityGroupIds require an index\n"); + if (s->security_group_ids) { + for (; s->security_group_ids[last]; ++last); + } + if (pos < last) { + s->security_group_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->security_group_ids, "", pa); + SET_NEXT(s->security_group_ids, (aa), pa); + } + } else { + TRY(!aa, "SecurityGroupIds argument missing\n"); + s->security_group_ids_str = aa; + } } else if (!(aret = strcmp(str, "SecurityGroupIds[]")) || aret == '=') { TRY(!aa, "SecurityGroupIds[] argument missing\n"); SET_NEXT(s->security_group_ids, (aa), pa); } else - if ((aret = argcmp(next_a, "UserData")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserData")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserData argument missing\n"); @@ -10886,7 +19055,7 @@ int main(int ac, char **av) s->user_data = aa; // string string } else - if ((aret = argcmp(next_a, "VmId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmId argument missing\n"); @@ -10897,7 +19066,7 @@ int main(int ac, char **av) s->vm_id = aa; // string string } else - if ((aret = argcmp(next_a, "VmInitiatedShutdownBehavior")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmInitiatedShutdownBehavior")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmInitiatedShutdownBehavior argument missing\n"); @@ -10908,7 +19077,7 @@ int main(int ac, char **av) s->vm_initiated_shutdown_behavior = aa; // string string } else - if ((aret = argcmp(next_a, "VmType")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmType")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmType argument missing\n"); @@ -10998,7 +19167,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -11014,7 +19183,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "NewPath")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NewPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NewPath argument missing\n"); @@ -11025,7 +19194,7 @@ int main(int ac, char **av) s->new_path = aa; // string string } else - if ((aret = argcmp(next_a, "NewUserGroupName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NewUserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NewUserGroupName argument missing\n"); @@ -11036,7 +19205,7 @@ int main(int ac, char **av) s->new_user_group_name = aa; // string string } else - if ((aret = argcmp(next_a, "Path")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Path")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Path argument missing\n"); @@ -11047,7 +19216,7 @@ int main(int ac, char **av) s->path = aa; // string string } else - if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -11137,7 +19306,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -11153,7 +19322,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "NewPath")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NewPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NewPath argument missing\n"); @@ -11164,7 +19333,7 @@ int main(int ac, char **av) s->new_path = aa; // string string } else - if ((aret = argcmp(next_a, "NewUserName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NewUserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NewUserName argument missing\n"); @@ -11175,7 +19344,7 @@ int main(int ac, char **av) s->new_user_name = aa; // string string } else - if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -11265,7 +19434,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -11281,7 +19450,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "MapPublicIpOnLaunch")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "MapPublicIpOnLaunch")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "MapPublicIpOnLaunch argument missing\n"); @@ -11297,7 +19466,7 @@ int main(int ac, char **av) BAD_RET("MapPublicIpOnLaunch require true/false\n"); } } else - if ((aret = argcmp(next_a, "SubnetId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SubnetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubnetId argument missing\n"); @@ -11387,7 +19556,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -11403,7 +19572,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "PermissionsToCreateVolume")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PermissionsToCreateVolume")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PermissionsToCreateVolume argument missing\n"); @@ -11426,7 +19595,7 @@ int main(int ac, char **av) s->permissions_to_create_volume_str = aa; } } else - if ((aret = argcmp(next_a, "SnapshotId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SnapshotId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SnapshotId argument missing\n"); @@ -11516,7 +19685,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -11532,7 +19701,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Name")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Name")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Name argument missing\n"); @@ -11543,7 +19712,7 @@ int main(int ac, char **av) s->name = aa; // string string } else - if ((aret = argcmp(next_a, "NewName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NewName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NewName argument missing\n"); @@ -11554,7 +19723,7 @@ int main(int ac, char **av) s->new_name = aa; // string string } else - if ((aret = argcmp(next_a, "NewPath")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NewPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NewPath argument missing\n"); @@ -11644,7 +19813,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -11660,7 +19829,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "LinkRouteTableId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LinkRouteTableId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LinkRouteTableId argument missing\n"); @@ -11671,7 +19840,7 @@ int main(int ac, char **av) s->link_route_table_id = aa; // string string } else - if ((aret = argcmp(next_a, "RouteTableId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "RouteTableId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "RouteTableId argument missing\n"); @@ -11761,7 +19930,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -11777,7 +19946,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Enable")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Enable")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Enable argument missing\n"); @@ -11793,7 +19962,7 @@ int main(int ac, char **av) BAD_RET("Enable require true/false\n"); } } else - if ((aret = argcmp(next_a, "RouteTableId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "RouteTableId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "RouteTableId argument missing\n"); @@ -11804,7 +19973,7 @@ int main(int ac, char **av) s->route_table_id = aa; // string string } else - if ((aret = argcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VirtualGatewayId argument missing\n"); @@ -11894,7 +20063,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DestinationIpRange")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DestinationIpRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DestinationIpRange argument missing\n"); @@ -11905,7 +20074,7 @@ int main(int ac, char **av) s->destination_ip_range = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -11921,7 +20090,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "GatewayId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "GatewayId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "GatewayId argument missing\n"); @@ -11932,7 +20101,7 @@ int main(int ac, char **av) s->gateway_id = aa; // string string } else - if ((aret = argcmp(next_a, "NatServiceId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NatServiceId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NatServiceId argument missing\n"); @@ -11943,7 +20112,7 @@ int main(int ac, char **av) s->nat_service_id = aa; // string string } else - if ((aret = argcmp(next_a, "NetPeeringId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NetPeeringId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetPeeringId argument missing\n"); @@ -11954,7 +20123,7 @@ int main(int ac, char **av) s->net_peering_id = aa; // string string } else - if ((aret = argcmp(next_a, "NicId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NicId argument missing\n"); @@ -11965,7 +20134,7 @@ int main(int ac, char **av) s->nic_id = aa; // string string } else - if ((aret = argcmp(next_a, "RouteTableId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "RouteTableId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "RouteTableId argument missing\n"); @@ -11976,7 +20145,7 @@ int main(int ac, char **av) s->route_table_id = aa; // string string } else - if ((aret = argcmp(next_a, "VmId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmId argument missing\n"); @@ -12066,7 +20235,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -12077,7 +20246,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -12093,7 +20262,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "LinkNic")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LinkNic")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LinkNic argument missing\n"); @@ -12116,7 +20285,7 @@ int main(int ac, char **av) s->link_nic_str = aa; } } else - if ((aret = argcmp(next_a, "NicId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NicId argument missing\n"); @@ -12127,15 +20296,36 @@ int main(int ac, char **av) s->nic_id = aa; // string string } else - if ((aret = argcmp(next_a, "SecurityGroupIds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupIds argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "SecurityGroupIds argument missing\n"); - s->security_group_ids_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SecurityGroupIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SecurityGroupIds require an index\n"); + if (s->security_group_ids) { + for (; s->security_group_ids[last]; ++last); + } + if (pos < last) { + s->security_group_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->security_group_ids, "", pa); + SET_NEXT(s->security_group_ids, (aa), pa); + } + } else { + TRY(!aa, "SecurityGroupIds argument missing\n"); + s->security_group_ids_str = aa; + } } else if (!(aret = strcmp(str, "SecurityGroupIds[]")) || aret == '=') { TRY(!aa, "SecurityGroupIds[] argument missing\n"); SET_NEXT(s->security_group_ids, (aa), pa); @@ -12219,20 +20409,41 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "AddRouteTableIds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "AddRouteTableIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "AddRouteTableIds argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "AddRouteTableIds argument missing\n"); - s->add_route_table_ids_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "AddRouteTableIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "AddRouteTableIds require an index\n"); + if (s->add_route_table_ids) { + for (; s->add_route_table_ids[last]; ++last); + } + if (pos < last) { + s->add_route_table_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->add_route_table_ids, "", pa); + SET_NEXT(s->add_route_table_ids, (aa), pa); + } + } else { + TRY(!aa, "AddRouteTableIds argument missing\n"); + s->add_route_table_ids_str = aa; + } } else if (!(aret = strcmp(str, "AddRouteTableIds[]")) || aret == '=') { TRY(!aa, "AddRouteTableIds[] argument missing\n"); SET_NEXT(s->add_route_table_ids, (aa), pa); } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -12248,7 +20459,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "NetAccessPointId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NetAccessPointId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetAccessPointId argument missing\n"); @@ -12259,15 +20470,36 @@ int main(int ac, char **av) s->net_access_point_id = aa; // string string } else - if ((aret = argcmp(next_a, "RemoveRouteTableIds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "RemoveRouteTableIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "RemoveRouteTableIds argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "RemoveRouteTableIds argument missing\n"); - s->remove_route_table_ids_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "RemoveRouteTableIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "RemoveRouteTableIds require an index\n"); + if (s->remove_route_table_ids) { + for (; s->remove_route_table_ids[last]; ++last); + } + if (pos < last) { + s->remove_route_table_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->remove_route_table_ids, "", pa); + SET_NEXT(s->remove_route_table_ids, (aa), pa); + } + } else { + TRY(!aa, "RemoveRouteTableIds argument missing\n"); + s->remove_route_table_ids_str = aa; + } } else if (!(aret = strcmp(str, "RemoveRouteTableIds[]")) || aret == '=') { TRY(!aa, "RemoveRouteTableIds[] argument missing\n"); SET_NEXT(s->remove_route_table_ids, (aa), pa); @@ -12351,7 +20583,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DhcpOptionsSetId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DhcpOptionsSetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DhcpOptionsSetId argument missing\n"); @@ -12362,7 +20594,7 @@ int main(int ac, char **av) s->dhcp_options_set_id = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -12378,7 +20610,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "NetId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetId argument missing\n"); @@ -12468,7 +20700,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "AccessLog")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "AccessLog")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "AccessLog argument missing\n"); @@ -12491,7 +20723,7 @@ int main(int ac, char **av) s->access_log_str = aa; } } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -12507,7 +20739,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "HealthCheck")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "HealthCheck")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "HealthCheck argument missing\n"); @@ -12530,7 +20762,7 @@ int main(int ac, char **av) s->health_check_str = aa; } } else - if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -12541,7 +20773,7 @@ int main(int ac, char **av) s->load_balancer_name = aa; // string string } else - if ((aret = argcmp(next_a, "LoadBalancerPort")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LoadBalancerPort")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerPort argument missing\n"); @@ -12552,20 +20784,41 @@ int main(int ac, char **av) s->is_set_load_balancer_port = 1; s->load_balancer_port = atoi(aa); } else - if ((aret = argcmp(next_a, "PolicyNames")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PolicyNames")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyNames argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "PolicyNames argument missing\n"); - s->policy_names_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "PolicyNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "PolicyNames require an index\n"); + if (s->policy_names) { + for (; s->policy_names[last]; ++last); + } + if (pos < last) { + s->policy_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->policy_names, "", pa); + SET_NEXT(s->policy_names, (aa), pa); + } + } else { + TRY(!aa, "PolicyNames argument missing\n"); + s->policy_names_str = aa; + } } else if (!(aret = strcmp(str, "PolicyNames[]")) || aret == '=') { TRY(!aa, "PolicyNames[] argument missing\n"); SET_NEXT(s->policy_names, (aa), pa); } else - if ((aret = argcmp(next_a, "PublicIp")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PublicIp")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PublicIp argument missing\n"); @@ -12576,7 +20829,7 @@ int main(int ac, char **av) s->public_ip = aa; // string string } else - if ((aret = argcmp(next_a, "SecuredCookies")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SecuredCookies")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecuredCookies argument missing\n"); @@ -12592,20 +20845,41 @@ int main(int ac, char **av) BAD_RET("SecuredCookies require true/false\n"); } } else - if ((aret = argcmp(next_a, "SecurityGroups")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SecurityGroups")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroups argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "SecurityGroups argument missing\n"); - s->security_groups_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SecurityGroups argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SecurityGroups require an index\n"); + if (s->security_groups) { + for (; s->security_groups[last]; ++last); + } + if (pos < last) { + s->security_groups[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->security_groups, "", pa); + SET_NEXT(s->security_groups, (aa), pa); + } + } else { + TRY(!aa, "SecurityGroups argument missing\n"); + s->security_groups_str = aa; + } } else if (!(aret = strcmp(str, "SecurityGroups[]")) || aret == '=') { TRY(!aa, "SecurityGroups[] argument missing\n"); SET_NEXT(s->security_groups, (aa), pa); } else - if ((aret = argcmp(next_a, "ServerCertificateId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ServerCertificateId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ServerCertificateId argument missing\n"); @@ -12695,7 +20969,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -12711,7 +20985,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "HostPattern")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "HostPattern")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "HostPattern argument missing\n"); @@ -12722,7 +20996,7 @@ int main(int ac, char **av) s->host_pattern = aa; // string string } else - if ((aret = argcmp(next_a, "ListenerRuleName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ListenerRuleName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ListenerRuleName argument missing\n"); @@ -12733,7 +21007,7 @@ int main(int ac, char **av) s->listener_rule_name = aa; // string string } else - if ((aret = argcmp(next_a, "PathPattern")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PathPattern")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PathPattern argument missing\n"); @@ -12823,7 +21097,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -12834,7 +21108,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -12850,7 +21124,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "ImageId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ImageId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ImageId argument missing\n"); @@ -12861,7 +21135,7 @@ int main(int ac, char **av) s->image_id = aa; // string string } else - if ((aret = argcmp(next_a, "PermissionsToLaunch")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PermissionsToLaunch")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PermissionsToLaunch argument missing\n"); @@ -12963,7 +21237,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DeleteOnVmDeletion")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DeleteOnVmDeletion argument missing\n"); @@ -12979,7 +21253,7 @@ int main(int ac, char **av) BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -12995,7 +21269,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "FlexibleGpuId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "FlexibleGpuId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FlexibleGpuId argument missing\n"); @@ -13085,7 +21359,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DirectLinkInterfaceId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DirectLinkInterfaceId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DirectLinkInterfaceId argument missing\n"); @@ -13096,7 +21370,7 @@ int main(int ac, char **av) s->direct_link_interface_id = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -13112,7 +21386,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Mtu")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Mtu")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Mtu argument missing\n"); @@ -13202,7 +21476,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DedicatedGroupId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DedicatedGroupId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DedicatedGroupId argument missing\n"); @@ -13213,7 +21487,7 @@ int main(int ac, char **av) s->dedicated_group_id = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -13229,7 +21503,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Name")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Name")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Name argument missing\n"); @@ -13319,7 +21593,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "CaId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "CaId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CaId argument missing\n"); @@ -13330,7 +21604,7 @@ int main(int ac, char **av) s->ca_id = aa; // string string } else - if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -13341,7 +21615,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -13436,7 +21710,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "ApiAccessRuleId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ApiAccessRuleId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ApiAccessRuleId argument missing\n"); @@ -13447,33 +21721,75 @@ int main(int ac, char **av) s->api_access_rule_id = aa; // string string } else - if ((aret = argcmp(next_a, "CaIds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "CaIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CaIds argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "CaIds argument missing\n"); - s->ca_ids_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "CaIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "CaIds require an index\n"); + if (s->ca_ids) { + for (; s->ca_ids[last]; ++last); + } + if (pos < last) { + s->ca_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->ca_ids, "", pa); + SET_NEXT(s->ca_ids, (aa), pa); + } + } else { + TRY(!aa, "CaIds argument missing\n"); + s->ca_ids_str = aa; + } } else if (!(aret = strcmp(str, "CaIds[]")) || aret == '=') { TRY(!aa, "CaIds[] argument missing\n"); SET_NEXT(s->ca_ids, (aa), pa); } else - if ((aret = argcmp(next_a, "Cns")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Cns")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Cns argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "Cns argument missing\n"); - s->cns_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Cns argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Cns require an index\n"); + if (s->cns) { + for (; s->cns[last]; ++last); + } + if (pos < last) { + s->cns[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->cns, "", pa); + SET_NEXT(s->cns, (aa), pa); + } + } else { + TRY(!aa, "Cns argument missing\n"); + s->cns_str = aa; + } } else if (!(aret = strcmp(str, "Cns[]")) || aret == '=') { TRY(!aa, "Cns[] argument missing\n"); SET_NEXT(s->cns, (aa), pa); } else - if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -13484,7 +21800,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -13500,15 +21816,36 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "IpRanges")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "IpRanges")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "IpRanges argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "IpRanges argument missing\n"); - s->ip_ranges_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "IpRanges argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "IpRanges require an index\n"); + if (s->ip_ranges) { + for (; s->ip_ranges[last]; ++last); + } + if (pos < last) { + s->ip_ranges[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->ip_ranges, "", pa); + SET_NEXT(s->ip_ranges, (aa), pa); + } + } else { + TRY(!aa, "IpRanges argument missing\n"); + s->ip_ranges_str = aa; + } } else if (!(aret = strcmp(str, "IpRanges[]")) || aret == '=') { TRY(!aa, "IpRanges[] argument missing\n"); SET_NEXT(s->ip_ranges, (aa), pa); @@ -13592,7 +21929,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -13608,7 +21945,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "MaxAccessKeyExpirationSeconds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "MaxAccessKeyExpirationSeconds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "MaxAccessKeyExpirationSeconds argument missing\n"); @@ -13619,7 +21956,7 @@ int main(int ac, char **av) s->is_set_max_access_key_expiration_seconds = 1; s->max_access_key_expiration_seconds = atoi(aa); } else - if ((aret = argcmp(next_a, "RequireTrustedEnv")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "RequireTrustedEnv")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "RequireTrustedEnv argument missing\n"); @@ -13714,20 +22051,41 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "AdditionalEmails")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "AdditionalEmails")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "AdditionalEmails argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "AdditionalEmails argument missing\n"); - s->additional_emails_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "AdditionalEmails argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "AdditionalEmails require an index\n"); + if (s->additional_emails) { + for (; s->additional_emails[last]; ++last); + } + if (pos < last) { + s->additional_emails[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->additional_emails, "", pa); + SET_NEXT(s->additional_emails, (aa), pa); + } + } else { + TRY(!aa, "AdditionalEmails argument missing\n"); + s->additional_emails_str = aa; + } } else if (!(aret = strcmp(str, "AdditionalEmails[]")) || aret == '=') { TRY(!aa, "AdditionalEmails[] argument missing\n"); SET_NEXT(s->additional_emails, (aa), pa); } else - if ((aret = argcmp(next_a, "City")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "City")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "City argument missing\n"); @@ -13738,7 +22096,7 @@ int main(int ac, char **av) s->city = aa; // string string } else - if ((aret = argcmp(next_a, "CompanyName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "CompanyName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CompanyName argument missing\n"); @@ -13749,7 +22107,7 @@ int main(int ac, char **av) s->company_name = aa; // string string } else - if ((aret = argcmp(next_a, "Country")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Country")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Country argument missing\n"); @@ -13760,7 +22118,7 @@ int main(int ac, char **av) s->country = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -13776,7 +22134,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Email")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Email")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Email argument missing\n"); @@ -13787,7 +22145,7 @@ int main(int ac, char **av) s->email = aa; // string string } else - if ((aret = argcmp(next_a, "FirstName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "FirstName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FirstName argument missing\n"); @@ -13798,7 +22156,7 @@ int main(int ac, char **av) s->first_name = aa; // string string } else - if ((aret = argcmp(next_a, "JobTitle")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "JobTitle")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "JobTitle argument missing\n"); @@ -13809,7 +22167,7 @@ int main(int ac, char **av) s->job_title = aa; // string string } else - if ((aret = argcmp(next_a, "LastName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LastName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LastName argument missing\n"); @@ -13820,7 +22178,7 @@ int main(int ac, char **av) s->last_name = aa; // string string } else - if ((aret = argcmp(next_a, "MobileNumber")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "MobileNumber")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "MobileNumber argument missing\n"); @@ -13831,7 +22189,7 @@ int main(int ac, char **av) s->mobile_number = aa; // string string } else - if ((aret = argcmp(next_a, "PhoneNumber")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PhoneNumber")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PhoneNumber argument missing\n"); @@ -13842,7 +22200,7 @@ int main(int ac, char **av) s->phone_number = aa; // string string } else - if ((aret = argcmp(next_a, "StateProvince")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "StateProvince")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "StateProvince argument missing\n"); @@ -13853,7 +22211,7 @@ int main(int ac, char **av) s->state_province = aa; // string string } else - if ((aret = argcmp(next_a, "VatNumber")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VatNumber")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VatNumber argument missing\n"); @@ -13864,7 +22222,7 @@ int main(int ac, char **av) s->vat_number = aa; // string string } else - if ((aret = argcmp(next_a, "ZipCode")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ZipCode")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ZipCode argument missing\n"); @@ -13954,7 +22312,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "AccessKeyId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "AccessKeyId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "AccessKeyId argument missing\n"); @@ -13965,7 +22323,7 @@ int main(int ac, char **av) s->access_key_id = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -13981,7 +22339,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "ExpirationDate")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ExpirationDate")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ExpirationDate argument missing\n"); @@ -13992,7 +22350,7 @@ int main(int ac, char **av) s->expiration_date = aa; // string string } else - if ((aret = argcmp(next_a, "State")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "State")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "State argument missing\n"); @@ -14003,7 +22361,7 @@ int main(int ac, char **av) s->state = aa; // string string } else - if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -14093,7 +22451,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -14109,7 +22467,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "ForceUnlink")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ForceUnlink")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ForceUnlink argument missing\n"); @@ -14125,7 +22483,7 @@ int main(int ac, char **av) BAD_RET("ForceUnlink require true/false\n"); } } else - if ((aret = argcmp(next_a, "VolumeId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VolumeId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VolumeId argument missing\n"); @@ -14215,7 +22573,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -14231,7 +22589,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "NetId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetId argument missing\n"); @@ -14242,7 +22600,7 @@ int main(int ac, char **av) s->net_id = aa; // string string } else - if ((aret = argcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VirtualGatewayId argument missing\n"); @@ -14332,7 +22690,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -14348,7 +22706,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "LinkRouteTableId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LinkRouteTableId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LinkRouteTableId argument missing\n"); @@ -14438,7 +22796,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -14454,7 +22812,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "LinkPublicIpId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LinkPublicIpId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LinkPublicIpId argument missing\n"); @@ -14465,7 +22823,7 @@ int main(int ac, char **av) s->link_public_ip_id = aa; // string string } else - if ((aret = argcmp(next_a, "PublicIp")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PublicIp")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PublicIp argument missing\n"); @@ -14555,7 +22913,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -14571,7 +22929,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "NicId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NicId argument missing\n"); @@ -14582,15 +22940,36 @@ int main(int ac, char **av) s->nic_id = aa; // string string } else - if ((aret = argcmp(next_a, "PrivateIps")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PrivateIps")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PrivateIps argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "PrivateIps argument missing\n"); - s->private_ips_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "PrivateIps argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "PrivateIps require an index\n"); + if (s->private_ips) { + for (; s->private_ips[last]; ++last); + } + if (pos < last) { + s->private_ips[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->private_ips, "", pa); + SET_NEXT(s->private_ips, (aa), pa); + } + } else { + TRY(!aa, "PrivateIps argument missing\n"); + s->private_ips_str = aa; + } } else if (!(aret = strcmp(str, "PrivateIps[]")) || aret == '=') { TRY(!aa, "PrivateIps[] argument missing\n"); SET_NEXT(s->private_ips, (aa), pa); @@ -14674,7 +23053,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -14690,7 +23069,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "PolicyOrn")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyOrn argument missing\n"); @@ -14701,7 +23080,7 @@ int main(int ac, char **av) s->policy_orn = aa; // string string } else - if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -14791,7 +23170,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -14807,7 +23186,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "LinkNicId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LinkNicId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LinkNicId argument missing\n"); @@ -14897,7 +23276,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -14913,7 +23292,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "PolicyOrn")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyOrn argument missing\n"); @@ -14924,7 +23303,7 @@ int main(int ac, char **av) s->policy_orn = aa; // string string } else - if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -15014,33 +23393,75 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "BackendIps")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "BackendIps")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BackendIps argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "BackendIps argument missing\n"); - s->backend_ips_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "BackendIps argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "BackendIps require an index\n"); + if (s->backend_ips) { + for (; s->backend_ips[last]; ++last); + } + if (pos < last) { + s->backend_ips[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->backend_ips, "", pa); + SET_NEXT(s->backend_ips, (aa), pa); + } + } else { + TRY(!aa, "BackendIps argument missing\n"); + s->backend_ips_str = aa; + } } else if (!(aret = strcmp(str, "BackendIps[]")) || aret == '=') { TRY(!aa, "BackendIps[] argument missing\n"); SET_NEXT(s->backend_ips, (aa), pa); } else - if ((aret = argcmp(next_a, "BackendVmIds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "BackendVmIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BackendVmIds argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "BackendVmIds argument missing\n"); - s->backend_vm_ids_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "BackendVmIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "BackendVmIds require an index\n"); + if (s->backend_vm_ids) { + for (; s->backend_vm_ids[last]; ++last); + } + if (pos < last) { + s->backend_vm_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->backend_vm_ids, "", pa); + SET_NEXT(s->backend_vm_ids, (aa), pa); + } + } else { + TRY(!aa, "BackendVmIds argument missing\n"); + s->backend_vm_ids_str = aa; + } } else if (!(aret = strcmp(str, "BackendVmIds[]")) || aret == '=') { TRY(!aa, "BackendVmIds[] argument missing\n"); SET_NEXT(s->backend_vm_ids, (aa), pa); } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -15056,7 +23477,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -15146,7 +23567,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -15162,7 +23583,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "InternetServiceId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "InternetServiceId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "InternetServiceId argument missing\n"); @@ -15173,7 +23594,7 @@ int main(int ac, char **av) s->internet_service_id = aa; // string string } else - if ((aret = argcmp(next_a, "NetId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetId argument missing\n"); @@ -15263,7 +23684,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -15279,7 +23700,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "FlexibleGpuId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "FlexibleGpuId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FlexibleGpuId argument missing\n"); @@ -15369,7 +23790,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -15385,7 +23806,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "ForceStop")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ForceStop")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ForceStop argument missing\n"); @@ -15401,15 +23822,36 @@ int main(int ac, char **av) BAD_RET("ForceStop require true/false\n"); } } else - if ((aret = argcmp(next_a, "VmIds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmIds argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "VmIds argument missing\n"); - s->vm_ids_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmIds require an index\n"); + if (s->vm_ids) { + for (; s->vm_ids[last]; ++last); + } + if (pos < last) { + s->vm_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_ids, "", pa); + SET_NEXT(s->vm_ids, (aa), pa); + } + } else { + TRY(!aa, "VmIds argument missing\n"); + s->vm_ids_str = aa; + } } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); @@ -15493,7 +23935,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -15509,15 +23951,36 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "VmIds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmIds argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "VmIds argument missing\n"); - s->vm_ids_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmIds require an index\n"); + if (s->vm_ids) { + for (; s->vm_ids[last]; ++last); + } + if (pos < last) { + s->vm_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_ids, "", pa); + SET_NEXT(s->vm_ids, (aa), pa); + } + } else { + TRY(!aa, "VmIds argument missing\n"); + s->vm_ids_str = aa; + } } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); @@ -15601,7 +24064,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "PolicyOrn")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyOrn argument missing\n"); @@ -15612,7 +24075,7 @@ int main(int ac, char **av) s->policy_orn = aa; // string string } else - if ((aret = argcmp(next_a, "VersionId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VersionId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VersionId argument missing\n"); @@ -15702,7 +24165,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -15718,7 +24181,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "VmAddition")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmAddition")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmAddition argument missing\n"); @@ -15729,7 +24192,7 @@ int main(int ac, char **av) s->is_set_vm_addition = 1; s->vm_addition = atoi(aa); } else - if ((aret = argcmp(next_a, "VmGroupId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmGroupId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmGroupId argument missing\n"); @@ -15819,7 +24282,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -15835,7 +24298,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "VmGroupId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmGroupId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmGroupId argument missing\n"); @@ -15846,7 +24309,7 @@ int main(int ac, char **av) s->vm_group_id = aa; // string string } else - if ((aret = argcmp(next_a, "VmSubtraction")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmSubtraction")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmSubtraction argument missing\n"); @@ -15936,7 +24399,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -15952,7 +24415,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -15963,7 +24426,7 @@ int main(int ac, char **av) s->user_group_name = aa; // string string } else - if ((aret = argcmp(next_a, "UserGroupPath")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserGroupPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupPath argument missing\n"); @@ -15974,7 +24437,7 @@ int main(int ac, char **av) s->user_group_path = aa; // string string } else - if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -15985,7 +24448,7 @@ int main(int ac, char **av) s->user_name = aa; // string string } else - if ((aret = argcmp(next_a, "UserPath")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserPath argument missing\n"); @@ -16075,7 +24538,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -16091,7 +24554,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "NetPeeringId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NetPeeringId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetPeeringId argument missing\n"); @@ -16181,20 +24644,41 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "BackendVmIds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "BackendVmIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BackendVmIds argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "BackendVmIds argument missing\n"); - s->backend_vm_ids_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "BackendVmIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "BackendVmIds require an index\n"); + if (s->backend_vm_ids) { + for (; s->backend_vm_ids[last]; ++last); + } + if (pos < last) { + s->backend_vm_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->backend_vm_ids, "", pa); + SET_NEXT(s->backend_vm_ids, (aa), pa); + } + } else { + TRY(!aa, "BackendVmIds argument missing\n"); + s->backend_vm_ids_str = aa; + } } else if (!(aret = strcmp(str, "BackendVmIds[]")) || aret == '=') { TRY(!aa, "BackendVmIds[] argument missing\n"); SET_NEXT(s->backend_vm_ids, (aa), pa); } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -16210,7 +24694,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -16300,7 +24784,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -16316,15 +24800,36 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "VmIds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmIds argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "VmIds argument missing\n"); - s->vm_ids_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmIds require an index\n"); + if (s->vm_ids) { + for (; s->vm_ids[last]; ++last); + } + if (pos < last) { + s->vm_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_ids, "", pa); + SET_NEXT(s->vm_ids, (aa), pa); + } + } else { + TRY(!aa, "VmIds argument missing\n"); + s->vm_ids_str = aa; + } } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); @@ -16408,7 +24913,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -16424,7 +24929,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -16447,7 +24952,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -16458,7 +24963,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -16548,7 +25053,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -16564,7 +25069,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -16587,7 +25092,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -16598,7 +25103,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -16688,7 +25193,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "AllVms")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "AllVms")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "AllVms argument missing\n"); @@ -16704,7 +25209,7 @@ int main(int ac, char **av) BAD_RET("AllVms require true/false\n"); } } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -16720,7 +25225,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -16743,7 +25248,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -16754,7 +25259,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -16844,20 +25349,41 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "BackendVmIds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "BackendVmIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BackendVmIds argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "BackendVmIds argument missing\n"); - s->backend_vm_ids_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "BackendVmIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "BackendVmIds require an index\n"); + if (s->backend_vm_ids) { + for (; s->backend_vm_ids[last]; ++last); + } + if (pos < last) { + s->backend_vm_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->backend_vm_ids, "", pa); + SET_NEXT(s->backend_vm_ids, (aa), pa); + } + } else { + TRY(!aa, "BackendVmIds argument missing\n"); + s->backend_vm_ids_str = aa; + } } else if (!(aret = strcmp(str, "BackendVmIds[]")) || aret == '=') { TRY(!aa, "BackendVmIds[] argument missing\n"); SET_NEXT(s->backend_vm_ids, (aa), pa); } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -16873,7 +25399,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -16963,7 +25489,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -16979,7 +25505,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -17002,7 +25528,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -17013,7 +25539,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -17103,7 +25629,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -17119,7 +25645,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -17142,7 +25668,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -17153,7 +25679,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -17243,7 +25769,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -17259,7 +25785,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -17361,7 +25887,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -17377,7 +25903,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -17479,7 +26005,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -17495,7 +26021,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -17518,7 +26044,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -17529,7 +26055,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -17619,7 +26145,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -17714,7 +26240,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -17730,7 +26256,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -17741,7 +26267,7 @@ int main(int ac, char **av) s->user_name = aa; // string string } else - if ((aret = argcmp(next_a, "UserPath")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserPath argument missing\n"); @@ -17831,7 +26357,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -17847,7 +26373,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -17870,7 +26396,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "FirstItem")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "FirstItem")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FirstItem argument missing\n"); @@ -17881,7 +26407,7 @@ int main(int ac, char **av) s->is_set_first_item = 1; s->first_item = atoi(aa); } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -17971,7 +26497,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -17987,7 +26513,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "PolicyName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PolicyName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyName argument missing\n"); @@ -17998,7 +26524,7 @@ int main(int ac, char **av) s->policy_name = aa; // string string } else - if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -18009,7 +26535,7 @@ int main(int ac, char **av) s->user_group_name = aa; // string string } else - if ((aret = argcmp(next_a, "UserGroupPath")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserGroupPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupPath argument missing\n"); @@ -18099,7 +26625,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -18115,7 +26641,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "FirstItem")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "FirstItem")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FirstItem argument missing\n"); @@ -18126,7 +26652,7 @@ int main(int ac, char **av) s->is_set_first_item = 1; s->first_item = atoi(aa); } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -18137,7 +26663,7 @@ int main(int ac, char **av) s->is_set_results_per_page = 1; s->results_per_page = atoi(aa); } else - if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -18148,7 +26674,7 @@ int main(int ac, char **av) s->user_group_name = aa; // string string } else - if ((aret = argcmp(next_a, "UserGroupPath")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserGroupPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupPath argument missing\n"); @@ -18238,7 +26764,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -18254,7 +26780,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Path")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Path")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Path argument missing\n"); @@ -18265,7 +26791,7 @@ int main(int ac, char **av) s->path = aa; // string string } else - if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -18355,7 +26881,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -18371,7 +26897,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -18394,7 +26920,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -18405,7 +26931,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -18495,7 +27021,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -18511,7 +27037,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -18534,7 +27060,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -18545,7 +27071,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -18635,7 +27161,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -18651,7 +27177,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -18674,7 +27200,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -18685,7 +27211,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -18775,7 +27301,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -18791,7 +27317,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -18814,7 +27340,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -18825,7 +27351,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -18915,7 +27441,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -18931,7 +27457,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -18954,7 +27480,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -18965,7 +27491,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -19055,7 +27581,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -19071,7 +27597,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -19173,7 +27699,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -19189,7 +27715,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -19212,7 +27738,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -19223,7 +27749,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -19313,7 +27839,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "AccessKeyId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "AccessKeyId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "AccessKeyId argument missing\n"); @@ -19324,7 +27850,7 @@ int main(int ac, char **av) s->access_key_id = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -19419,7 +27945,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -19435,7 +27961,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -19458,7 +27984,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -19469,7 +27995,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -19559,7 +28085,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -19654,7 +28180,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -19670,7 +28196,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -19693,7 +28219,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -19704,7 +28230,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -19794,7 +28320,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -19810,7 +28336,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -19833,7 +28359,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -19844,7 +28370,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -19934,7 +28460,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -19950,7 +28476,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -19961,7 +28487,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -20051,7 +28577,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -20146,7 +28672,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -20162,7 +28688,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -20185,7 +28711,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -20196,7 +28722,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -20286,7 +28812,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "FirstItem")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "FirstItem")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FirstItem argument missing\n"); @@ -20297,7 +28823,7 @@ int main(int ac, char **av) s->is_set_first_item = 1; s->first_item = atoi(aa); } else - if ((aret = argcmp(next_a, "PolicyOrn")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyOrn argument missing\n"); @@ -20308,7 +28834,7 @@ int main(int ac, char **av) s->policy_orn = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -20398,7 +28924,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "PolicyOrn")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyOrn argument missing\n"); @@ -20409,7 +28935,7 @@ int main(int ac, char **av) s->policy_orn = aa; // string string } else - if ((aret = argcmp(next_a, "VersionId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VersionId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VersionId argument missing\n"); @@ -20499,7 +29025,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "PolicyOrn")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyOrn argument missing\n"); @@ -20589,7 +29115,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -20605,7 +29131,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -20628,7 +29154,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "FirstItem")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "FirstItem")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FirstItem argument missing\n"); @@ -20639,7 +29165,7 @@ int main(int ac, char **av) s->is_set_first_item = 1; s->first_item = atoi(aa); } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -20729,7 +29255,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -20745,7 +29271,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -20847,7 +29373,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -20863,7 +29389,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -20886,7 +29412,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -20897,7 +29423,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -20987,7 +29513,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -21003,7 +29529,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -21026,7 +29552,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -21037,7 +29563,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -21127,7 +29653,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -21143,7 +29669,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -21166,7 +29692,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -21177,7 +29703,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -21267,7 +29793,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -21283,7 +29809,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -21306,7 +29832,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -21317,7 +29843,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -21407,7 +29933,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -21423,7 +29949,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -21446,7 +29972,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -21457,7 +29983,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -21547,7 +30073,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -21563,7 +30089,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -21586,7 +30112,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "FirstItem")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "FirstItem")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FirstItem argument missing\n"); @@ -21597,7 +30123,7 @@ int main(int ac, char **av) s->is_set_first_item = 1; s->first_item = atoi(aa); } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -21608,7 +30134,7 @@ int main(int ac, char **av) s->is_set_results_per_page = 1; s->results_per_page = atoi(aa); } else - if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -21698,7 +30224,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -21714,7 +30240,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -21725,7 +30251,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -21815,7 +30341,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -21831,7 +30357,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -21933,7 +30459,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -21949,15 +30475,36 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "LoadBalancerNames")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LoadBalancerNames")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerNames argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "LoadBalancerNames argument missing\n"); - s->load_balancer_names_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LoadBalancerNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LoadBalancerNames require an index\n"); + if (s->load_balancer_names) { + for (; s->load_balancer_names[last]; ++last); + } + if (pos < last) { + s->load_balancer_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->load_balancer_names, "", pa); + SET_NEXT(s->load_balancer_names, (aa), pa); + } + } else { + TRY(!aa, "LoadBalancerNames argument missing\n"); + s->load_balancer_names_str = aa; + } } else if (!(aret = strcmp(str, "LoadBalancerNames[]")) || aret == '=') { TRY(!aa, "LoadBalancerNames[] argument missing\n"); SET_NEXT(s->load_balancer_names, (aa), pa); @@ -22041,7 +30588,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -22057,7 +30604,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -22159,7 +30706,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -22175,7 +30722,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -22198,7 +30745,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "FirstItem")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "FirstItem")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FirstItem argument missing\n"); @@ -22209,7 +30756,7 @@ int main(int ac, char **av) s->is_set_first_item = 1; s->first_item = atoi(aa); } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -22220,7 +30767,7 @@ int main(int ac, char **av) s->is_set_results_per_page = 1; s->results_per_page = atoi(aa); } else - if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -22310,7 +30857,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -22326,7 +30873,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -22349,7 +30896,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -22360,7 +30907,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -22450,7 +30997,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -22466,7 +31013,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -22489,7 +31036,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -22500,7 +31047,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -22590,7 +31137,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -22606,7 +31153,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -22629,7 +31176,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -22640,7 +31187,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -22730,7 +31277,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -22746,7 +31293,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -22769,7 +31316,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -22780,7 +31327,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -22870,7 +31417,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -22886,7 +31433,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -22988,7 +31535,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -23083,7 +31630,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -23099,7 +31646,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -23122,7 +31669,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -23133,7 +31680,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -23223,7 +31770,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -23239,7 +31786,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -23262,7 +31809,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -23273,7 +31820,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -23363,7 +31910,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -23379,7 +31926,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -23402,7 +31949,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -23413,7 +31960,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -23503,7 +32050,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -23519,7 +32066,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -23542,7 +32089,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -23553,7 +32100,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -23643,7 +32190,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -23659,7 +32206,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "FromDate")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "FromDate")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FromDate argument missing\n"); @@ -23670,7 +32217,7 @@ int main(int ac, char **av) s->from_date = aa; // string string } else - if ((aret = argcmp(next_a, "Overall")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Overall")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Overall argument missing\n"); @@ -23686,7 +32233,7 @@ int main(int ac, char **av) BAD_RET("Overall require true/false\n"); } } else - if ((aret = argcmp(next_a, "ShowPrice")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ShowPrice")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ShowPrice argument missing\n"); @@ -23702,7 +32249,7 @@ int main(int ac, char **av) BAD_RET("ShowPrice require true/false\n"); } } else - if ((aret = argcmp(next_a, "ToDate")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ToDate")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ToDate argument missing\n"); @@ -23792,7 +32339,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -23808,7 +32355,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "VmId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmId argument missing\n"); @@ -23898,7 +32445,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -23914,7 +32461,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -23937,7 +32484,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -23948,7 +32495,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -24038,7 +32585,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -24054,7 +32601,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -24156,7 +32703,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -24251,7 +32798,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -24267,7 +32814,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -24369,7 +32916,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -24385,7 +32932,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -24408,7 +32955,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -24419,7 +32966,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -24430,7 +32977,7 @@ int main(int ac, char **av) s->is_set_results_per_page = 1; s->results_per_page = atoi(aa); } else - if ((aret = argcmp(next_a, "With")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "With")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "With argument missing\n"); @@ -24532,7 +33079,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -24548,7 +33095,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -24650,7 +33197,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -24745,7 +33292,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -24761,7 +33308,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "VmId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmId argument missing\n"); @@ -24851,7 +33398,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -24946,7 +33493,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -24962,7 +33509,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -24985,7 +33532,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -25075,7 +33622,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -25091,7 +33638,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "PolicyDocument")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PolicyDocument")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyDocument argument missing\n"); @@ -25102,7 +33649,7 @@ int main(int ac, char **av) s->policy_document = aa; // string string } else - if ((aret = argcmp(next_a, "PolicyName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PolicyName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyName argument missing\n"); @@ -25113,7 +33660,7 @@ int main(int ac, char **av) s->policy_name = aa; // string string } else - if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -25124,7 +33671,7 @@ int main(int ac, char **av) s->user_group_name = aa; // string string } else - if ((aret = argcmp(next_a, "UserGroupPath")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserGroupPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupPath argument missing\n"); @@ -25214,7 +33761,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DeviceName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DeviceName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DeviceName argument missing\n"); @@ -25225,7 +33772,7 @@ int main(int ac, char **av) s->device_name = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -25241,7 +33788,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "VmId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmId argument missing\n"); @@ -25252,7 +33799,7 @@ int main(int ac, char **av) s->vm_id = aa; // string string } else - if ((aret = argcmp(next_a, "VolumeId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VolumeId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VolumeId argument missing\n"); @@ -25342,7 +33889,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -25358,7 +33905,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "NetId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetId argument missing\n"); @@ -25369,7 +33916,7 @@ int main(int ac, char **av) s->net_id = aa; // string string } else - if ((aret = argcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VirtualGatewayId argument missing\n"); @@ -25459,7 +34006,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -25475,7 +34022,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "RouteTableId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "RouteTableId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "RouteTableId argument missing\n"); @@ -25486,7 +34033,7 @@ int main(int ac, char **av) s->route_table_id = aa; // string string } else - if ((aret = argcmp(next_a, "SubnetId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SubnetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubnetId argument missing\n"); @@ -25576,7 +34123,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "AllowRelink")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "AllowRelink")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "AllowRelink argument missing\n"); @@ -25592,7 +34139,7 @@ int main(int ac, char **av) BAD_RET("AllowRelink require true/false\n"); } } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -25608,7 +34155,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "NicId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NicId argument missing\n"); @@ -25619,7 +34166,7 @@ int main(int ac, char **av) s->nic_id = aa; // string string } else - if ((aret = argcmp(next_a, "PrivateIp")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PrivateIp")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PrivateIp argument missing\n"); @@ -25630,7 +34177,7 @@ int main(int ac, char **av) s->private_ip = aa; // string string } else - if ((aret = argcmp(next_a, "PublicIp")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PublicIp")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PublicIp argument missing\n"); @@ -25641,7 +34188,7 @@ int main(int ac, char **av) s->public_ip = aa; // string string } else - if ((aret = argcmp(next_a, "PublicIpId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PublicIpId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PublicIpId argument missing\n"); @@ -25652,7 +34199,7 @@ int main(int ac, char **av) s->public_ip_id = aa; // string string } else - if ((aret = argcmp(next_a, "VmId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmId argument missing\n"); @@ -25742,7 +34289,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "AllowRelink")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "AllowRelink")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "AllowRelink argument missing\n"); @@ -25758,7 +34305,7 @@ int main(int ac, char **av) BAD_RET("AllowRelink require true/false\n"); } } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -25774,7 +34321,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "NicId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NicId argument missing\n"); @@ -25785,20 +34332,41 @@ int main(int ac, char **av) s->nic_id = aa; // string string } else - if ((aret = argcmp(next_a, "PrivateIps")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PrivateIps")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PrivateIps argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "PrivateIps argument missing\n"); - s->private_ips_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "PrivateIps argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "PrivateIps require an index\n"); + if (s->private_ips) { + for (; s->private_ips[last]; ++last); + } + if (pos < last) { + s->private_ips[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->private_ips, "", pa); + SET_NEXT(s->private_ips, (aa), pa); + } + } else { + TRY(!aa, "PrivateIps argument missing\n"); + s->private_ips_str = aa; + } } else if (!(aret = strcmp(str, "PrivateIps[]")) || aret == '=') { TRY(!aa, "PrivateIps[] argument missing\n"); SET_NEXT(s->private_ips, (aa), pa); } else - if ((aret = argcmp(next_a, "SecondaryPrivateIpCount")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SecondaryPrivateIpCount")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecondaryPrivateIpCount argument missing\n"); @@ -25888,7 +34456,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -25904,7 +34472,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "PolicyOrn")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyOrn argument missing\n"); @@ -25915,7 +34483,7 @@ int main(int ac, char **av) s->policy_orn = aa; // string string } else - if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -26005,7 +34573,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DeviceNumber")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DeviceNumber")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DeviceNumber argument missing\n"); @@ -26016,7 +34584,7 @@ int main(int ac, char **av) s->is_set_device_number = 1; s->device_number = atoi(aa); } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -26032,7 +34600,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "NicId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NicId argument missing\n"); @@ -26043,7 +34611,7 @@ int main(int ac, char **av) s->nic_id = aa; // string string } else - if ((aret = argcmp(next_a, "VmId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmId argument missing\n"); @@ -26133,7 +34701,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -26149,7 +34717,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "PolicyOrn")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyOrn argument missing\n"); @@ -26160,7 +34728,7 @@ int main(int ac, char **av) s->policy_orn = aa; // string string } else - if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -26250,33 +34818,75 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "BackendIps")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "BackendIps")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BackendIps argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "BackendIps argument missing\n"); - s->backend_ips_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "BackendIps argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "BackendIps require an index\n"); + if (s->backend_ips) { + for (; s->backend_ips[last]; ++last); + } + if (pos < last) { + s->backend_ips[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->backend_ips, "", pa); + SET_NEXT(s->backend_ips, (aa), pa); + } + } else { + TRY(!aa, "BackendIps argument missing\n"); + s->backend_ips_str = aa; + } } else if (!(aret = strcmp(str, "BackendIps[]")) || aret == '=') { TRY(!aa, "BackendIps[] argument missing\n"); SET_NEXT(s->backend_ips, (aa), pa); } else - if ((aret = argcmp(next_a, "BackendVmIds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "BackendVmIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BackendVmIds argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "BackendVmIds argument missing\n"); - s->backend_vm_ids_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "BackendVmIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "BackendVmIds require an index\n"); + if (s->backend_vm_ids) { + for (; s->backend_vm_ids[last]; ++last); + } + if (pos < last) { + s->backend_vm_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->backend_vm_ids, "", pa); + SET_NEXT(s->backend_vm_ids, (aa), pa); + } + } else { + TRY(!aa, "BackendVmIds argument missing\n"); + s->backend_vm_ids_str = aa; + } } else if (!(aret = strcmp(str, "BackendVmIds[]")) || aret == '=') { TRY(!aa, "BackendVmIds[] argument missing\n"); SET_NEXT(s->backend_vm_ids, (aa), pa); } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -26292,7 +34902,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -26382,7 +34992,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -26398,7 +35008,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "InternetServiceId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "InternetServiceId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "InternetServiceId argument missing\n"); @@ -26409,7 +35019,7 @@ int main(int ac, char **av) s->internet_service_id = aa; // string string } else - if ((aret = argcmp(next_a, "NetId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetId argument missing\n"); @@ -26499,7 +35109,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -26515,7 +35125,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "FlexibleGpuId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "FlexibleGpuId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FlexibleGpuId argument missing\n"); @@ -26526,7 +35136,7 @@ int main(int ac, char **av) s->flexible_gpu_id = aa; // string string } else - if ((aret = argcmp(next_a, "VmId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmId argument missing\n"); @@ -26616,20 +35226,41 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "BackendVmIds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "BackendVmIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BackendVmIds argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "BackendVmIds argument missing\n"); - s->backend_vm_ids_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "BackendVmIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "BackendVmIds require an index\n"); + if (s->backend_vm_ids) { + for (; s->backend_vm_ids[last]; ++last); + } + if (pos < last) { + s->backend_vm_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->backend_vm_ids, "", pa); + SET_NEXT(s->backend_vm_ids, (aa), pa); + } + } else { + TRY(!aa, "BackendVmIds argument missing\n"); + s->backend_vm_ids_str = aa; + } } else if (!(aret = strcmp(str, "BackendVmIds[]")) || aret == '=') { TRY(!aa, "BackendVmIds[] argument missing\n"); SET_NEXT(s->backend_vm_ids, (aa), pa); } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -26645,7 +35276,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -26735,7 +35366,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DestinationIpRange")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DestinationIpRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DestinationIpRange argument missing\n"); @@ -26746,7 +35377,7 @@ int main(int ac, char **av) s->destination_ip_range = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -26762,7 +35393,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "VpnConnectionId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VpnConnectionId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VpnConnectionId argument missing\n"); @@ -26852,7 +35483,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -26868,7 +35499,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "VpnConnectionId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VpnConnectionId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VpnConnectionId argument missing\n"); @@ -26958,7 +35589,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -26974,7 +35605,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "VolumeId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VolumeId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VolumeId argument missing\n"); @@ -27064,7 +35695,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -27080,15 +35711,36 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "VmIds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmIds argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "VmIds argument missing\n"); - s->vm_ids_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmIds require an index\n"); + if (s->vm_ids) { + for (; s->vm_ids[last]; ++last); + } + if (pos < last) { + s->vm_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_ids, "", pa); + SET_NEXT(s->vm_ids, (aa), pa); + } + } else { + TRY(!aa, "VmIds argument missing\n"); + s->vm_ids_str = aa; + } } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); @@ -27172,7 +35824,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -27188,7 +35840,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "VmTemplateId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmTemplateId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmTemplateId argument missing\n"); @@ -27278,7 +35930,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -27294,7 +35946,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "VmGroupId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmGroupId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmGroupId argument missing\n"); @@ -27384,7 +36036,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -27400,7 +36052,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VirtualGatewayId argument missing\n"); @@ -27490,7 +36142,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -27506,7 +36158,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "PolicyName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PolicyName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyName argument missing\n"); @@ -27517,7 +36169,7 @@ int main(int ac, char **av) s->policy_name = aa; // string string } else - if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -27528,7 +36180,7 @@ int main(int ac, char **av) s->user_group_name = aa; // string string } else - if ((aret = argcmp(next_a, "UserGroupPath")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserGroupPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupPath argument missing\n"); @@ -27618,7 +36270,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -27634,7 +36286,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Force")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Force")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Force argument missing\n"); @@ -27650,7 +36302,7 @@ int main(int ac, char **av) BAD_RET("Force require true/false\n"); } } else - if ((aret = argcmp(next_a, "Path")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Path")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Path argument missing\n"); @@ -27661,7 +36313,7 @@ int main(int ac, char **av) s->path = aa; // string string } else - if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -27751,7 +36403,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -27767,7 +36419,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -27857,7 +36509,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -27873,20 +36525,41 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "ResourceIds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResourceIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResourceIds argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "ResourceIds argument missing\n"); - s->resource_ids_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ResourceIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ResourceIds require an index\n"); + if (s->resource_ids) { + for (; s->resource_ids[last]; ++last); + } + if (pos < last) { + s->resource_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->resource_ids, "", pa); + SET_NEXT(s->resource_ids, (aa), pa); + } + } else { + TRY(!aa, "ResourceIds argument missing\n"); + s->resource_ids_str = aa; + } } else if (!(aret = strcmp(str, "ResourceIds[]")) || aret == '=') { TRY(!aa, "ResourceIds[] argument missing\n"); SET_NEXT(s->resource_ids, (aa), pa); } else - if ((aret = argcmp(next_a, "Tags")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Tags argument missing\n"); @@ -27996,7 +36669,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -28012,7 +36685,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "SubnetId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SubnetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubnetId argument missing\n"); @@ -28102,7 +36775,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -28118,7 +36791,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "SnapshotId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SnapshotId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SnapshotId argument missing\n"); @@ -28208,7 +36881,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -28224,7 +36897,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Name")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Name")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Name argument missing\n"); @@ -28314,7 +36987,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -28330,7 +37003,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Flow")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Flow")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Flow argument missing\n"); @@ -28341,7 +37014,7 @@ int main(int ac, char **av) s->flow = aa; // string string } else - if ((aret = argcmp(next_a, "FromPortRange")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "FromPortRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FromPortRange argument missing\n"); @@ -28352,7 +37025,7 @@ int main(int ac, char **av) s->is_set_from_port_range = 1; s->from_port_range = atoi(aa); } else - if ((aret = argcmp(next_a, "IpProtocol")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "IpProtocol")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "IpProtocol argument missing\n"); @@ -28363,7 +37036,7 @@ int main(int ac, char **av) s->ip_protocol = aa; // string string } else - if ((aret = argcmp(next_a, "IpRange")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "IpRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "IpRange argument missing\n"); @@ -28374,7 +37047,7 @@ int main(int ac, char **av) s->ip_range = aa; // string string } else - if ((aret = argcmp(next_a, "Rules")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Rules")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Rules argument missing\n"); @@ -28405,7 +37078,7 @@ int main(int ac, char **av) s->rules_str = aa; // array ref SecurityGroupRule ref } } else - if ((aret = argcmp(next_a, "SecurityGroupAccountIdToUnlink")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SecurityGroupAccountIdToUnlink")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupAccountIdToUnlink argument missing\n"); @@ -28416,7 +37089,7 @@ int main(int ac, char **av) s->security_group_account_id_to_unlink = aa; // string string } else - if ((aret = argcmp(next_a, "SecurityGroupId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SecurityGroupId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupId argument missing\n"); @@ -28427,7 +37100,7 @@ int main(int ac, char **av) s->security_group_id = aa; // string string } else - if ((aret = argcmp(next_a, "SecurityGroupNameToUnlink")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SecurityGroupNameToUnlink")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupNameToUnlink argument missing\n"); @@ -28438,7 +37111,7 @@ int main(int ac, char **av) s->security_group_name_to_unlink = aa; // string string } else - if ((aret = argcmp(next_a, "ToPortRange")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ToPortRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ToPortRange argument missing\n"); @@ -28528,7 +37201,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -28544,7 +37217,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "SecurityGroupId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SecurityGroupId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupId argument missing\n"); @@ -28555,7 +37228,7 @@ int main(int ac, char **av) s->security_group_id = aa; // string string } else - if ((aret = argcmp(next_a, "SecurityGroupName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SecurityGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupName argument missing\n"); @@ -28645,7 +37318,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -28661,7 +37334,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "RouteTableId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "RouteTableId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "RouteTableId argument missing\n"); @@ -28751,7 +37424,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DestinationIpRange")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DestinationIpRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DestinationIpRange argument missing\n"); @@ -28762,7 +37435,7 @@ int main(int ac, char **av) s->destination_ip_range = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -28778,7 +37451,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "RouteTableId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "RouteTableId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "RouteTableId argument missing\n"); @@ -28868,7 +37541,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -28884,7 +37557,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "PublicIp")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PublicIp")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PublicIp argument missing\n"); @@ -28895,7 +37568,7 @@ int main(int ac, char **av) s->public_ip = aa; // string string } else - if ((aret = argcmp(next_a, "PublicIpId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PublicIpId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PublicIpId argument missing\n"); @@ -28985,7 +37658,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "PolicyOrn")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyOrn argument missing\n"); @@ -28996,7 +37669,7 @@ int main(int ac, char **av) s->policy_orn = aa; // string string } else - if ((aret = argcmp(next_a, "VersionId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VersionId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VersionId argument missing\n"); @@ -29086,7 +37759,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -29102,7 +37775,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "PolicyOrn")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyOrn argument missing\n"); @@ -29192,7 +37865,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -29208,7 +37881,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "NicId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NicId argument missing\n"); @@ -29298,7 +37971,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -29314,7 +37987,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "NetPeeringId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NetPeeringId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetPeeringId argument missing\n"); @@ -29404,7 +38077,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -29420,7 +38093,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "NetAccessPointId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NetAccessPointId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetAccessPointId argument missing\n"); @@ -29510,7 +38183,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -29526,7 +38199,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "NetId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetId argument missing\n"); @@ -29616,7 +38289,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -29632,7 +38305,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "NatServiceId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NatServiceId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NatServiceId argument missing\n"); @@ -29722,7 +38395,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -29738,20 +38411,41 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "LoadBalancerNames")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LoadBalancerNames")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerNames argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "LoadBalancerNames argument missing\n"); - s->load_balancer_names_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LoadBalancerNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LoadBalancerNames require an index\n"); + if (s->load_balancer_names) { + for (; s->load_balancer_names[last]; ++last); + } + if (pos < last) { + s->load_balancer_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->load_balancer_names, "", pa); + SET_NEXT(s->load_balancer_names, (aa), pa); + } + } else { + TRY(!aa, "LoadBalancerNames argument missing\n"); + s->load_balancer_names_str = aa; + } } else if (!(aret = strcmp(str, "LoadBalancerNames[]")) || aret == '=') { TRY(!aa, "LoadBalancerNames[] argument missing\n"); SET_NEXT(s->load_balancer_names, (aa), pa); } else - if ((aret = argcmp(next_a, "Tags")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Tags argument missing\n"); @@ -29861,7 +38555,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -29877,7 +38571,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -29888,7 +38582,7 @@ int main(int ac, char **av) s->load_balancer_name = aa; // string string } else - if ((aret = argcmp(next_a, "PolicyName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PolicyName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyName argument missing\n"); @@ -29978,7 +38672,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -29994,7 +38688,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -30005,15 +38699,36 @@ int main(int ac, char **av) s->load_balancer_name = aa; // string string } else - if ((aret = argcmp(next_a, "LoadBalancerPorts")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LoadBalancerPorts")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerPorts argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "LoadBalancerPorts argument missing\n"); - s->load_balancer_ports_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LoadBalancerPorts argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LoadBalancerPorts require an index\n"); + if (s->load_balancer_ports) { + for (; s->load_balancer_ports[last]; ++last); + } + if (pos < last) { + s->load_balancer_ports[pos] = atoi(aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->load_balancer_ports, 0, pa); + SET_NEXT(s->load_balancer_ports, atoi(aa), pa); + } + } else { + TRY(!aa, "LoadBalancerPorts argument missing\n"); + s->load_balancer_ports_str = aa; + } } else if (!(aret = strcmp(str, "LoadBalancerPorts[]")) || aret == '=') { TRY(!aa, "LoadBalancerPorts[] argument missing\n"); SET_NEXT(s->load_balancer_ports, atoi(aa), pa); @@ -30097,7 +38812,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -30113,7 +38828,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -30203,7 +38918,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -30219,7 +38934,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "ListenerRuleName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ListenerRuleName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ListenerRuleName argument missing\n"); @@ -30309,7 +39024,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -30325,7 +39040,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "KeypairName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "KeypairName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "KeypairName argument missing\n"); @@ -30415,7 +39130,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -30431,7 +39146,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "InternetServiceId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "InternetServiceId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "InternetServiceId argument missing\n"); @@ -30521,7 +39236,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -30537,7 +39252,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "ImageId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ImageId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ImageId argument missing\n"); @@ -30627,7 +39342,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -30643,7 +39358,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "FlexibleGpuId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "FlexibleGpuId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FlexibleGpuId argument missing\n"); @@ -30733,7 +39448,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -30749,7 +39464,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "ExportTaskId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ExportTaskId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ExportTaskId argument missing\n"); @@ -30839,7 +39554,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DirectLinkInterfaceId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DirectLinkInterfaceId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DirectLinkInterfaceId argument missing\n"); @@ -30850,7 +39565,7 @@ int main(int ac, char **av) s->direct_link_interface_id = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -30945,7 +39660,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DirectLinkId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DirectLinkId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DirectLinkId argument missing\n"); @@ -30956,7 +39671,7 @@ int main(int ac, char **av) s->direct_link_id = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -31051,7 +39766,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DhcpOptionsSetId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DhcpOptionsSetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DhcpOptionsSetId argument missing\n"); @@ -31062,7 +39777,7 @@ int main(int ac, char **av) s->dhcp_options_set_id = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -31157,7 +39872,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DedicatedGroupId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DedicatedGroupId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DedicatedGroupId argument missing\n"); @@ -31168,7 +39883,7 @@ int main(int ac, char **av) s->dedicated_group_id = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -31184,7 +39899,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Force")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Force")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Force argument missing\n"); @@ -31279,7 +39994,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "ClientGatewayId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ClientGatewayId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ClientGatewayId argument missing\n"); @@ -31290,7 +40005,7 @@ int main(int ac, char **av) s->client_gateway_id = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -31385,7 +40100,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "CaId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "CaId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CaId argument missing\n"); @@ -31396,7 +40111,7 @@ int main(int ac, char **av) s->ca_id = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -31491,7 +40206,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "ApiAccessRuleId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ApiAccessRuleId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ApiAccessRuleId argument missing\n"); @@ -31502,7 +40217,7 @@ int main(int ac, char **av) s->api_access_rule_id = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -31597,7 +40312,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "AccessKeyId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "AccessKeyId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "AccessKeyId argument missing\n"); @@ -31608,7 +40323,7 @@ int main(int ac, char **av) s->access_key_id = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -31624,7 +40339,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -31714,7 +40429,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DestinationIpRange")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DestinationIpRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DestinationIpRange argument missing\n"); @@ -31725,7 +40440,7 @@ int main(int ac, char **av) s->destination_ip_range = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -31741,7 +40456,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "VpnConnectionId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VpnConnectionId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VpnConnectionId argument missing\n"); @@ -31831,7 +40546,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "ClientGatewayId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ClientGatewayId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ClientGatewayId argument missing\n"); @@ -31842,7 +40557,7 @@ int main(int ac, char **av) s->client_gateway_id = aa; // string string } else - if ((aret = argcmp(next_a, "ConnectionType")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ConnectionType")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ConnectionType argument missing\n"); @@ -31853,7 +40568,7 @@ int main(int ac, char **av) s->connection_type = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -31869,7 +40584,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "StaticRoutesOnly")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "StaticRoutesOnly")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "StaticRoutesOnly argument missing\n"); @@ -31885,7 +40600,7 @@ int main(int ac, char **av) BAD_RET("StaticRoutesOnly require true/false\n"); } } else - if ((aret = argcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VirtualGatewayId argument missing\n"); @@ -31975,7 +40690,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -31991,7 +40706,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Iops")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Iops")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Iops argument missing\n"); @@ -32002,7 +40717,7 @@ int main(int ac, char **av) s->is_set_iops = 1; s->iops = atoi(aa); } else - if ((aret = argcmp(next_a, "Size")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Size")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Size argument missing\n"); @@ -32013,7 +40728,7 @@ int main(int ac, char **av) s->is_set_size = 1; s->size = atoi(aa); } else - if ((aret = argcmp(next_a, "SnapshotId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SnapshotId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SnapshotId argument missing\n"); @@ -32024,7 +40739,7 @@ int main(int ac, char **av) s->snapshot_id = aa; // string string } else - if ((aret = argcmp(next_a, "SubregionName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SubregionName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubregionName argument missing\n"); @@ -32035,7 +40750,7 @@ int main(int ac, char **av) s->subregion_name = aa; // string string } else - if ((aret = argcmp(next_a, "VolumeType")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VolumeType")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VolumeType argument missing\n"); @@ -32125,7 +40840,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "BlockDeviceMappings")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "BlockDeviceMappings")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BlockDeviceMappings argument missing\n"); @@ -32156,7 +40871,7 @@ int main(int ac, char **av) s->block_device_mappings_str = aa; // array ref BlockDeviceMappingVmCreation ref } } else - if ((aret = argcmp(next_a, "BootOnCreation")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "BootOnCreation")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BootOnCreation argument missing\n"); @@ -32172,7 +40887,7 @@ int main(int ac, char **av) BAD_RET("BootOnCreation require true/false\n"); } } else - if ((aret = argcmp(next_a, "BsuOptimized")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "BsuOptimized")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BsuOptimized argument missing\n"); @@ -32188,7 +40903,7 @@ int main(int ac, char **av) BAD_RET("BsuOptimized require true/false\n"); } } else - if ((aret = argcmp(next_a, "ClientToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ClientToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ClientToken argument missing\n"); @@ -32199,7 +40914,7 @@ int main(int ac, char **av) s->client_token = aa; // string string } else - if ((aret = argcmp(next_a, "DeletionProtection")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DeletionProtection")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DeletionProtection argument missing\n"); @@ -32215,7 +40930,7 @@ int main(int ac, char **av) BAD_RET("DeletionProtection require true/false\n"); } } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -32231,7 +40946,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "ImageId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ImageId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ImageId argument missing\n"); @@ -32242,7 +40957,7 @@ int main(int ac, char **av) s->image_id = aa; // string string } else - if ((aret = argcmp(next_a, "KeypairName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "KeypairName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "KeypairName argument missing\n"); @@ -32253,7 +40968,7 @@ int main(int ac, char **av) s->keypair_name = aa; // string string } else - if ((aret = argcmp(next_a, "MaxVmsCount")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "MaxVmsCount")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "MaxVmsCount argument missing\n"); @@ -32264,7 +40979,7 @@ int main(int ac, char **av) s->is_set_max_vms_count = 1; s->max_vms_count = atoi(aa); } else - if ((aret = argcmp(next_a, "MinVmsCount")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "MinVmsCount")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "MinVmsCount argument missing\n"); @@ -32275,7 +40990,7 @@ int main(int ac, char **av) s->is_set_min_vms_count = 1; s->min_vms_count = atoi(aa); } else - if ((aret = argcmp(next_a, "NestedVirtualization")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NestedVirtualization")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NestedVirtualization argument missing\n"); @@ -32291,7 +41006,7 @@ int main(int ac, char **av) BAD_RET("NestedVirtualization require true/false\n"); } } else - if ((aret = argcmp(next_a, "Nics")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Nics")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Nics argument missing\n"); @@ -32322,7 +41037,7 @@ int main(int ac, char **av) s->nics_str = aa; // array ref NicForVmCreation ref } } else - if ((aret = argcmp(next_a, "Performance")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Performance")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Performance argument missing\n"); @@ -32333,7 +41048,7 @@ int main(int ac, char **av) s->performance = aa; // string string } else - if ((aret = argcmp(next_a, "Placement")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Placement")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Placement argument missing\n"); @@ -32356,46 +41071,109 @@ int main(int ac, char **av) s->placement_str = aa; } } else - if ((aret = argcmp(next_a, "PrivateIps")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PrivateIps")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PrivateIps argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "PrivateIps argument missing\n"); - s->private_ips_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "PrivateIps argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "PrivateIps require an index\n"); + if (s->private_ips) { + for (; s->private_ips[last]; ++last); + } + if (pos < last) { + s->private_ips[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->private_ips, "", pa); + SET_NEXT(s->private_ips, (aa), pa); + } + } else { + TRY(!aa, "PrivateIps argument missing\n"); + s->private_ips_str = aa; + } } else if (!(aret = strcmp(str, "PrivateIps[]")) || aret == '=') { TRY(!aa, "PrivateIps[] argument missing\n"); SET_NEXT(s->private_ips, (aa), pa); } else - if ((aret = argcmp(next_a, "SecurityGroupIds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupIds argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "SecurityGroupIds argument missing\n"); - s->security_group_ids_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SecurityGroupIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SecurityGroupIds require an index\n"); + if (s->security_group_ids) { + for (; s->security_group_ids[last]; ++last); + } + if (pos < last) { + s->security_group_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->security_group_ids, "", pa); + SET_NEXT(s->security_group_ids, (aa), pa); + } + } else { + TRY(!aa, "SecurityGroupIds argument missing\n"); + s->security_group_ids_str = aa; + } } else if (!(aret = strcmp(str, "SecurityGroupIds[]")) || aret == '=') { TRY(!aa, "SecurityGroupIds[] argument missing\n"); SET_NEXT(s->security_group_ids, (aa), pa); } else - if ((aret = argcmp(next_a, "SecurityGroups")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SecurityGroups")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroups argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "SecurityGroups argument missing\n"); - s->security_groups_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SecurityGroups argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SecurityGroups require an index\n"); + if (s->security_groups) { + for (; s->security_groups[last]; ++last); + } + if (pos < last) { + s->security_groups[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->security_groups, "", pa); + SET_NEXT(s->security_groups, (aa), pa); + } + } else { + TRY(!aa, "SecurityGroups argument missing\n"); + s->security_groups_str = aa; + } } else if (!(aret = strcmp(str, "SecurityGroups[]")) || aret == '=') { TRY(!aa, "SecurityGroups[] argument missing\n"); SET_NEXT(s->security_groups, (aa), pa); } else - if ((aret = argcmp(next_a, "SubnetId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SubnetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubnetId argument missing\n"); @@ -32406,7 +41184,7 @@ int main(int ac, char **av) s->subnet_id = aa; // string string } else - if ((aret = argcmp(next_a, "UserData")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserData")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserData argument missing\n"); @@ -32417,7 +41195,7 @@ int main(int ac, char **av) s->user_data = aa; // string string } else - if ((aret = argcmp(next_a, "VmInitiatedShutdownBehavior")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmInitiatedShutdownBehavior")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmInitiatedShutdownBehavior argument missing\n"); @@ -32428,7 +41206,7 @@ int main(int ac, char **av) s->vm_initiated_shutdown_behavior = aa; // string string } else - if ((aret = argcmp(next_a, "VmType")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmType")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmType argument missing\n"); @@ -32518,7 +41296,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "CpuCores")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "CpuCores")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CpuCores argument missing\n"); @@ -32529,7 +41307,7 @@ int main(int ac, char **av) s->is_set_cpu_cores = 1; s->cpu_cores = atoi(aa); } else - if ((aret = argcmp(next_a, "CpuGeneration")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "CpuGeneration")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CpuGeneration argument missing\n"); @@ -32540,7 +41318,7 @@ int main(int ac, char **av) s->cpu_generation = aa; // string string } else - if ((aret = argcmp(next_a, "CpuPerformance")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "CpuPerformance")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CpuPerformance argument missing\n"); @@ -32551,7 +41329,7 @@ int main(int ac, char **av) s->cpu_performance = aa; // string string } else - if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -32562,7 +41340,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -32578,7 +41356,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "ImageId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ImageId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ImageId argument missing\n"); @@ -32589,7 +41367,7 @@ int main(int ac, char **av) s->image_id = aa; // string string } else - if ((aret = argcmp(next_a, "KeypairName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "KeypairName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "KeypairName argument missing\n"); @@ -32600,7 +41378,7 @@ int main(int ac, char **av) s->keypair_name = aa; // string string } else - if ((aret = argcmp(next_a, "Ram")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Ram")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Ram argument missing\n"); @@ -32611,7 +41389,7 @@ int main(int ac, char **av) s->is_set_ram = 1; s->ram = atoi(aa); } else - if ((aret = argcmp(next_a, "Tags")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Tags argument missing\n"); @@ -32642,7 +41420,7 @@ int main(int ac, char **av) s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = argcmp(next_a, "VmTemplateName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmTemplateName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmTemplateName argument missing\n"); @@ -32732,7 +41510,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -32743,7 +41521,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -32759,7 +41537,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "PositioningStrategy")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PositioningStrategy")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PositioningStrategy argument missing\n"); @@ -32770,20 +41548,41 @@ int main(int ac, char **av) s->positioning_strategy = aa; // string string } else - if ((aret = argcmp(next_a, "SecurityGroupIds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupIds argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "SecurityGroupIds argument missing\n"); - s->security_group_ids_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SecurityGroupIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SecurityGroupIds require an index\n"); + if (s->security_group_ids) { + for (; s->security_group_ids[last]; ++last); + } + if (pos < last) { + s->security_group_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->security_group_ids, "", pa); + SET_NEXT(s->security_group_ids, (aa), pa); + } + } else { + TRY(!aa, "SecurityGroupIds argument missing\n"); + s->security_group_ids_str = aa; + } } else if (!(aret = strcmp(str, "SecurityGroupIds[]")) || aret == '=') { TRY(!aa, "SecurityGroupIds[] argument missing\n"); SET_NEXT(s->security_group_ids, (aa), pa); } else - if ((aret = argcmp(next_a, "SubnetId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SubnetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubnetId argument missing\n"); @@ -32794,7 +41593,7 @@ int main(int ac, char **av) s->subnet_id = aa; // string string } else - if ((aret = argcmp(next_a, "Tags")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Tags argument missing\n"); @@ -32825,7 +41624,7 @@ int main(int ac, char **av) s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = argcmp(next_a, "VmCount")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmCount")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmCount argument missing\n"); @@ -32836,7 +41635,7 @@ int main(int ac, char **av) s->is_set_vm_count = 1; s->vm_count = atoi(aa); } else - if ((aret = argcmp(next_a, "VmGroupName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmGroupName argument missing\n"); @@ -32847,7 +41646,7 @@ int main(int ac, char **av) s->vm_group_name = aa; // string string } else - if ((aret = argcmp(next_a, "VmTemplateId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmTemplateId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmTemplateId argument missing\n"); @@ -32937,7 +41736,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "ConnectionType")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ConnectionType")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ConnectionType argument missing\n"); @@ -32948,7 +41747,7 @@ int main(int ac, char **av) s->connection_type = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -33043,7 +41842,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -33059,7 +41858,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Path")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Path")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Path argument missing\n"); @@ -33070,7 +41869,7 @@ int main(int ac, char **av) s->path = aa; // string string } else - if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -33160,7 +41959,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -33176,7 +41975,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Path")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Path")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Path argument missing\n"); @@ -33187,7 +41986,7 @@ int main(int ac, char **av) s->path = aa; // string string } else - if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -33277,7 +42076,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -33293,20 +42092,41 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "ResourceIds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ResourceIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResourceIds argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "ResourceIds argument missing\n"); - s->resource_ids_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ResourceIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ResourceIds require an index\n"); + if (s->resource_ids) { + for (; s->resource_ids[last]; ++last); + } + if (pos < last) { + s->resource_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->resource_ids, "", pa); + SET_NEXT(s->resource_ids, (aa), pa); + } + } else { + TRY(!aa, "ResourceIds argument missing\n"); + s->resource_ids_str = aa; + } } else if (!(aret = strcmp(str, "ResourceIds[]")) || aret == '=') { TRY(!aa, "ResourceIds[] argument missing\n"); SET_NEXT(s->resource_ids, (aa), pa); } else - if ((aret = argcmp(next_a, "Tags")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Tags argument missing\n"); @@ -33416,7 +42236,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -33432,7 +42252,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "IpRange")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "IpRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "IpRange argument missing\n"); @@ -33443,7 +42263,7 @@ int main(int ac, char **av) s->ip_range = aa; // string string } else - if ((aret = argcmp(next_a, "NetId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetId argument missing\n"); @@ -33454,7 +42274,7 @@ int main(int ac, char **av) s->net_id = aa; // string string } else - if ((aret = argcmp(next_a, "SubregionName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SubregionName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubregionName argument missing\n"); @@ -33544,7 +42364,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -33560,7 +42380,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "OsuExport")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "OsuExport")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "OsuExport argument missing\n"); @@ -33583,7 +42403,7 @@ int main(int ac, char **av) s->osu_export_str = aa; } } else - if ((aret = argcmp(next_a, "SnapshotId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SnapshotId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SnapshotId argument missing\n"); @@ -33673,7 +42493,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -33684,7 +42504,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -33700,7 +42520,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "FileLocation")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "FileLocation")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FileLocation argument missing\n"); @@ -33711,7 +42531,7 @@ int main(int ac, char **av) s->file_location = aa; // string string } else - if ((aret = argcmp(next_a, "SnapshotSize")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SnapshotSize")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SnapshotSize argument missing\n"); @@ -33722,7 +42542,7 @@ int main(int ac, char **av) s->is_set_snapshot_size = 1; s->snapshot_size = atoi(aa); } else - if ((aret = argcmp(next_a, "SourceRegionName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SourceRegionName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SourceRegionName argument missing\n"); @@ -33733,7 +42553,7 @@ int main(int ac, char **av) s->source_region_name = aa; // string string } else - if ((aret = argcmp(next_a, "SourceSnapshotId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SourceSnapshotId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SourceSnapshotId argument missing\n"); @@ -33744,7 +42564,7 @@ int main(int ac, char **av) s->source_snapshot_id = aa; // string string } else - if ((aret = argcmp(next_a, "VolumeId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VolumeId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VolumeId argument missing\n"); @@ -33834,7 +42654,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "Body")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Body")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Body argument missing\n"); @@ -33845,7 +42665,7 @@ int main(int ac, char **av) s->body = aa; // string string } else - if ((aret = argcmp(next_a, "Chain")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Chain")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Chain argument missing\n"); @@ -33856,7 +42676,7 @@ int main(int ac, char **av) s->chain = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -33872,7 +42692,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Name")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Name")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Name argument missing\n"); @@ -33883,7 +42703,7 @@ int main(int ac, char **av) s->name = aa; // string string } else - if ((aret = argcmp(next_a, "Path")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Path")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Path argument missing\n"); @@ -33894,7 +42714,7 @@ int main(int ac, char **av) s->path = aa; // string string } else - if ((aret = argcmp(next_a, "PrivateKey")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PrivateKey")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PrivateKey argument missing\n"); @@ -33984,7 +42804,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -34000,7 +42820,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Flow")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Flow")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Flow argument missing\n"); @@ -34011,7 +42831,7 @@ int main(int ac, char **av) s->flow = aa; // string string } else - if ((aret = argcmp(next_a, "FromPortRange")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "FromPortRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FromPortRange argument missing\n"); @@ -34022,7 +42842,7 @@ int main(int ac, char **av) s->is_set_from_port_range = 1; s->from_port_range = atoi(aa); } else - if ((aret = argcmp(next_a, "IpProtocol")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "IpProtocol")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "IpProtocol argument missing\n"); @@ -34033,7 +42853,7 @@ int main(int ac, char **av) s->ip_protocol = aa; // string string } else - if ((aret = argcmp(next_a, "IpRange")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "IpRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "IpRange argument missing\n"); @@ -34044,7 +42864,7 @@ int main(int ac, char **av) s->ip_range = aa; // string string } else - if ((aret = argcmp(next_a, "Rules")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Rules")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Rules argument missing\n"); @@ -34075,7 +42895,7 @@ int main(int ac, char **av) s->rules_str = aa; // array ref SecurityGroupRule ref } } else - if ((aret = argcmp(next_a, "SecurityGroupAccountIdToLink")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SecurityGroupAccountIdToLink")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupAccountIdToLink argument missing\n"); @@ -34086,7 +42906,7 @@ int main(int ac, char **av) s->security_group_account_id_to_link = aa; // string string } else - if ((aret = argcmp(next_a, "SecurityGroupId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SecurityGroupId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupId argument missing\n"); @@ -34097,7 +42917,7 @@ int main(int ac, char **av) s->security_group_id = aa; // string string } else - if ((aret = argcmp(next_a, "SecurityGroupNameToLink")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SecurityGroupNameToLink")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupNameToLink argument missing\n"); @@ -34108,7 +42928,7 @@ int main(int ac, char **av) s->security_group_name_to_link = aa; // string string } else - if ((aret = argcmp(next_a, "ToPortRange")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ToPortRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ToPortRange argument missing\n"); @@ -34198,7 +43018,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -34209,7 +43029,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -34225,7 +43045,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "NetId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetId argument missing\n"); @@ -34236,7 +43056,7 @@ int main(int ac, char **av) s->net_id = aa; // string string } else - if ((aret = argcmp(next_a, "SecurityGroupName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SecurityGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupName argument missing\n"); @@ -34326,7 +43146,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -34342,7 +43162,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "NetId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetId argument missing\n"); @@ -34432,7 +43252,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DestinationIpRange")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DestinationIpRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DestinationIpRange argument missing\n"); @@ -34443,7 +43263,7 @@ int main(int ac, char **av) s->destination_ip_range = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -34459,7 +43279,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "GatewayId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "GatewayId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "GatewayId argument missing\n"); @@ -34470,7 +43290,7 @@ int main(int ac, char **av) s->gateway_id = aa; // string string } else - if ((aret = argcmp(next_a, "NatServiceId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NatServiceId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NatServiceId argument missing\n"); @@ -34481,7 +43301,7 @@ int main(int ac, char **av) s->nat_service_id = aa; // string string } else - if ((aret = argcmp(next_a, "NetPeeringId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NetPeeringId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetPeeringId argument missing\n"); @@ -34492,7 +43312,7 @@ int main(int ac, char **av) s->net_peering_id = aa; // string string } else - if ((aret = argcmp(next_a, "NicId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NicId argument missing\n"); @@ -34503,7 +43323,7 @@ int main(int ac, char **av) s->nic_id = aa; // string string } else - if ((aret = argcmp(next_a, "RouteTableId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "RouteTableId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "RouteTableId argument missing\n"); @@ -34514,7 +43334,7 @@ int main(int ac, char **av) s->route_table_id = aa; // string string } else - if ((aret = argcmp(next_a, "VmId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmId argument missing\n"); @@ -34604,7 +43424,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -34699,7 +43519,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -34710,7 +43530,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -34726,7 +43546,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Vendor")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Vendor")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Vendor argument missing\n"); @@ -34816,7 +43636,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "Document")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Document")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Document argument missing\n"); @@ -34827,7 +43647,7 @@ int main(int ac, char **av) s->document = aa; // string string } else - if ((aret = argcmp(next_a, "PolicyOrn")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyOrn argument missing\n"); @@ -34838,7 +43658,7 @@ int main(int ac, char **av) s->policy_orn = aa; // string string } else - if ((aret = argcmp(next_a, "SetAsDefault")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SetAsDefault")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SetAsDefault argument missing\n"); @@ -34933,7 +43753,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -34944,7 +43764,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = argcmp(next_a, "Document")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Document")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Document argument missing\n"); @@ -34955,7 +43775,7 @@ int main(int ac, char **av) s->document = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -34971,7 +43791,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Path")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Path")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Path argument missing\n"); @@ -34982,7 +43802,7 @@ int main(int ac, char **av) s->path = aa; // string string } else - if ((aret = argcmp(next_a, "PolicyName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PolicyName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyName argument missing\n"); @@ -35072,7 +43892,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -35083,7 +43903,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -35099,7 +43919,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "PrivateIps")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PrivateIps")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PrivateIps argument missing\n"); @@ -35130,20 +43950,41 @@ int main(int ac, char **av) s->private_ips_str = aa; // array ref PrivateIpLight ref } } else - if ((aret = argcmp(next_a, "SecurityGroupIds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupIds argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "SecurityGroupIds argument missing\n"); - s->security_group_ids_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SecurityGroupIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SecurityGroupIds require an index\n"); + if (s->security_group_ids) { + for (; s->security_group_ids[last]; ++last); + } + if (pos < last) { + s->security_group_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->security_group_ids, "", pa); + SET_NEXT(s->security_group_ids, (aa), pa); + } + } else { + TRY(!aa, "SecurityGroupIds argument missing\n"); + s->security_group_ids_str = aa; + } } else if (!(aret = strcmp(str, "SecurityGroupIds[]")) || aret == '=') { TRY(!aa, "SecurityGroupIds[] argument missing\n"); SET_NEXT(s->security_group_ids, (aa), pa); } else - if ((aret = argcmp(next_a, "SubnetId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SubnetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubnetId argument missing\n"); @@ -35233,7 +44074,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "AccepterNetId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "AccepterNetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "AccepterNetId argument missing\n"); @@ -35244,7 +44085,7 @@ int main(int ac, char **av) s->accepter_net_id = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -35260,7 +44101,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "SourceNetId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SourceNetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SourceNetId argument missing\n"); @@ -35350,7 +44191,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -35366,7 +44207,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "NetId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetId argument missing\n"); @@ -35377,20 +44218,41 @@ int main(int ac, char **av) s->net_id = aa; // string string } else - if ((aret = argcmp(next_a, "RouteTableIds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "RouteTableIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "RouteTableIds argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "RouteTableIds argument missing\n"); - s->route_table_ids_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "RouteTableIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "RouteTableIds require an index\n"); + if (s->route_table_ids) { + for (; s->route_table_ids[last]; ++last); + } + if (pos < last) { + s->route_table_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->route_table_ids, "", pa); + SET_NEXT(s->route_table_ids, (aa), pa); + } + } else { + TRY(!aa, "RouteTableIds argument missing\n"); + s->route_table_ids_str = aa; + } } else if (!(aret = strcmp(str, "RouteTableIds[]")) || aret == '=') { TRY(!aa, "RouteTableIds[] argument missing\n"); SET_NEXT(s->route_table_ids, (aa), pa); } else - if ((aret = argcmp(next_a, "ServiceName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ServiceName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ServiceName argument missing\n"); @@ -35480,7 +44342,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -35496,7 +44358,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "IpRange")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "IpRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "IpRange argument missing\n"); @@ -35507,7 +44369,7 @@ int main(int ac, char **av) s->ip_range = aa; // string string } else - if ((aret = argcmp(next_a, "Tenancy")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Tenancy")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Tenancy argument missing\n"); @@ -35597,7 +44459,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "ClientToken")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ClientToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ClientToken argument missing\n"); @@ -35608,7 +44470,7 @@ int main(int ac, char **av) s->client_token = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -35624,7 +44486,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "PublicIpId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PublicIpId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PublicIpId argument missing\n"); @@ -35635,7 +44497,7 @@ int main(int ac, char **av) s->public_ip_id = aa; // string string } else - if ((aret = argcmp(next_a, "SubnetId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SubnetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubnetId argument missing\n"); @@ -35725,7 +44587,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -35741,20 +44603,41 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "LoadBalancerNames")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LoadBalancerNames")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerNames argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "LoadBalancerNames argument missing\n"); - s->load_balancer_names_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LoadBalancerNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LoadBalancerNames require an index\n"); + if (s->load_balancer_names) { + for (; s->load_balancer_names[last]; ++last); + } + if (pos < last) { + s->load_balancer_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->load_balancer_names, "", pa); + SET_NEXT(s->load_balancer_names, (aa), pa); + } + } else { + TRY(!aa, "LoadBalancerNames argument missing\n"); + s->load_balancer_names_str = aa; + } } else if (!(aret = strcmp(str, "LoadBalancerNames[]")) || aret == '=') { TRY(!aa, "LoadBalancerNames[] argument missing\n"); SET_NEXT(s->load_balancer_names, (aa), pa); } else - if ((aret = argcmp(next_a, "Tags")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Tags argument missing\n"); @@ -35864,7 +44747,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "CookieExpirationPeriod")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "CookieExpirationPeriod")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CookieExpirationPeriod argument missing\n"); @@ -35875,7 +44758,7 @@ int main(int ac, char **av) s->is_set_cookie_expiration_period = 1; s->cookie_expiration_period = atoi(aa); } else - if ((aret = argcmp(next_a, "CookieName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "CookieName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CookieName argument missing\n"); @@ -35886,7 +44769,7 @@ int main(int ac, char **av) s->cookie_name = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -35902,7 +44785,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -35913,7 +44796,7 @@ int main(int ac, char **av) s->load_balancer_name = aa; // string string } else - if ((aret = argcmp(next_a, "PolicyName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PolicyName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyName argument missing\n"); @@ -35924,7 +44807,7 @@ int main(int ac, char **av) s->policy_name = aa; // string string } else - if ((aret = argcmp(next_a, "PolicyType")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PolicyType")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyType argument missing\n"); @@ -36014,7 +44897,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -36030,7 +44913,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Listeners")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Listeners")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Listeners argument missing\n"); @@ -36061,7 +44944,7 @@ int main(int ac, char **av) s->listeners_str = aa; // array ref ListenerForCreation ref } } else - if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -36151,7 +45034,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -36167,7 +45050,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Listeners")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Listeners")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Listeners argument missing\n"); @@ -36198,7 +45081,7 @@ int main(int ac, char **av) s->listeners_str = aa; // array ref ListenerForCreation ref } } else - if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -36209,7 +45092,7 @@ int main(int ac, char **av) s->load_balancer_name = aa; // string string } else - if ((aret = argcmp(next_a, "LoadBalancerType")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LoadBalancerType")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerType argument missing\n"); @@ -36220,7 +45103,7 @@ int main(int ac, char **av) s->load_balancer_type = aa; // string string } else - if ((aret = argcmp(next_a, "PublicIp")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PublicIp")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PublicIp argument missing\n"); @@ -36231,46 +45114,109 @@ int main(int ac, char **av) s->public_ip = aa; // string string } else - if ((aret = argcmp(next_a, "SecurityGroups")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SecurityGroups")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroups argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "SecurityGroups argument missing\n"); - s->security_groups_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SecurityGroups argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SecurityGroups require an index\n"); + if (s->security_groups) { + for (; s->security_groups[last]; ++last); + } + if (pos < last) { + s->security_groups[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->security_groups, "", pa); + SET_NEXT(s->security_groups, (aa), pa); + } + } else { + TRY(!aa, "SecurityGroups argument missing\n"); + s->security_groups_str = aa; + } } else if (!(aret = strcmp(str, "SecurityGroups[]")) || aret == '=') { TRY(!aa, "SecurityGroups[] argument missing\n"); SET_NEXT(s->security_groups, (aa), pa); } else - if ((aret = argcmp(next_a, "Subnets")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Subnets")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Subnets argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "Subnets argument missing\n"); - s->subnets_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Subnets argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Subnets require an index\n"); + if (s->subnets) { + for (; s->subnets[last]; ++last); + } + if (pos < last) { + s->subnets[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->subnets, "", pa); + SET_NEXT(s->subnets, (aa), pa); + } + } else { + TRY(!aa, "Subnets argument missing\n"); + s->subnets_str = aa; + } } else if (!(aret = strcmp(str, "Subnets[]")) || aret == '=') { TRY(!aa, "Subnets[] argument missing\n"); SET_NEXT(s->subnets, (aa), pa); } else - if ((aret = argcmp(next_a, "SubregionNames")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SubregionNames")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubregionNames argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "SubregionNames argument missing\n"); - s->subregion_names_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "SubregionNames argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "SubregionNames require an index\n"); + if (s->subregion_names) { + for (; s->subregion_names[last]; ++last); + } + if (pos < last) { + s->subregion_names[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->subregion_names, "", pa); + SET_NEXT(s->subregion_names, (aa), pa); + } + } else { + TRY(!aa, "SubregionNames argument missing\n"); + s->subregion_names_str = aa; + } } else if (!(aret = strcmp(str, "SubregionNames[]")) || aret == '=') { TRY(!aa, "SubregionNames[] argument missing\n"); SET_NEXT(s->subregion_names, (aa), pa); } else - if ((aret = argcmp(next_a, "Tags")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Tags argument missing\n"); @@ -36380,7 +45326,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -36396,7 +45342,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Listener")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Listener")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Listener argument missing\n"); @@ -36419,7 +45365,7 @@ int main(int ac, char **av) s->listener_str = aa; } } else - if ((aret = argcmp(next_a, "ListenerRule")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ListenerRule")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ListenerRule argument missing\n"); @@ -36442,15 +45388,36 @@ int main(int ac, char **av) s->listener_rule_str = aa; } } else - if ((aret = argcmp(next_a, "VmIds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmIds argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "VmIds argument missing\n"); - s->vm_ids_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "VmIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "VmIds require an index\n"); + if (s->vm_ids) { + for (; s->vm_ids[last]; ++last); + } + if (pos < last) { + s->vm_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->vm_ids, "", pa); + SET_NEXT(s->vm_ids, (aa), pa); + } + } else { + TRY(!aa, "VmIds argument missing\n"); + s->vm_ids_str = aa; + } } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); @@ -36534,7 +45501,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -36550,7 +45517,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "KeypairName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "KeypairName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "KeypairName argument missing\n"); @@ -36561,7 +45528,7 @@ int main(int ac, char **av) s->keypair_name = aa; // string string } else - if ((aret = argcmp(next_a, "PublicKey")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PublicKey")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PublicKey argument missing\n"); @@ -36651,7 +45618,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -36746,7 +45713,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -36762,7 +45729,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "ImageId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ImageId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ImageId argument missing\n"); @@ -36773,7 +45740,7 @@ int main(int ac, char **av) s->image_id = aa; // string string } else - if ((aret = argcmp(next_a, "OsuExport")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "OsuExport")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "OsuExport argument missing\n"); @@ -36875,7 +45842,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "Architecture")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Architecture")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Architecture argument missing\n"); @@ -36886,7 +45853,7 @@ int main(int ac, char **av) s->architecture = aa; // string string } else - if ((aret = argcmp(next_a, "BlockDeviceMappings")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "BlockDeviceMappings")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BlockDeviceMappings argument missing\n"); @@ -36917,7 +45884,7 @@ int main(int ac, char **av) s->block_device_mappings_str = aa; // array ref BlockDeviceMappingImage ref } } else - if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -36928,7 +45895,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -36944,7 +45911,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "FileLocation")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "FileLocation")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FileLocation argument missing\n"); @@ -36955,7 +45922,7 @@ int main(int ac, char **av) s->file_location = aa; // string string } else - if ((aret = argcmp(next_a, "ImageName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ImageName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ImageName argument missing\n"); @@ -36966,7 +45933,7 @@ int main(int ac, char **av) s->image_name = aa; // string string } else - if ((aret = argcmp(next_a, "NoReboot")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NoReboot")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NoReboot argument missing\n"); @@ -36982,20 +45949,41 @@ int main(int ac, char **av) BAD_RET("NoReboot require true/false\n"); } } else - if ((aret = argcmp(next_a, "ProductCodes")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ProductCodes")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ProductCodes argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "ProductCodes argument missing\n"); - s->product_codes_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "ProductCodes argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "ProductCodes require an index\n"); + if (s->product_codes) { + for (; s->product_codes[last]; ++last); + } + if (pos < last) { + s->product_codes[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->product_codes, "", pa); + SET_NEXT(s->product_codes, (aa), pa); + } + } else { + TRY(!aa, "ProductCodes argument missing\n"); + s->product_codes_str = aa; + } } else if (!(aret = strcmp(str, "ProductCodes[]")) || aret == '=') { TRY(!aa, "ProductCodes[] argument missing\n"); SET_NEXT(s->product_codes, (aa), pa); } else - if ((aret = argcmp(next_a, "RootDeviceName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "RootDeviceName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "RootDeviceName argument missing\n"); @@ -37006,7 +45994,7 @@ int main(int ac, char **av) s->root_device_name = aa; // string string } else - if ((aret = argcmp(next_a, "SourceImageId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SourceImageId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SourceImageId argument missing\n"); @@ -37017,7 +46005,7 @@ int main(int ac, char **av) s->source_image_id = aa; // string string } else - if ((aret = argcmp(next_a, "SourceRegionName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SourceRegionName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SourceRegionName argument missing\n"); @@ -37028,7 +46016,7 @@ int main(int ac, char **av) s->source_region_name = aa; // string string } else - if ((aret = argcmp(next_a, "VmId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmId argument missing\n"); @@ -37118,7 +46106,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DeleteOnVmDeletion")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DeleteOnVmDeletion argument missing\n"); @@ -37134,7 +46122,7 @@ int main(int ac, char **av) BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -37150,7 +46138,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Generation")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Generation")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Generation argument missing\n"); @@ -37161,7 +46149,7 @@ int main(int ac, char **av) s->generation = aa; // string string } else - if ((aret = argcmp(next_a, "ModelName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ModelName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ModelName argument missing\n"); @@ -37172,7 +46160,7 @@ int main(int ac, char **av) s->model_name = aa; // string string } else - if ((aret = argcmp(next_a, "SubregionName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SubregionName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubregionName argument missing\n"); @@ -37262,7 +46250,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DirectLinkId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DirectLinkId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DirectLinkId argument missing\n"); @@ -37273,7 +46261,7 @@ int main(int ac, char **av) s->direct_link_id = aa; // string string } else - if ((aret = argcmp(next_a, "DirectLinkInterface")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DirectLinkInterface")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DirectLinkInterface argument missing\n"); @@ -37296,7 +46284,7 @@ int main(int ac, char **av) s->direct_link_interface_str = aa; } } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -37391,7 +46379,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "Bandwidth")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Bandwidth")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Bandwidth argument missing\n"); @@ -37402,7 +46390,7 @@ int main(int ac, char **av) s->bandwidth = aa; // string string } else - if ((aret = argcmp(next_a, "DirectLinkName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DirectLinkName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DirectLinkName argument missing\n"); @@ -37413,7 +46401,7 @@ int main(int ac, char **av) s->direct_link_name = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -37429,7 +46417,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Location")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Location")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Location argument missing\n"); @@ -37519,7 +46507,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DomainName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DomainName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DomainName argument missing\n"); @@ -37530,20 +46518,41 @@ int main(int ac, char **av) s->domain_name = aa; // string string } else - if ((aret = argcmp(next_a, "DomainNameServers")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DomainNameServers")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DomainNameServers argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "DomainNameServers argument missing\n"); - s->domain_name_servers_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "DomainNameServers argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "DomainNameServers require an index\n"); + if (s->domain_name_servers) { + for (; s->domain_name_servers[last]; ++last); + } + if (pos < last) { + s->domain_name_servers[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->domain_name_servers, "", pa); + SET_NEXT(s->domain_name_servers, (aa), pa); + } + } else { + TRY(!aa, "DomainNameServers argument missing\n"); + s->domain_name_servers_str = aa; + } } else if (!(aret = strcmp(str, "DomainNameServers[]")) || aret == '=') { TRY(!aa, "DomainNameServers[] argument missing\n"); SET_NEXT(s->domain_name_servers, (aa), pa); } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -37559,28 +46568,70 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "LogServers")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LogServers")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LogServers argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "LogServers argument missing\n"); - s->log_servers_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "LogServers argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "LogServers require an index\n"); + if (s->log_servers) { + for (; s->log_servers[last]; ++last); + } + if (pos < last) { + s->log_servers[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->log_servers, "", pa); + SET_NEXT(s->log_servers, (aa), pa); + } + } else { + TRY(!aa, "LogServers argument missing\n"); + s->log_servers_str = aa; + } } else if (!(aret = strcmp(str, "LogServers[]")) || aret == '=') { TRY(!aa, "LogServers[] argument missing\n"); SET_NEXT(s->log_servers, (aa), pa); } else - if ((aret = argcmp(next_a, "NtpServers")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NtpServers")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NtpServers argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "NtpServers argument missing\n"); - s->ntp_servers_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "NtpServers argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "NtpServers require an index\n"); + if (s->ntp_servers) { + for (; s->ntp_servers[last]; ++last); + } + if (pos < last) { + s->ntp_servers[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->ntp_servers, "", pa); + SET_NEXT(s->ntp_servers, (aa), pa); + } + } else { + TRY(!aa, "NtpServers argument missing\n"); + s->ntp_servers_str = aa; + } } else if (!(aret = strcmp(str, "NtpServers[]")) || aret == '=') { TRY(!aa, "NtpServers[] argument missing\n"); SET_NEXT(s->ntp_servers, (aa), pa); @@ -37664,7 +46715,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "CpuGeneration")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "CpuGeneration")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CpuGeneration argument missing\n"); @@ -37675,7 +46726,7 @@ int main(int ac, char **av) s->is_set_cpu_generation = 1; s->cpu_generation = atoi(aa); } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -37691,7 +46742,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Name")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Name")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Name argument missing\n"); @@ -37702,7 +46753,7 @@ int main(int ac, char **av) s->name = aa; // string string } else - if ((aret = argcmp(next_a, "SubregionName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "SubregionName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubregionName argument missing\n"); @@ -37792,7 +46843,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "BgpAsn")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "BgpAsn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BgpAsn argument missing\n"); @@ -37803,7 +46854,7 @@ int main(int ac, char **av) s->is_set_bgp_asn = 1; s->bgp_asn = atoi(aa); } else - if ((aret = argcmp(next_a, "ConnectionType")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ConnectionType")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ConnectionType argument missing\n"); @@ -37814,7 +46865,7 @@ int main(int ac, char **av) s->connection_type = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -37830,7 +46881,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "PublicIp")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PublicIp")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PublicIp argument missing\n"); @@ -37920,7 +46971,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "CaPem")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "CaPem")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CaPem argument missing\n"); @@ -37931,7 +46982,7 @@ int main(int ac, char **av) s->ca_pem = aa; // string string } else - if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -37942,7 +46993,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -38037,33 +47088,75 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "CaIds")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "CaIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CaIds argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "CaIds argument missing\n"); - s->ca_ids_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "CaIds argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "CaIds require an index\n"); + if (s->ca_ids) { + for (; s->ca_ids[last]; ++last); + } + if (pos < last) { + s->ca_ids[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->ca_ids, "", pa); + SET_NEXT(s->ca_ids, (aa), pa); + } + } else { + TRY(!aa, "CaIds argument missing\n"); + s->ca_ids_str = aa; + } } else if (!(aret = strcmp(str, "CaIds[]")) || aret == '=') { TRY(!aa, "CaIds[] argument missing\n"); SET_NEXT(s->ca_ids, (aa), pa); } else - if ((aret = argcmp(next_a, "Cns")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Cns")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Cns argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "Cns argument missing\n"); - s->cns_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "Cns argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "Cns require an index\n"); + if (s->cns) { + for (; s->cns[last]; ++last); + } + if (pos < last) { + s->cns[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->cns, "", pa); + SET_NEXT(s->cns, (aa), pa); + } + } else { + TRY(!aa, "Cns argument missing\n"); + s->cns_str = aa; + } } else if (!(aret = strcmp(str, "Cns[]")) || aret == '=') { TRY(!aa, "Cns[] argument missing\n"); SET_NEXT(s->cns, (aa), pa); } else - if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -38074,7 +47167,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -38090,15 +47183,36 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "IpRanges")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "IpRanges")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "IpRanges argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "IpRanges argument missing\n"); - s->ip_ranges_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "IpRanges argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "IpRanges require an index\n"); + if (s->ip_ranges) { + for (; s->ip_ranges[last]; ++last); + } + if (pos < last) { + s->ip_ranges[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->ip_ranges, "", pa); + SET_NEXT(s->ip_ranges, (aa), pa); + } + } else { + TRY(!aa, "IpRanges argument missing\n"); + s->ip_ranges_str = aa; + } } else if (!(aret = strcmp(str, "IpRanges[]")) || aret == '=') { TRY(!aa, "IpRanges[] argument missing\n"); SET_NEXT(s->ip_ranges, (aa), pa); @@ -38182,20 +47296,41 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "AdditionalEmails")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "AdditionalEmails")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "AdditionalEmails argument missing\n"); aa = eq_ptr + 1; incr = 1; } - TRY(!aa, "AdditionalEmails argument missing\n"); - s->additional_emails_str = aa; + if (aret == '.') { + int pos; + char *endptr; + int last = 0; + char *dot_pos = strchr(str, '.'); + + TRY(!(dot_pos++), "AdditionalEmails argument missing\n"); + pos = strtoul(dot_pos, &endptr, 0); + TRY(endptr == dot_pos, "AdditionalEmails require an index\n"); + if (s->additional_emails) { + for (; s->additional_emails[last]; ++last); + } + if (pos < last) { + s->additional_emails[pos] = (aa); + } else { + for (int i = last; i < pos; ++i) + SET_NEXT(s->additional_emails, "", pa); + SET_NEXT(s->additional_emails, (aa), pa); + } + } else { + TRY(!aa, "AdditionalEmails argument missing\n"); + s->additional_emails_str = aa; + } } else if (!(aret = strcmp(str, "AdditionalEmails[]")) || aret == '=') { TRY(!aa, "AdditionalEmails[] argument missing\n"); SET_NEXT(s->additional_emails, (aa), pa); } else - if ((aret = argcmp(next_a, "City")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "City")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "City argument missing\n"); @@ -38206,7 +47341,7 @@ int main(int ac, char **av) s->city = aa; // string string } else - if ((aret = argcmp(next_a, "CompanyName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "CompanyName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CompanyName argument missing\n"); @@ -38217,7 +47352,7 @@ int main(int ac, char **av) s->company_name = aa; // string string } else - if ((aret = argcmp(next_a, "Country")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Country")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Country argument missing\n"); @@ -38228,7 +47363,7 @@ int main(int ac, char **av) s->country = aa; // string string } else - if ((aret = argcmp(next_a, "CustomerId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "CustomerId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CustomerId argument missing\n"); @@ -38239,7 +47374,7 @@ int main(int ac, char **av) s->customer_id = aa; // string string } else - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -38255,7 +47390,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Email")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Email")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Email argument missing\n"); @@ -38266,7 +47401,7 @@ int main(int ac, char **av) s->email = aa; // string string } else - if ((aret = argcmp(next_a, "FirstName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "FirstName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FirstName argument missing\n"); @@ -38277,7 +47412,7 @@ int main(int ac, char **av) s->first_name = aa; // string string } else - if ((aret = argcmp(next_a, "JobTitle")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "JobTitle")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "JobTitle argument missing\n"); @@ -38288,7 +47423,7 @@ int main(int ac, char **av) s->job_title = aa; // string string } else - if ((aret = argcmp(next_a, "LastName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "LastName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LastName argument missing\n"); @@ -38299,7 +47434,7 @@ int main(int ac, char **av) s->last_name = aa; // string string } else - if ((aret = argcmp(next_a, "MobileNumber")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "MobileNumber")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "MobileNumber argument missing\n"); @@ -38310,7 +47445,7 @@ int main(int ac, char **av) s->mobile_number = aa; // string string } else - if ((aret = argcmp(next_a, "PhoneNumber")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "PhoneNumber")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PhoneNumber argument missing\n"); @@ -38321,7 +47456,7 @@ int main(int ac, char **av) s->phone_number = aa; // string string } else - if ((aret = argcmp(next_a, "StateProvince")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "StateProvince")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "StateProvince argument missing\n"); @@ -38332,7 +47467,7 @@ int main(int ac, char **av) s->state_province = aa; // string string } else - if ((aret = argcmp(next_a, "VatNumber")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "VatNumber")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VatNumber argument missing\n"); @@ -38343,7 +47478,7 @@ int main(int ac, char **av) s->vat_number = aa; // string string } else - if ((aret = argcmp(next_a, "ZipCode")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ZipCode")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ZipCode argument missing\n"); @@ -38433,7 +47568,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -38449,7 +47584,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "ExpirationDate")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "ExpirationDate")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ExpirationDate argument missing\n"); @@ -38460,7 +47595,7 @@ int main(int ac, char **av) s->expiration_date = aa; // string string } else - if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -38550,7 +47685,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -38566,7 +47701,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "Login")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Login")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Login argument missing\n"); @@ -38577,7 +47712,7 @@ int main(int ac, char **av) s->login = aa; // string string } else - if ((aret = argcmp(next_a, "Password")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "Password")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Password argument missing\n"); @@ -38667,7 +47802,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -38683,7 +47818,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -38694,7 +47829,7 @@ int main(int ac, char **av) s->user_group_name = aa; // string string } else - if ((aret = argcmp(next_a, "UserGroupPath")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserGroupPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupPath argument missing\n"); @@ -38705,7 +47840,7 @@ int main(int ac, char **av) s->user_group_path = aa; // string string } else - if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -38716,7 +47851,7 @@ int main(int ac, char **av) s->user_name = aa; // string string } else - if ((aret = argcmp(next_a, "UserPath")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "UserPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserPath argument missing\n"); @@ -38806,7 +47941,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -38822,7 +47957,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = argcmp(next_a, "NetPeeringId")) == 0 || aret == '=' ) { + if ((aret = strcmp(next_a, "NetPeeringId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetPeeringId argument missing\n"); diff --git a/osc-sdk-C b/osc-sdk-C index c92e2e6..c464c55 160000 --- a/osc-sdk-C +++ b/osc-sdk-C @@ -1 +1 @@ -Subproject commit c92e2e6846a318e47b8944e22732ee084f78e42a +Subproject commit c464c554958555c67a3bb6c7ca71af7272f2a131 diff --git a/osc_sdk.c b/osc_sdk.c index dc57730..cfc0930 100644 --- a/osc_sdk.c +++ b/osc_sdk.c @@ -750,4033 +750,3537 @@ static const char *calls_descriptions[] = { }; static const char *calls_args_descriptions[] = { - "ClientGatewayId: string\n" + "--ClientGatewayId: string\n" " The ID of the client gateway.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"VirtualGatewayId: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--VirtualGatewayId: string\n" " The ID of the virtual gateway.\n" -"VpnConnectionId: string\n" +"--VpnConnectionId: string\n" " The ID of the VPN connection you want to modify.\n" -"VpnOptions: ref VpnOptions\n" +"--VpnOptions: ref VpnOptions\n" " Information about the VPN options.\n" - " -Phase1Options: ref Phase1Options\n" + " --VpnOptions.Phase1Options: ref Phase1Options\n" " Information about Phase 1 of the Internet Key Exchange (IKE) \n" - " negotiation. When Phase 1 finishes successfully, peers proceed \n" - " to Phase 2 negotiations.\n" - " -DpdTimeoutAction: string\n" - " The action to carry out after a Dead Peer Detection (DPD) \n" - " timeout occurs.\n" - " -DpdTimeoutSeconds: int\n" - " The maximum waiting time for a Dead Peer Detection (DPD) \n" - " response before considering the peer as dead, in seconds.\n" - " -IkeVersions: array string\n" - " The Internet Key Exchange (IKE) versions allowed for the VPN \n" - " tunnel.\n" - " -Phase1DhGroupNumbers: array integer\n" - " The Diffie-Hellman (DH) group numbers allowed for the VPN \n" - " tunnel for phase 1.\n" - " -Phase1EncryptionAlgorithms: array string\n" - " The encryption algorithms allowed for the VPN tunnel for phase \n" - " 1.\n" - " -Phase1IntegrityAlgorithms: array string\n" - " The integrity algorithms allowed for the VPN tunnel for phase \n" - " 1.\n" - " -Phase1LifetimeSeconds: int\n" - " The lifetime for phase 1 of the IKE negotiation process, in \n" - " seconds.\n" - " -ReplayWindowSize: int\n" + " negotiation. When Phase 1 finishes successfully, peers proceed to Phase 2 \n" + " negotiations.\n" + " --VpnOptions.Phase1Options.DpdTimeoutAction: string\n" + " The action to carry out after a Dead Peer Detection (DPD) timeout \n" + " occurs.\n" + " --VpnOptions.Phase1Options.DpdTimeoutSeconds: int\n" + " The maximum waiting time for a Dead Peer Detection (DPD) response before \n" + " considering the peer as dead, in seconds.\n" + " --VpnOptions.Phase1Options.IkeVersions: array string\n" + " The Internet Key Exchange (IKE) versions allowed for the VPN tunnel.\n" + " --VpnOptions.Phase1Options.Phase1DhGroupNumbers: array integer\n" + " The Diffie-Hellman (DH) group numbers allowed for the VPN tunnel for \n" + " phase 1.\n" + " --VpnOptions.Phase1Options.Phase1EncryptionAlgorithms: array string\n" + " The encryption algorithms allowed for the VPN tunnel for phase 1.\n" + " --VpnOptions.Phase1Options.Phase1IntegrityAlgorithms: array string\n" + " The integrity algorithms allowed for the VPN tunnel for phase 1.\n" + " --VpnOptions.Phase1Options.Phase1LifetimeSeconds: int\n" + " The lifetime for phase 1 of the IKE negotiation process, in seconds.\n" + " --VpnOptions.Phase1Options.ReplayWindowSize: int\n" " The number of packets in an IKE replay window.\n" - " -StartupAction: string\n" - " The action to carry out when establishing tunnels for a VPN \n" - " connection.\n" - " -Phase2Options: ref Phase2Options\n" + " --VpnOptions.Phase1Options.StartupAction: string\n" + " The action to carry out when establishing tunnels for a VPN connection.\n" + " --VpnOptions.Phase2Options: ref Phase2Options\n" " Information about Phase 2 of the Internet Key Exchange (IKE) \n" " negotiation.\n" - " -Phase2DhGroupNumbers: array integer\n" - " The Diffie-Hellman (DH) group numbers allowed for the VPN \n" - " tunnel for phase 2.\n" - " -Phase2EncryptionAlgorithms: array string\n" - " The encryption algorithms allowed for the VPN tunnel for phase \n" - " 2.\n" - " -Phase2IntegrityAlgorithms: array string\n" - " The integrity algorithms allowed for the VPN tunnel for phase \n" - " 2.\n" - " -Phase2LifetimeSeconds: int\n" - " The lifetime for phase 2 of the Internet Key Exchange (IKE) \n" - " negociation process, in seconds.\n" - " -PreSharedKey: string\n" - " The pre-shared key to establish the initial authentication \n" - " between the client gateway and the virtual gateway. This key \n" - " can contain any character except line breaks and double quotes \n" - " (\").\n" - " -TunnelInsideIpRange: string\n" - " The range of inside IPs for the tunnel. This must be a /30 \n" - " CIDR block from the 169.254.254.0/24 range.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Iops: int\n" - " **Cold volume**: the new number of I/O operations per second (IOPS). \n" - " This parameter can be specified only if you update an `io1` volume or \n" - " if you change the type of the volume for an `io1`. This modification is \n" - " instantaneous. \n**Hot volume**: the new number of I/O operations per \n" - " second (IOPS). This parameter can be specified only if you update an \n" - " `io1` volume. This modification is not instantaneous. \nThe maximum \n" - " number of IOPS allowed for `io1` volumes is `13000` with a maximum \n" - " performance ratio of 300 IOPS per gibibyte.\n" -"Size: int\n" - " **Cold volume**: the new size of the volume, in gibibytes (GiB). This \n" - " value must be equal to or greater than the current size of the volume. \n" - " This modification is not instantaneous. \n**Hot volume**: you cannot \n" - " change the size of a hot volume.\n" -"VolumeId: string\n" + " --VpnOptions.Phase2Options.Phase2DhGroupNumbers: array integer\n" + " The Diffie-Hellman (DH) group numbers allowed for the VPN tunnel for \n" + " phase 2.\n" + " --VpnOptions.Phase2Options.Phase2EncryptionAlgorithms: array string\n" + " The encryption algorithms allowed for the VPN tunnel for phase 2.\n" + " --VpnOptions.Phase2Options.Phase2IntegrityAlgorithms: array string\n" + " The integrity algorithms allowed for the VPN tunnel for phase 2.\n" + " --VpnOptions.Phase2Options.Phase2LifetimeSeconds: int\n" + " The lifetime for phase 2 of the Internet Key Exchange (IKE) negociation \n" + " process, in seconds.\n" + " --VpnOptions.Phase2Options.PreSharedKey: string\n" + " The pre-shared key to establish the initial authentication between the \n" + " client gateway and the virtual gateway. This key can contain any \n" + " character except line breaks and double quotes (\").\n" + " --VpnOptions.TunnelInsideIpRange: string\n" + " The range of inside IPs for the tunnel. This must be a /30 CIDR block \n" + " from the 169.254.254.0/24 range.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Iops: int\n" + " **Cold volume**: the new number of I/O operations per second (IOPS). This parameter can be \n" + " specified only if you update an `io1` volume or if you change the type of the volume for an \n" + " `io1`. This modification is instantaneous. \n**Hot volume**: the new number of I/O \n" + " operations per second (IOPS). This parameter can be specified only if you update an `io1` \n" + " volume. This modification is not instantaneous. \nThe maximum number of IOPS allowed for \n" + " `io1` volumes is `13000` with a maximum performance ratio of 300 IOPS per gibibyte.\n" +"--Size: int\n" + " **Cold volume**: the new size of the volume, in gibibytes (GiB). This value must be equal \n" + " to or greater than the current size of the volume. This modification is not instantaneous. \n" + " \n**Hot volume**: you cannot change the size of a hot volume.\n" +"--VolumeId: string\n" " The ID of the volume you want to update.\n" -"VolumeType: string\n" - " **Cold volume**: the new type of the volume (`standard` \\| `io1` \\| \n" - " `gp2`). This modification is instantaneous. If you update to an `io1` \n" - " volume, you must also specify the `Iops` parameter.\n**Hot volume**: \n" - " you cannot change the type of a hot volume.\n" +"--VolumeType: string\n" + " **Cold volume**: the new type of the volume (`standard` \\| `io1` \\| `gp2`). This \n" + " modification is instantaneous. If you update to an `io1` volume, you must also specify the \n" + " `Iops` parameter.\n**Hot volume**: you cannot change the type of a hot volume.\n" , - "Description: string\n" + "--Description: string\n" " A new description for the VM template.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Tags: array ref ResourceTag\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Tags: array ref ResourceTag\n" " New tags for your VM template.\n" " Information about the tag.\n" - " -Key: string\n" + " --Tags.INDEX.Key: string\n" " The key of the tag, with a minimum of 1 character.\n" - " -Value: string\n" + " --Tags.INDEX.Value: string\n" " The value of the tag, between 0 and 255 characters.\n" -"VmTemplateId: string\n" +"--VmTemplateId: string\n" " The ID of the VM template you want to update.\n" -"VmTemplateName: string\n" +"--VmTemplateName: string\n" " A new name for your VM template.\n" , - "Description: string\n" + "--Description: string\n" " A new description for the VM group.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Tags: array ref ResourceTag\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Tags: array ref ResourceTag\n" " New tags for your VM group.\n" " Information about the tag.\n" - " -Key: string\n" + " --Tags.INDEX.Key: string\n" " The key of the tag, with a minimum of 1 character.\n" - " -Value: string\n" + " --Tags.INDEX.Value: string\n" " The value of the tag, between 0 and 255 characters.\n" -"VmGroupId: string\n" +"--VmGroupId: string\n" " The ID of the VM group you want to update.\n" -"VmGroupName: string\n" +"--VmGroupName: string\n" " A new name for your VM group.\n" -"VmTemplateId: string\n" +"--VmTemplateId: string\n" " A new VM template ID for your VM group.\n" , - "BlockDeviceMappings: array ref BlockDeviceMappingVmUpdate\n" + "--BlockDeviceMappings: array ref BlockDeviceMappingVmUpdate\n" " One or more block device mappings of the VM.\n" " Information about the block device mapping.\n" - " -Bsu: ref BsuToUpdateVm\n" + " --BlockDeviceMappings.INDEX.Bsu: ref BsuToUpdateVm\n" " Information about the BSU volume.\n" - " -DeleteOnVmDeletion: bool\n" - " If set to true, the volume is deleted when terminating the VM. \n" - " If set to false, the volume is not deleted when terminating the \n" - " VM.\n" - " -VolumeId: string\n" + " --BlockDeviceMappings.INDEX.Bsu.DeleteOnVmDeletion: bool\n" + " If set to true, the volume is deleted when terminating the VM. If set to \n" + " false, the volume is not deleted when terminating the VM.\n" + " --BlockDeviceMappings.INDEX.Bsu.VolumeId: string\n" " The ID of the volume.\n" - " -DeviceName: string\n" - " The device name for the volume. For a root device, you must \n" - " use `/dev/sda1`. For other volumes, you must use `/dev/sdX`, \n" - " `/dev/sdXX`, `/dev/xvdX`, or `/dev/xvdXX` (where the first `X` \n" - " is a letter between `b` and `z`, and the second `X` is a letter \n" - " between `a` and `z`).\n" - " -NoDevice: string\n" - " Removes the device which is included in the block device \n" - " mapping of the OMI.\n" - " -VirtualDeviceName: string\n" + " --BlockDeviceMappings.INDEX.DeviceName: string\n" + " The device name for the volume. For a root device, you must use \n" + " `/dev/sda1`. For other volumes, you must use `/dev/sdX`, `/dev/sdXX`, \n" + " `/dev/xvdX`, or `/dev/xvdXX` (where the first `X` is a letter between `b` \n" + " and `z`, and the second `X` is a letter between `a` and `z`).\n" + " --BlockDeviceMappings.INDEX.NoDevice: string\n" + " Removes the device which is included in the block device mapping of the \n" + " OMI.\n" + " --BlockDeviceMappings.INDEX.VirtualDeviceName: string\n" " The name of the virtual device (`ephemeralN`).\n" -"BsuOptimized: bool\n" - " This parameter is not available. It is present in our API for the sake \n" - " of historical compatibility with AWS.\n" -"DeletionProtection: bool\n" - " If true, you cannot delete the VM unless you change this parameter back \n" - " to false.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"IsSourceDestChecked: bool\n" - " (Net only) If true, the source/destination check is enabled. If false, \n" - " it is disabled. This value must be false for a NAT VM to perform \n" - " network address translation (NAT) in a Net.\n" -"KeypairName: string\n" - " The name of a keypair you want to associate with the VM.\nWhen you \n" - " replace the keypair of a VM with another one, the metadata of the VM is \n" - " modified to reflect the new public key, but the replacement is still \n" - " not effective in the operating system of the VM. To complete the \n" - " replacement and effectively apply the new keypair, you need to perform \n" - " other actions inside the VM. For more information, see [Modifying the \n" - " Keypair of a \n" - " VM](https://docs.outscale.com/en/userguide/Modifying-the-Keypair-of-a-VM\n" - " .html).\n" -"NestedVirtualization: bool\n" - " (dedicated tenancy only) If true, nested virtualization is enabled. If \n" - " false, it is disabled.\n" -"Performance: string\n" +"--BsuOptimized: bool\n" + " This parameter is not available. It is present in our API for the sake of historical \n" + " compatibility with AWS.\n" +"--DeletionProtection: bool\n" + " If true, you cannot delete the VM unless you change this parameter back to false.\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--IsSourceDestChecked: bool\n" + " (Net only) If true, the source/destination check is enabled. If false, it is disabled. This \n" + " value must be false for a NAT VM to perform network address translation (NAT) in a Net.\n" +"--KeypairName: string\n" + " The name of a keypair you want to associate with the VM.\nWhen you replace the keypair of a \n" + " VM with another one, the metadata of the VM is modified to reflect the new public key, but \n" + " the replacement is still not effective in the operating system of the VM. To complete the \n" + " replacement and effectively apply the new keypair, you need to perform other actions inside \n" + " the VM. For more information, see [Modifying the Keypair of a \n" + " VM](https://docs.outscale.com/en/userguide/Modifying-the-Keypair-of-a-VM.html).\n" +"--NestedVirtualization: bool\n" + " (dedicated tenancy only) If true, nested virtualization is enabled. If false, it is \n" + " disabled.\n" +"--Performance: string\n" " The performance of the VM (`medium` \\| `high` \\| `highest`).\n" -"SecurityGroupIds: array string\n" +"--SecurityGroupIds: array string\n" " One or more IDs of security groups for the VM.\n" -"UserData: string\n" +"--UserData: string\n" " The Base64-encoded MIME user data, limited to 500 kibibytes (KiB).\n" -"VmId: string\n" +"--VmId: string\n" " The ID of the VM.\n" -"VmInitiatedShutdownBehavior: string\n" - " The VM behavior when you stop it. If set to `stop`, the VM stops. If \n" - " set to `restart`, the VM stops then automatically restarts. If set to \n" - " `terminate`, the VM stops and is terminated.\n" -"VmType: string\n" +"--VmInitiatedShutdownBehavior: string\n" + " The VM behavior when you stop it. If set to `stop`, the VM stops. If set to `restart`, the \n" + " VM stops then automatically restarts. If set to `terminate`, the VM stops and is terminated.\n" +"--VmType: string\n" " The type of VM. For more information, see [VM \n" " Types](https://docs.outscale.com/en/userguide/VM-Types.html).\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"NewPath: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--NewPath: string\n" " A new path for the group. If not specified, it is set to a slash (`/`).\n" -"NewUserGroupName: string\n" +"--NewUserGroupName: string\n" " A new name for the user group.\n" -"Path: string\n" +"--Path: string\n" " The path to the group. If not specified, it is set to a slash (`/`).\n" -"UserGroupName: string\n" +"--UserGroupName: string\n" " The name of the group you want to update.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"NewPath: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--NewPath: string\n" " A new path for the EIM user.\n" -"NewUserName: string\n" +"--NewUserName: string\n" " A new name for the EIM user.\n" -"UserName: string\n" +"--UserName: string\n" " The name of the EIM user you want to modify.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"MapPublicIpOnLaunch: bool\n" - " If true, a public IP is assigned to the network interface cards (NICs) \n" - " created in the specified Subnet.\n" -"SubnetId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--MapPublicIpOnLaunch: bool\n" + " If true, a public IP is assigned to the network interface cards (NICs) created in the \n" + " specified Subnet.\n" +"--SubnetId: string\n" " The ID of the Subnet.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"PermissionsToCreateVolume: ref PermissionsOnResourceCreation\n" - " Information about the permissions for the resource.
\nSpecify either the `Additions` or the `Removals` parameter.\n" - " -Additions: ref PermissionsOnResource\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--PermissionsToCreateVolume: ref PermissionsOnResourceCreation\n" + " Information about the permissions for the resource.\nSpecify \n" + " either the `Additions` or the `Removals` parameter.\n" + " --PermissionsToCreateVolume.Additions: ref PermissionsOnResource\n" " Permissions for the resource.\n" - " -AccountIds: array string\n" - " One or more account IDs that the permission is associated \n" - " with.\n" - " -GlobalPermission: bool\n" - " A global permission for all accounts.\n(Request) Set \n" - " this parameter to true to make the resource public (if the \n" - " parent parameter is `Additions`) or to make the resource \n" - " private (if the parent parameter is `Removals`).
\n(Response) If true, the resource is public. If false, the \n" - " resource is private.\n" - " -Removals: ref PermissionsOnResource\n" + " --PermissionsToCreateVolume.Additions.AccountIds: array string\n" + " One or more account IDs that the permission is associated with.\n" + " --PermissionsToCreateVolume.Additions.GlobalPermission: bool\n" + " A global permission for all accounts.\n(Request) Set this \n" + " parameter to true to make the resource public (if the parent parameter is \n" + " `Additions`) or to make the resource private (if the parent parameter is \n" + " `Removals`).\n(Response) If true, the resource is public. If false, \n" + " the resource is private.\n" + " --PermissionsToCreateVolume.Removals: ref PermissionsOnResource\n" " Permissions for the resource.\n" - " -AccountIds: array string\n" - " One or more account IDs that the permission is associated \n" - " with.\n" - " -GlobalPermission: bool\n" - " A global permission for all accounts.\n(Request) Set \n" - " this parameter to true to make the resource public (if the \n" - " parent parameter is `Additions`) or to make the resource \n" - " private (if the parent parameter is `Removals`).
\n(Response) If true, the resource is public. If false, the \n" - " resource is private.\n" -"SnapshotId: string\n" + " --PermissionsToCreateVolume.Removals.AccountIds: array string\n" + " One or more account IDs that the permission is associated with.\n" + " --PermissionsToCreateVolume.Removals.GlobalPermission: bool\n" + " A global permission for all accounts.\n(Request) Set this \n" + " parameter to true to make the resource public (if the parent parameter is \n" + " `Additions`) or to make the resource private (if the parent parameter is \n" + " `Removals`).\n(Response) If true, the resource is public. If false, \n" + " the resource is private.\n" +"--SnapshotId: string\n" " The ID of the snapshot.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Name: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Name: string\n" " The name of the server certificate you want to modify.\n" -"NewName: string\n" +"--NewName: string\n" " A new name for the server certificate.\n" -"NewPath: string\n" +"--NewPath: string\n" " A new path for the server certificate.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"LinkRouteTableId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--LinkRouteTableId: string\n" " The ID of the current route table link.\n" -"RouteTableId: string\n" +"--RouteTableId: string\n" " The ID of the new route table to associate with the Subnet.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Enable: bool\n" - " If true, a virtual gateway can propagate routes to a specified route \n" - " table of a Net. If false, the propagation is disabled.\n" -"RouteTableId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Enable: bool\n" + " If true, a virtual gateway can propagate routes to a specified route table of a Net. If \n" + " false, the propagation is disabled.\n" +"--RouteTableId: string\n" " The ID of the route table.\n" -"VirtualGatewayId: string\n" +"--VirtualGatewayId: string\n" " The ID of the virtual gateway.\n" , - "DestinationIpRange: string\n" - " The IP range used for the destination match, in CIDR notation (for \n" - " example, `10.0.0.0/24`).\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"GatewayId: string\n" + "--DestinationIpRange: string\n" + " The IP range used for the destination match, in CIDR notation (for example, `10.0.0.0/24`).\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--GatewayId: string\n" " The ID of an Internet service or virtual gateway attached to your Net.\n" -"NatServiceId: string\n" +"--NatServiceId: string\n" " The ID of a NAT service.\n" -"NetPeeringId: string\n" +"--NetPeeringId: string\n" " The ID of a Net peering.\n" -"NicId: string\n" +"--NicId: string\n" " The ID of a network interface card (NIC).\n" -"RouteTableId: string\n" +"--RouteTableId: string\n" " The ID of the route table.\n" -"VmId: string\n" +"--VmId: string\n" " The ID of a NAT VM in your Net.\n" , - "Description: string\n" + "--Description: string\n" " A new description for the NIC.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"LinkNic: ref LinkNicToUpdate\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--LinkNic: ref LinkNicToUpdate\n" " Information about the NIC attachment. If you are modifying the \n" - " `DeleteOnVmDeletion` attribute, you must specify the ID of the \n" - " NIC attachment.\n" - " -DeleteOnVmDeletion: bool\n" - " If true, the NIC is deleted when the VM is terminated. If \n" - " false, the NIC is detached from the VM.\n" - " -LinkNicId: string\n" + " `DeleteOnVmDeletion` attribute, you must specify the ID of the NIC \n" + " attachment.\n" + " --LinkNic.DeleteOnVmDeletion: bool\n" + " If true, the NIC is deleted when the VM is terminated. If false, the NIC \n" + " is detached from the VM.\n" + " --LinkNic.LinkNicId: string\n" " The ID of the NIC attachment.\n" -"NicId: string\n" +"--NicId: string\n" " The ID of the NIC you want to modify.\n" -"SecurityGroupIds: array string\n" - " One or more IDs of security groups for the NIC.\nYou must specify at \n" - " least one group, even if you use the default security group in the Net.\n" -, - "AddRouteTableIds: array string\n" - " One or more IDs of route tables to associate with the specified Net \n" - " access point.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"NetAccessPointId: string\n" +"--SecurityGroupIds: array string\n" + " One or more IDs of security groups for the NIC.\nYou must specify at least one group, even \n" + " if you use the default security group in the Net.\n" +, + "--AddRouteTableIds: array string\n" + " One or more IDs of route tables to associate with the specified Net access point.\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--NetAccessPointId: string\n" " The ID of the Net access point.\n" -"RemoveRouteTableIds: array string\n" - " One or more IDs of route tables to disassociate from the specified Net \n" - " access point.\n" -, - "DhcpOptionsSetId: string\n" - " The ID of the DHCP options set (or `default` if you want to associate \n" - " the default one).\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"NetId: string\n" +"--RemoveRouteTableIds: array string\n" + " One or more IDs of route tables to disassociate from the specified Net access point.\n" +, + "--DhcpOptionsSetId: string\n" + " The ID of the DHCP options set (or `default` if you want to associate the default one).\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--NetId: string\n" " The ID of the Net.\n" , - "AccessLog: ref AccessLog\n" + "--AccessLog: ref AccessLog\n" " Information about access logs.\n" - " -IsEnabled: bool\n" - " If true, access logs are enabled for your load balancer. If \n" - " false, they are not. If you set this to true in your request, \n" - " the `OsuBucketName` parameter is required.\n" - " -OsuBucketName: string\n" + " --AccessLog.IsEnabled: bool\n" + " If true, access logs are enabled for your load balancer. If false, they \n" + " are not. If you set this to true in your request, the `OsuBucketName` \n" + " parameter is required.\n" + " --AccessLog.OsuBucketName: string\n" " The name of the OOS bucket for the access logs.\n" - " -OsuBucketPrefix: string\n" - " The path to the folder of the access logs in your OOS bucket \n" - " (by default, the `root` level of your bucket).\n" - " -PublicationInterval: int\n" - " The time interval for the publication of access logs in the \n" - " OOS bucket, in minutes. This value can be either `5` or `60` \n" - " (by default, `60`).\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"HealthCheck: ref HealthCheck\n" + " --AccessLog.OsuBucketPrefix: string\n" + " The path to the folder of the access logs in your OOS bucket (by \n" + " default, the `root` level of your bucket).\n" + " --AccessLog.PublicationInterval: int\n" + " The time interval for the publication of access logs in the OOS bucket, \n" + " in minutes. This value can be either `5` or `60` (by default, `60`).\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--HealthCheck: ref HealthCheck\n" " Information about the health check configuration.\n" - " -CheckInterval: int\n" - " The number of seconds between two requests (between `5` and \n" - " `600` both included).\n" - " -HealthyThreshold: int\n" - " The number of consecutive successful requests before \n" - " considering the VM as healthy (between `2` and `10` both \n" + " --HealthCheck.CheckInterval: int\n" + " The number of seconds between two requests (between `5` and `600` both \n" " included).\n" - " -Path: string\n" + " --HealthCheck.HealthyThreshold: int\n" + " The number of consecutive successful requests before considering the VM \n" + " as healthy (between `2` and `10` both included).\n" + " --HealthCheck.Path: string\n" " If you use the HTTP or HTTPS protocols, the request URL path.\n" - " -Port: int\n" + " --HealthCheck.Port: int\n" " The port number (between `1` and `65535`, both included).\n" - " -Protocol: string\n" - " The protocol for the URL of the VM (`HTTP` \\| `HTTPS` \\| \n" - " `TCP` \\| `SSL`).\n" - " -Timeout: int\n" - " The maximum waiting time for a response before considering the \n" - " VM as unhealthy, in seconds (between `2` and `60` both \n" - " included).\n" - " -UnhealthyThreshold: int\n" - " The number of consecutive failed requests before considering \n" - " the VM as unhealthy (between `2` and `10` both included).\n" -"LoadBalancerName: string\n" + " --HealthCheck.Protocol: string\n" + " The protocol for the URL of the VM (`HTTP` \\| `HTTPS` \\| `TCP` \\| \n" + " `SSL`).\n" + " --HealthCheck.Timeout: int\n" + " The maximum waiting time for a response before considering the VM as \n" + " unhealthy, in seconds (between `2` and `60` both included).\n" + " --HealthCheck.UnhealthyThreshold: int\n" + " The number of consecutive failed requests before considering the VM as \n" + " unhealthy (between `2` and `10` both included).\n" +"--LoadBalancerName: string\n" " The name of the load balancer.\n" -"LoadBalancerPort: int\n" - " The port on which the load balancer is listening (between `1` and \n" - " `65535`, both included). This parameter is required if you want to \n" - " update the server certificate.\n" -"PolicyNames: array string\n" +"--LoadBalancerPort: int\n" + " The port on which the load balancer is listening (between `1` and `65535`, both included). \n" + " This parameter is required if you want to update the server certificate.\n" +"--PolicyNames: array string\n" " The name of the policy you want to enable for the listener.\n" -"PublicIp: string\n" - " (internet-facing only) The public IP you want to associate with the \n" - " load balancer. The former public IP of the load balancer is then \n" - " disassociated. If you specify an empty string and the former public IP \n" - " belonged to you, it is disassociated and replaced by a public IP owned \n" - " by 3DS OUTSCALE.\n" -"SecuredCookies: bool\n" +"--PublicIp: string\n" + " (internet-facing only) The public IP you want to associate with the load balancer. The \n" + " former public IP of the load balancer is then disassociated. If you specify an empty string \n" + " and the former public IP belonged to you, it is disassociated and replaced by a public IP \n" + " owned by 3DS OUTSCALE.\n" +"--SecuredCookies: bool\n" " If true, secure cookies are enabled for the load balancer.\n" -"SecurityGroups: array string\n" - " (Net only) One or more IDs of security groups you want to assign to the \n" - " load balancer. You need to specify the already assigned security groups \n" - " that you want to keep along with the new ones you are assigning. If the \n" - " list is empty, the default security group of the Net is assigned to the \n" - " load balancer.\n" -"ServerCertificateId: string\n" - " The OUTSCALE Resource Name (ORN) of the server certificate. For more \n" - " information, see [Resource Identifiers > OUTSCALE Resource Names \n" - " (ORNs)](https://docs.outscale.com/en/userguide/Resource-Identifiers.html\n" - " #_outscale_resource_names_orns). If this parameter is specified, you \n" - " must also specify the `LoadBalancerPort` parameter.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"HostPattern: string\n" - " A host-name pattern for the rule, with a maximum length of 128 \n" - " characters. This host-name pattern supports maximum three wildcards, \n" - " and must not contain any special characters except [-.?].\n" -"ListenerRuleName: string\n" +"--SecurityGroups: array string\n" + " (Net only) One or more IDs of security groups you want to assign to the load balancer. You \n" + " need to specify the already assigned security groups that you want to keep along with the \n" + " new ones you are assigning. If the list is empty, the default security group of the Net is \n" + " assigned to the load balancer.\n" +"--ServerCertificateId: string\n" + " The OUTSCALE Resource Name (ORN) of the server certificate. For more information, see \n" + " [Resource Identifiers > OUTSCALE Resource Names \n" + " (ORNs)](https://docs.outscale.com/en/userguide/Resource-Identifiers.html#_outscale_resource_\n" + " names_orns). If this parameter is specified, you must also specify the `LoadBalancerPort` \n" + " parameter.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--HostPattern: string\n" + " A host-name pattern for the rule, with a maximum length of 128 characters. This host-name \n" + " pattern supports maximum three wildcards, and must not contain any special characters \n" + " except [-.?].\n" +"--ListenerRuleName: string\n" " The name of the listener rule.\n" -"PathPattern: string\n" - " A path pattern for the rule, with a maximum length of 128 characters. \n" - " This path pattern supports maximum three wildcards, and must not \n" - " contain any special characters except [_-.$/~\"'@:+?].\n" +"--PathPattern: string\n" + " A path pattern for the rule, with a maximum length of 128 characters. This path pattern \n" + " supports maximum three wildcards, and must not contain any special characters except \n" + " [_-.$/~\"'@:+?].\n" , - "Description: string\n" + "--Description: string\n" " A new description for the image.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"ImageId: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--ImageId: string\n" " The ID of the OMI you want to modify.\n" -"PermissionsToLaunch: ref PermissionsOnResourceCreation\n" - " Information about the permissions for the resource.
\nSpecify either the `Additions` or the `Removals` parameter.\n" - " -Additions: ref PermissionsOnResource\n" +"--PermissionsToLaunch: ref PermissionsOnResourceCreation\n" + " Information about the permissions for the resource.\nSpecify \n" + " either the `Additions` or the `Removals` parameter.\n" + " --PermissionsToLaunch.Additions: ref PermissionsOnResource\n" " Permissions for the resource.\n" - " -AccountIds: array string\n" - " One or more account IDs that the permission is associated \n" - " with.\n" - " -GlobalPermission: bool\n" - " A global permission for all accounts.\n(Request) Set \n" - " this parameter to true to make the resource public (if the \n" - " parent parameter is `Additions`) or to make the resource \n" - " private (if the parent parameter is `Removals`).
\n(Response) If true, the resource is public. If false, the \n" - " resource is private.\n" - " -Removals: ref PermissionsOnResource\n" + " --PermissionsToLaunch.Additions.AccountIds: array string\n" + " One or more account IDs that the permission is associated with.\n" + " --PermissionsToLaunch.Additions.GlobalPermission: bool\n" + " A global permission for all accounts.\n(Request) Set this \n" + " parameter to true to make the resource public (if the parent parameter is \n" + " `Additions`) or to make the resource private (if the parent parameter is \n" + " `Removals`).\n(Response) If true, the resource is public. If false, \n" + " the resource is private.\n" + " --PermissionsToLaunch.Removals: ref PermissionsOnResource\n" " Permissions for the resource.\n" - " -AccountIds: array string\n" - " One or more account IDs that the permission is associated \n" - " with.\n" - " -GlobalPermission: bool\n" - " A global permission for all accounts.\n(Request) Set \n" - " this parameter to true to make the resource public (if the \n" - " parent parameter is `Additions`) or to make the resource \n" - " private (if the parent parameter is `Removals`).
\n(Response) If true, the resource is public. If false, the \n" - " resource is private.\n" -, - "DeleteOnVmDeletion: bool\n" + " --PermissionsToLaunch.Removals.AccountIds: array string\n" + " One or more account IDs that the permission is associated with.\n" + " --PermissionsToLaunch.Removals.GlobalPermission: bool\n" + " A global permission for all accounts.\n(Request) Set this \n" + " parameter to true to make the resource public (if the parent parameter is \n" + " `Additions`) or to make the resource private (if the parent parameter is \n" + " `Removals`).\n(Response) If true, the resource is public. If false, \n" + " the resource is private.\n" +, + "--DeleteOnVmDeletion: bool\n" " If true, the fGPU is deleted when the VM is terminated.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"FlexibleGpuId: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--FlexibleGpuId: string\n" " The ID of the fGPU you want to modify.\n" , - "DirectLinkInterfaceId: string\n" + "--DirectLinkInterfaceId: string\n" " The ID of the DirectLink interface you want to update.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Mtu: int\n" - " The maximum transmission unit (MTU) of the DirectLink interface, in \n" - " bytes (always `1500`).\n" -, - "DedicatedGroupId: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Mtu: int\n" + " The maximum transmission unit (MTU) of the DirectLink interface, in bytes (always `1500`).\n" +, + "--DedicatedGroupId: string\n" " The ID of the dedicated group you want to update.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Name: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Name: string\n" " The new name of the dedicated group.\n" , - "CaId: string\n" + "--CaId: string\n" " The ID of the CA.\n" -"Description: string\n" +"--Description: string\n" " The description of the CA.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" , - "ApiAccessRuleId: string\n" + "--ApiAccessRuleId: string\n" " The ID of the API access rule you want to update.\n" -"CaIds: array string\n" +"--CaIds: array string\n" " One or more IDs of Client Certificate Authorities (CAs).\n" -"Cns: array string\n" +"--Cns: array string\n" " One or more Client Certificate Common Names (CNs).\n" -"Description: string\n" +"--Description: string\n" " A new description for the API access rule.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"IpRanges: array string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--IpRanges: array string\n" " One or more IPs or CIDR blocks (for example, `192.0.2.0/16`).\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"MaxAccessKeyExpirationSeconds: int\n" - " The maximum possible lifetime for your access keys, in seconds (between \n" - " `0` and `3153600000`, both included). If set to `O`, your access keys \n" - " can have unlimited lifetimes, but a trusted session cannot be \n" - " activated. Otherwise, all your access keys must have an expiration \n" - " date. This value must be greater than the remaining lifetime of each \n" - " access key of your account.\n" -"RequireTrustedEnv: bool\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--MaxAccessKeyExpirationSeconds: int\n" + " The maximum possible lifetime for your access keys, in seconds (between `0` and \n" + " `3153600000`, both included). If set to `O`, your access keys can have unlimited lifetimes, \n" + " but a trusted session cannot be activated. Otherwise, all your access keys must have an \n" + " expiration date. This value must be greater than the remaining lifetime of each access key \n" + " of your account.\n" +"--RequireTrustedEnv: bool\n" " If true, a trusted session is activated, provided that you specify the \n" - " `MaxAccessKeyExpirationSeconds` parameter with a value greater than \n" - " `0`.\nEnabling this will require you and all your users to log in to \n" - " Cockpit v2 using the WebAuthn method for multi-factor authentication. \n" - " For more information, see [About Authentication > Multi-Factor \n" - " Authentication](https://docs.outscale.com/en/userguide/About-Authenticat\n" - " ion.html#_multi_factor_authentication).\n" -, - "AdditionalEmails: array string\n" - " One or more additional email addresses for the account. These addresses \n" - " are used for notifications only. If you already have a list of \n" - " additional emails registered, you cannot add to it, only replace it. To \n" - " remove all registered additional emails, specify an empty list.\n" -"City: string\n" + " `MaxAccessKeyExpirationSeconds` parameter with a value greater than `0`.\nEnabling this \n" + " will require you and all your users to log in to Cockpit v2 using the WebAuthn method for \n" + " multi-factor authentication. For more information, see [About Authentication > Multi-Factor \n" + " Authentication](https://docs.outscale.com/en/userguide/About-Authentication.html#_multi_fact\n" + " or_authentication).\n" +, + "--AdditionalEmails: array string\n" + " One or more additional email addresses for the account. These addresses are used for \n" + " notifications only. If you already have a list of additional emails registered, you cannot \n" + " add to it, only replace it. To remove all registered additional emails, specify an empty \n" + " list.\n" +"--City: string\n" " The new city of the account owner.\n" -"CompanyName: string\n" +"--CompanyName: string\n" " The new name of the company for the account.\n" -"Country: string\n" +"--Country: string\n" " The new country of the account owner.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Email: string\n" - " The main email address for the account. This address is used for your \n" - " credentials and notifications.\n" -"FirstName: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Email: string\n" + " The main email address for the account. This address is used for your credentials and \n" + " notifications.\n" +"--FirstName: string\n" " The new first name of the account owner.\n" -"JobTitle: string\n" +"--JobTitle: string\n" " The new job title of the account owner.\n" -"LastName: string\n" +"--LastName: string\n" " The new last name of the account owner.\n" -"MobileNumber: string\n" +"--MobileNumber: string\n" " The new mobile phone number of the account owner.\n" -"PhoneNumber: string\n" +"--PhoneNumber: string\n" " The new landline phone number of the account owner.\n" -"StateProvince: string\n" +"--StateProvince: string\n" " The new state/province of the account owner.\n" -"VatNumber: string\n" +"--VatNumber: string\n" " The new value added tax (VAT) number for the account.\n" -"ZipCode: string\n" +"--ZipCode: string\n" " The new ZIP code of the city.\n" , - "AccessKeyId: string\n" + "--AccessKeyId: string\n" " The ID of the access key.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"ExpirationDate: string\n" - " The date and time, or the date, at which you want the access key to \n" - " expire, in ISO 8601 format (for example, `2020-06-14T00:00:00.000Z` or \n" - " `2020-06-14`). If not specified, the access key is set to not expire.\n" -"State: string\n" - " The new state for the access key (`ACTIVE` \\| `INACTIVE`). When set to \n" - " `ACTIVE`, the access key is enabled and can be used to send requests. \n" - " When set to `INACTIVE`, the access key is disabled.\n" -"UserName: string\n" - " The name of the EIM user that the access key you want to modify is \n" - " associated with. If you do not specify a user name, this action \n" - " modifies the access key of the user who sends the request (which can be \n" - " the root account).\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"ForceUnlink: bool\n" - " Forces the detachment of the volume in case of previous failure. \n" - " Important: This action may damage your data or file systems.\n" -"VolumeId: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--ExpirationDate: string\n" + " The date and time, or the date, at which you want the access key to expire, in ISO 8601 \n" + " format (for example, `2020-06-14T00:00:00.000Z` or `2020-06-14`). If not specified, the \n" + " access key is set to not expire.\n" +"--State: string\n" + " The new state for the access key (`ACTIVE` \\| `INACTIVE`). When set to `ACTIVE`, the \n" + " access key is enabled and can be used to send requests. When set to `INACTIVE`, the access \n" + " key is disabled.\n" +"--UserName: string\n" + " The name of the EIM user that the access key you want to modify is associated with. If you \n" + " do not specify a user name, this action modifies the access key of the user who sends the \n" + " request (which can be the root account).\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--ForceUnlink: bool\n" + " Forces the detachment of the volume in case of previous failure. Important: This action may \n" + " damage your data or file systems.\n" +"--VolumeId: string\n" " The ID of the volume you want to detach.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"NetId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--NetId: string\n" " The ID of the Net from which you want to detach the virtual gateway.\n" -"VirtualGatewayId: string\n" +"--VirtualGatewayId: string\n" " The ID of the virtual gateway.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"LinkRouteTableId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--LinkRouteTableId: string\n" " The ID of the association between the route table and the Subnet.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"LinkPublicIpId: string\n" - " The ID representing the association of the public IP with the VM or the \n" - " NIC. This parameter is required unless you use the `PublicIp` parameter.\n" -"PublicIp: string\n" - " The public IP. This parameter is required unless you use the \n" - " `LinkPublicIpId` parameter.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"NicId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--LinkPublicIpId: string\n" + " The ID representing the association of the public IP with the VM or the NIC. This parameter \n" + " is required unless you use the `PublicIp` parameter.\n" +"--PublicIp: string\n" + " The public IP. This parameter is required unless you use the `LinkPublicIpId` parameter.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--NicId: string\n" " The ID of the NIC.\n" -"PrivateIps: array string\n" +"--PrivateIps: array string\n" " One or more secondary private IPs you want to unassign from the NIC.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"PolicyOrn: string\n" - " The OUTSCALE Resource Name (ORN) of the policy. For more information, \n" - " see [Resource \n" - " Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifiers\n" - " .html).\n" -"UserName: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--PolicyOrn: string\n" + " The OUTSCALE Resource Name (ORN) of the policy. For more information, see [Resource \n" + " Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifiers.html).\n" +"--UserName: string\n" " The name of the user you want to detach the policy from.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"LinkNicId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--LinkNicId: string\n" " The ID of the attachment operation.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"PolicyOrn: string\n" - " The OUTSCALE Resource Name (ORN) of the policy. For more information, \n" - " see [Resource \n" - " Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifiers\n" - " .html).\n" -"UserGroupName: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--PolicyOrn: string\n" + " The OUTSCALE Resource Name (ORN) of the policy. For more information, see [Resource \n" + " Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifiers.html).\n" +"--UserGroupName: string\n" " The name of the group you want to unlink the policy from.\n" , - "BackendIps: array string\n" + "--BackendIps: array string\n" " One or more public IPs of backend VMs.\n" -"BackendVmIds: array string\n" +"--BackendVmIds: array string\n" " One or more IDs of backend VMs.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"LoadBalancerName: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--LoadBalancerName: string\n" " The name of the load balancer.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"InternetServiceId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--InternetServiceId: string\n" " The ID of the Internet service you want to detach.\n" -"NetId: string\n" +"--NetId: string\n" " The ID of the Net from which you want to detach the Internet service.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"FlexibleGpuId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--FlexibleGpuId: string\n" " The ID of the fGPU you want to detach from your VM.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"ForceStop: bool\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--ForceStop: bool\n" " Forces the VM to stop.\n" -"VmIds: array string\n" +"--VmIds: array string\n" " One or more IDs of VMs.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"VmIds: array string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--VmIds: array string\n" " One or more IDs of VMs.\n" , - "PolicyOrn: string\n" - " The OUTSCALE Resource Name (ORN) of the policy. For more information, \n" - " see [Resource \n" - " Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifiers\n" - " .html).\n" -"VersionId: string\n" + "--PolicyOrn: string\n" + " The OUTSCALE Resource Name (ORN) of the policy. For more information, see [Resource \n" + " Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifiers.html).\n" +"--VersionId: string\n" " The ID of the version.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"VmAddition: int\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--VmAddition: int\n" " The number of VMs you want to add to the VM group.\n" -"VmGroupId: string\n" +"--VmGroupId: string\n" " The ID of the VM group you want to scale up.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"VmGroupId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--VmGroupId: string\n" " The ID of the VM group you want to scale down.\n" -"VmSubtraction: int\n" +"--VmSubtraction: int\n" " The number of VMs you want to delete from the VM group.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"UserGroupName: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--UserGroupName: string\n" " The name of the group you want to remove the user from.\n" -"UserGroupPath: string\n" +"--UserGroupPath: string\n" " The path to the group. If not specified, it is set to a slash (`/`).\n" -"UserName: string\n" +"--UserName: string\n" " The name of the user you want to remove from the group.\n" -"UserPath: string\n" +"--UserPath: string\n" " The path to the user (by default, `/`).\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"NetPeeringId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--NetPeeringId: string\n" " The ID of the Net peering you want to reject.\n" , - "BackendVmIds: array string\n" - " One or more IDs of backend VMs.\nSpecifying the same ID several times \n" - " has no effect as each backend VM has equal weight.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"LoadBalancerName: string\n" + "--BackendVmIds: array string\n" + " One or more IDs of backend VMs.\nSpecifying the same ID several times has no effect as each \n" + " backend VM has equal weight.\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--LoadBalancerName: string\n" " The name of the load balancer.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"VmIds: array string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--VmIds: array string\n" " One or more IDs of the VMs you want to reboot.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersVpnConnection\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersVpnConnection\n" " One or more filters.\n" - " -BgpAsns: array integer\n" - " The Border Gateway Protocol (BGP) Autonomous System Numbers \n" - " (ASNs) of the connections.\n" - " -ClientGatewayIds: array string\n" + " --Filters.BgpAsns: array integer\n" + " The Border Gateway Protocol (BGP) Autonomous System Numbers (ASNs) of \n" + " the connections.\n" + " --Filters.ClientGatewayIds: array string\n" " The IDs of the client gateways.\n" - " -ConnectionTypes: array string\n" - " The types of the VPN connections (only `ipsec.1` is \n" - " supported).\n" - " -RouteDestinationIpRanges: array string\n" + " --Filters.ConnectionTypes: array string\n" + " The types of the VPN connections (only `ipsec.1` is supported).\n" + " --Filters.RouteDestinationIpRanges: array string\n" " The destination IP ranges.\n" - " -States: array string\n" - " The states of the VPN connections (`pending` \\| `available` \n" - " \\| `deleting` \\| `deleted`).\n" - " -StaticRoutesOnly: bool\n" - " If false, the VPN connection uses dynamic routing with Border \n" - " Gateway Protocol (BGP). If true, routing is controlled using \n" - " static routes. For more information about how to create and \n" - " delete static routes, see \n" + " --Filters.States: array string\n" + " The states of the VPN connections (`pending` \\| `available` \\| \n" + " `deleting` \\| `deleted`).\n" + " --Filters.StaticRoutesOnly: bool\n" + " If false, the VPN connection uses dynamic routing with Border Gateway \n" + " Protocol (BGP). If true, routing is controlled using static routes. For \n" + " more information about how to create and delete static routes, see \n" " [CreateVpnConnectionRoute](#createvpnconnectionroute) and \n" " [DeleteVpnConnectionRoute](#deletevpnconnectionroute).\n" - " -TagKeys: array string\n" + " --Filters.TagKeys: array string\n" " The keys of the tags associated with the VPN connections.\n" - " -TagValues: array string\n" + " --Filters.TagValues: array string\n" " The values of the tags associated with the VPN connections.\n" - " -Tags: array string\n" + " --Filters.Tags: array string\n" " The key/value combination of the tags associated with the VPN \n" " connections, in the following format: \n" - " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE&quo\n" - " t;]}.\n" - " -VirtualGatewayIds: array string\n" + " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE\"]}.\n" + " --Filters.VirtualGatewayIds: array string\n" " The IDs of the virtual gateways.\n" - " -VpnConnectionIds: array string\n" + " --Filters.VpnConnectionIds: array string\n" " The IDs of the VPN connections.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersVolume\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersVolume\n" " One or more filters.\n" - " -CreationDates: array string\n" - " The dates and times of creation of the volumes, in ISO 8601 \n" - " date-time format (for example, `2020-06-30T00:00:00.000Z`).\n" - " -LinkVolumeDeleteOnVmDeletion: bool\n" - " Whether the volumes are deleted or not when terminating the \n" - " VMs.\n" - " -LinkVolumeDeviceNames: array string\n" + " --Filters.CreationDates: array string\n" + " The dates and times of creation of the volumes, in ISO 8601 date-time \n" + " format (for example, `2020-06-30T00:00:00.000Z`).\n" + " --Filters.LinkVolumeDeleteOnVmDeletion: bool\n" + " Whether the volumes are deleted or not when terminating the VMs.\n" + " --Filters.LinkVolumeDeviceNames: array string\n" " The VM device names.\n" - " -LinkVolumeLinkDates: array string\n" - " The dates and times of creation of the volumes, in ISO 8601 \n" - " date-time format (for example, `2020-06-30T00:00:00.000Z`).\n" - " -LinkVolumeLinkStates: array string\n" - " The attachment states of the volumes (`attaching` \\| \n" - " `detaching` \\| `attached` \\| `detached`).\n" - " -LinkVolumeVmIds: array string\n" + " --Filters.LinkVolumeLinkDates: array string\n" + " The dates and times of creation of the volumes, in ISO 8601 date-time \n" + " format (for example, `2020-06-30T00:00:00.000Z`).\n" + " --Filters.LinkVolumeLinkStates: array string\n" + " The attachment states of the volumes (`attaching` \\| `detaching` \\| \n" + " `attached` \\| `detached`).\n" + " --Filters.LinkVolumeVmIds: array string\n" " One or more IDs of VMs.\n" - " -SnapshotIds: array string\n" + " --Filters.SnapshotIds: array string\n" " The snapshots from which the volumes were created.\n" - " -SubregionNames: array string\n" + " --Filters.SubregionNames: array string\n" " The names of the Subregions in which the volumes were created.\n" - " -TagKeys: array string\n" + " --Filters.TagKeys: array string\n" " The keys of the tags associated with the volumes.\n" - " -TagValues: array string\n" + " --Filters.TagValues: array string\n" " The values of the tags associated with the volumes.\n" - " -Tags: array string\n" - " The key/value combination of the tags associated with the \n" - " volumes, in the following format: \n" - " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE&quo\n" - " t;]}.\n" - " -VolumeIds: array string\n" + " --Filters.Tags: array string\n" + " The key/value combination of the tags associated with the volumes, in \n" + " the following format: \n" + " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE\"]}.\n" + " --Filters.VolumeIds: array string\n" " The IDs of the volumes.\n" - " -VolumeSizes: array integer\n" + " --Filters.VolumeSizes: array integer\n" " The sizes of the volumes, in gibibytes (GiB).\n" - " -VolumeStates: array string\n" - " The states of the volumes (`creating` \\| `available` \\| \n" - " `in-use` \\| `updating` \\| `deleting` \\| `error`).\n" - " -VolumeTypes: array string\n" + " --Filters.VolumeStates: array string\n" + " The states of the volumes (`creating` \\| `available` \\| `in-use` \\| \n" + " `updating` \\| `deleting` \\| `error`).\n" + " --Filters.VolumeTypes: array string\n" " The types of the volumes (`standard` \\| `gp2` \\| `io1`).\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "AllVms: bool\n" - " If true, includes the status of all VMs. By default or if set to false, \n" - " only includes the status of running VMs.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersVmsState\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--AllVms: bool\n" + " If true, includes the status of all VMs. By default or if set to false, only includes the \n" + " status of running VMs.\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersVmsState\n" " One or more filters.\n" - " -MaintenanceEventCodes: array string\n" + " --Filters.MaintenanceEventCodes: array string\n" " The code for the scheduled event (`system-reboot` \\| \n" " `system-maintenance`).\n" - " -MaintenanceEventDescriptions: array string\n" + " --Filters.MaintenanceEventDescriptions: array string\n" " The description of the scheduled event.\n" - " -MaintenanceEventsNotAfter: array string\n" + " --Filters.MaintenanceEventsNotAfter: array string\n" " The latest date and time (UTC) the event can end.\n" - " -MaintenanceEventsNotBefore: array string\n" + " --Filters.MaintenanceEventsNotBefore: array string\n" " The earliest date and time (UTC) the event can start.\n" - " -SubregionNames: array string\n" + " --Filters.SubregionNames: array string\n" " The names of the Subregions of the VMs.\n" - " -VmIds: array string\n" + " --Filters.VmIds: array string\n" " One or more IDs of VMs.\n" - " -VmStates: array string\n" - " The states of the VMs (`pending` \\| `running` \\| `stopping` \n" - " \\| `stopped` \\| `shutting-down` \\| `terminated` \\| \n" - " `quarantine`).\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "BackendVmIds: array string\n" + " --Filters.VmStates: array string\n" + " The states of the VMs (`pending` \\| `running` \\| `stopping` \\| \n" + " `stopped` \\| `shutting-down` \\| `terminated` \\| `quarantine`).\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--BackendVmIds: array string\n" " One or more IDs of backend VMs.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"LoadBalancerName: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--LoadBalancerName: string\n" " The name of the load balancer.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersVm\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersVm\n" " One or more filters.\n" - " -Architectures: array string\n" + " --Filters.Architectures: array string\n" " The architectures of the VMs (`i386` \\| `x86_64`).\n" - " -BlockDeviceMappingDeleteOnVmDeletion: bool\n" + " --Filters.BlockDeviceMappingDeleteOnVmDeletion: bool\n" " Whether the BSU volumes are deleted when terminating the VMs.\n" - " -BlockDeviceMappingDeviceNames: array string\n" - " The device names for the BSU volumes (in the format \n" - " `/dev/sdX`, `/dev/sdXX`, `/dev/xvdX`, or `/dev/xvdXX`).\n" - " -BlockDeviceMappingLinkDates: array string\n" - " The link dates for the BSU volumes mapped to the VMs (for \n" - " example, `2016-01-23T18:45:30.000Z`).\n" - " -BlockDeviceMappingStates: array string\n" + " --Filters.BlockDeviceMappingDeviceNames: array string\n" + " The device names for the BSU volumes (in the format `/dev/sdX`, \n" + " `/dev/sdXX`, `/dev/xvdX`, or `/dev/xvdXX`).\n" + " --Filters.BlockDeviceMappingLinkDates: array string\n" + " The link dates for the BSU volumes mapped to the VMs (for example, \n" + " `2016-01-23T18:45:30.000Z`).\n" + " --Filters.BlockDeviceMappingStates: array string\n" " The states for the BSU volumes (`attaching` \\| `attached` \\| \n" " `detaching` \\| `detached`).\n" - " -BlockDeviceMappingVolumeIds: array string\n" + " --Filters.BlockDeviceMappingVolumeIds: array string\n" " The volume IDs of the BSU volumes.\n" - " -ClientTokens: array string\n" + " --Filters.ClientTokens: array string\n" " The idempotency tokens provided when launching the VMs.\n" - " -CreationDates: array string\n" + " --Filters.CreationDates: array string\n" " The dates when the VMs were launched.\n" - " -ImageIds: array string\n" + " --Filters.ImageIds: array string\n" " The IDs of the OMIs used to launch the VMs.\n" - " -IsSourceDestChecked: bool\n" - " Whether the source/destination checking is enabled (true) or \n" - " disabled (false).\n" - " -KeypairNames: array string\n" + " --Filters.IsSourceDestChecked: bool\n" + " Whether the source/destination checking is enabled (true) or disabled \n" + " (false).\n" + " --Filters.KeypairNames: array string\n" " The names of the keypairs used when launching the VMs.\n" - " -LaunchNumbers: array integer\n" - " The numbers for the VMs when launching a group of several VMs \n" - " (for example, `0`, `1`, `2`, and so on).\n" - " -Lifecycles: array string\n" + " --Filters.LaunchNumbers: array integer\n" + " The numbers for the VMs when launching a group of several VMs (for \n" + " example, `0`, `1`, `2`, and so on).\n" + " --Filters.Lifecycles: array string\n" " Whether the VMs are Spot Instances (spot).\n" - " -NetIds: array string\n" + " --Filters.NetIds: array string\n" " The IDs of the Nets in which the VMs are running.\n" - " -NicAccountIds: array string\n" + " --Filters.NicAccountIds: array string\n" " The IDs of the NICs.\n" - " -NicDescriptions: array string\n" + " --Filters.NicDescriptions: array string\n" " The descriptions of the NICs.\n" - " -NicIsSourceDestChecked: bool\n" - " Whether the source/destination checking is enabled (true) or \n" - " disabled (false).\n" - " -NicLinkNicDeleteOnVmDeletion: bool\n" - " Whether the NICs are deleted when the VMs they are attached to \n" - " are deleted.\n" - " -NicLinkNicDeviceNumbers: array integer\n" + " --Filters.NicIsSourceDestChecked: bool\n" + " Whether the source/destination checking is enabled (true) or disabled \n" + " (false).\n" + " --Filters.NicLinkNicDeleteOnVmDeletion: bool\n" + " Whether the NICs are deleted when the VMs they are attached to are \n" + " deleted.\n" + " --Filters.NicLinkNicDeviceNumbers: array integer\n" " The device numbers the NICs are attached to.\n" - " -NicLinkNicLinkNicDates: array string\n" - " The dates and times (UTC) when the NICs were attached to the \n" - " VMs.\n" - " -NicLinkNicLinkNicIds: array string\n" + " --Filters.NicLinkNicLinkNicDates: array string\n" + " The dates and times (UTC) when the NICs were attached to the VMs.\n" + " --Filters.NicLinkNicLinkNicIds: array string\n" " The IDs of the NIC attachments.\n" - " -NicLinkNicStates: array string\n" + " --Filters.NicLinkNicStates: array string\n" " The states of the attachments.\n" - " -NicLinkNicVmAccountIds: array string\n" - " The account IDs of the owners of the VMs the NICs are attached \n" - " to.\n" - " -NicLinkNicVmIds: array string\n" + " --Filters.NicLinkNicVmAccountIds: array string\n" + " The account IDs of the owners of the VMs the NICs are attached to.\n" + " --Filters.NicLinkNicVmIds: array string\n" " The IDs of the VMs the NICs are attached to.\n" - " -NicLinkPublicIpAccountIds: array string\n" - " The account IDs of the owners of the public IPs associated \n" - " with the NICs.\n" - " -NicLinkPublicIpLinkPublicIpIds: array string\n" - " The association IDs returned when the public IPs were \n" - " associated with the NICs.\n" - " -NicLinkPublicIpPublicIpIds: array string\n" - " The allocation IDs returned when the public IPs were allocated \n" - " to their accounts.\n" - " -NicLinkPublicIpPublicIps: array string\n" + " --Filters.NicLinkPublicIpAccountIds: array string\n" + " The account IDs of the owners of the public IPs associated with the \n" + " NICs.\n" + " --Filters.NicLinkPublicIpLinkPublicIpIds: array string\n" + " The association IDs returned when the public IPs were associated with \n" + " the NICs.\n" + " --Filters.NicLinkPublicIpPublicIpIds: array string\n" + " The allocation IDs returned when the public IPs were allocated to their \n" + " accounts.\n" + " --Filters.NicLinkPublicIpPublicIps: array string\n" " The public IPs associated with the NICs.\n" - " -NicMacAddresses: array string\n" + " --Filters.NicMacAddresses: array string\n" " The Media Access Control (MAC) addresses of the NICs.\n" - " -NicNetIds: array string\n" + " --Filters.NicNetIds: array string\n" " The IDs of the Nets where the NICs are located.\n" - " -NicNicIds: array string\n" + " --Filters.NicNicIds: array string\n" " The IDs of the NICs.\n" - " -NicPrivateIpsLinkPublicIpAccountIds: array string\n" - " The account IDs of the owner of the public IPs associated with \n" - " the private IPs.\n" - " -NicPrivateIpsLinkPublicIpIds: array string\n" + " --Filters.NicPrivateIpsLinkPublicIpAccountIds: array string\n" + " The account IDs of the owner of the public IPs associated with the \n" + " private IPs.\n" + " --Filters.NicPrivateIpsLinkPublicIpIds: array string\n" " The public IPs associated with the private IPs.\n" - " -NicPrivateIpsPrimaryIp: bool\n" - " Whether the private IPs are the primary IPs associated with \n" - " the NICs.\n" - " -NicPrivateIpsPrivateIps: array string\n" + " --Filters.NicPrivateIpsPrimaryIp: bool\n" + " Whether the private IPs are the primary IPs associated with the NICs.\n" + " --Filters.NicPrivateIpsPrivateIps: array string\n" " The private IPs of the NICs.\n" - " -NicSecurityGroupIds: array string\n" + " --Filters.NicSecurityGroupIds: array string\n" " The IDs of the security groups associated with the NICs.\n" - " -NicSecurityGroupNames: array string\n" + " --Filters.NicSecurityGroupNames: array string\n" " The names of the security groups associated with the NICs.\n" - " -NicStates: array string\n" + " --Filters.NicStates: array string\n" " The states of the NICs (`available` \\| `in-use`).\n" - " -NicSubnetIds: array string\n" + " --Filters.NicSubnetIds: array string\n" " The IDs of the Subnets for the NICs.\n" - " -NicSubregionNames: array string\n" + " --Filters.NicSubregionNames: array string\n" " The Subregions where the NICs are located.\n" - " -Platforms: array string\n" - " The platforms. Use windows if you have Windows VMs. Otherwise, \n" - " leave this filter blank.\n" - " -PrivateIps: array string\n" + " --Filters.Platforms: array string\n" + " The platforms. Use windows if you have Windows VMs. Otherwise, leave \n" + " this filter blank.\n" + " --Filters.PrivateIps: array string\n" " The private IPs of the VMs.\n" - " -ProductCodes: array string\n" - " The product codes associated with the OMI used to create the \n" - " VMs.\n" - " -PublicIps: array string\n" + " --Filters.ProductCodes: array string\n" + " The product codes associated with the OMI used to create the VMs.\n" + " --Filters.PublicIps: array string\n" " The public IPs of the VMs.\n" - " -ReservationIds: array string\n" - " The IDs of the reservation of the VMs, created every time you \n" - " launch VMs. These reservation IDs can be associated with \n" - " several VMs when you lauch a group of VMs using the same launch \n" - " request.\n" - " -RootDeviceNames: array string\n" - " The names of the root devices for the VMs (for example, \n" - " `/dev/sda1`)\n" - " -RootDeviceTypes: array string\n" + " --Filters.ReservationIds: array string\n" + " The IDs of the reservation of the VMs, created every time you launch \n" + " VMs. These reservation IDs can be associated with several VMs when you \n" + " lauch a group of VMs using the same launch request.\n" + " --Filters.RootDeviceNames: array string\n" + " The names of the root devices for the VMs (for example, `/dev/sda1`)\n" + " --Filters.RootDeviceTypes: array string\n" " The root devices types used by the VMs (always `ebs`)\n" - " -SecurityGroupIds: array string\n" - " The IDs of the security groups for the VMs (only in the public \n" - " Cloud).\n" - " -SecurityGroupNames: array string\n" - " The names of the security groups for the VMs (only in the \n" - " public Cloud).\n" - " -StateReasonCodes: array integer\n" + " --Filters.SecurityGroupIds: array string\n" + " The IDs of the security groups for the VMs (only in the public Cloud).\n" + " --Filters.SecurityGroupNames: array string\n" + " The names of the security groups for the VMs (only in the public Cloud).\n" + " --Filters.StateReasonCodes: array integer\n" " The reason codes for the state changes.\n" - " -StateReasonMessages: array string\n" + " --Filters.StateReasonMessages: array string\n" " The messages describing the state changes.\n" - " -StateReasons: array string\n" - " The reasons explaining the current states of the VMs. This \n" - " filter is like the `StateReasonCodes` one.\n" - " -SubnetIds: array string\n" + " --Filters.StateReasons: array string\n" + " The reasons explaining the current states of the VMs. This filter is \n" + " like the `StateReasonCodes` one.\n" + " --Filters.SubnetIds: array string\n" " The IDs of the Subnets for the VMs.\n" - " -SubregionNames: array string\n" + " --Filters.SubregionNames: array string\n" " The names of the Subregions of the VMs.\n" - " -TagKeys: array string\n" + " --Filters.TagKeys: array string\n" " The keys of the tags associated with the VMs.\n" - " -TagValues: array string\n" + " --Filters.TagValues: array string\n" " The values of the tags associated with the VMs.\n" - " -Tags: array string\n" - " The key/value combination of the tags associated with the VMs, \n" - " in the following format: \n" - " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE&quo\n" - " t;]}.\n" - " -Tenancies: array string\n" - " The tenancies of the VMs (`dedicated` \\| `default` \\| \n" - " `host`).\n" - " -VmIds: array string\n" + " --Filters.Tags: array string\n" + " The key/value combination of the tags associated with the VMs, in the \n" + " following format: \n" + " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE\"]}.\n" + " --Filters.Tenancies: array string\n" + " The tenancies of the VMs (`dedicated` \\| `default` \\| `host`).\n" + " --Filters.VmIds: array string\n" " One or more IDs of VMs.\n" - " -VmSecurityGroupIds: array string\n" + " --Filters.VmSecurityGroupIds: array string\n" " The IDs of the security groups for the VMs.\n" - " -VmSecurityGroupNames: array string\n" + " --Filters.VmSecurityGroupNames: array string\n" " The names of the security group for the VMs.\n" - " -VmStateCodes: array integer\n" - " The state codes of the VMs: `-1` (quarantine), `0` (pending), \n" - " `16` (running), `32` (shutting-down), `48` (terminated), `64` \n" - " (stopping), and `80` (stopped).\n" - " -VmStateNames: array string\n" - " The state names of the VMs (`pending` \\| `running` \\| \n" - " `stopping` \\| `stopped` \\| `shutting-down` \\| `terminated` \n" - " \\| `quarantine`).\n" - " -VmTypes: array string\n" - " The VM types (for example, t2.micro). For more information, \n" - " see [VM \n" + " --Filters.VmStateCodes: array integer\n" + " The state codes of the VMs: `-1` (quarantine), `0` (pending), `16` \n" + " (running), `32` (shutting-down), `48` (terminated), `64` (stopping), and \n" + " `80` (stopped).\n" + " --Filters.VmStateNames: array string\n" + " The state names of the VMs (`pending` \\| `running` \\| `stopping` \\| \n" + " `stopped` \\| `shutting-down` \\| `terminated` \\| `quarantine`).\n" + " --Filters.VmTypes: array string\n" + " The VM types (for example, t2.micro). For more information, see [VM \n" " Types](https://docs.outscale.com/en/userguide/VM-Types.html).\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersVmType\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersVmType\n" " One or more filters.\n" - " -BsuOptimized: bool\n" - " This parameter is not available. It is present in our API for \n" - " the sake of historical compatibility with AWS.\n" - " -EphemeralsTypes: array string\n" + " --Filters.BsuOptimized: bool\n" + " This parameter is not available. It is present in our API for the sake \n" + " of historical compatibility with AWS.\n" + " --Filters.EphemeralsTypes: array string\n" " The types of ephemeral storage disk.\n" - " -Eths: array integer\n" + " --Filters.Eths: array integer\n" " The number of Ethernet interfaces available.\n" - " -Gpus: array integer\n" + " --Filters.Gpus: array integer\n" " The number of GPUs available.\n" - " -MemorySizes: array double\n" + " --Filters.MemorySizes: array double\n" " The amounts of memory, in gibibytes (GiB).\n" - " -VcoreCounts: array integer\n" + " --Filters.VcoreCounts: array integer\n" " The numbers of vCores.\n" - " -VmTypeNames: array string\n" + " --Filters.VmTypeNames: array string\n" " The names of the VM types. For more information, see [VM \n" " Types](https://docs.outscale.com/en/userguide/VM-Types.html).\n" - " -VolumeCounts: array integer\n" + " --Filters.VolumeCounts: array integer\n" " The maximum number of ephemeral storage disks.\n" - " -VolumeSizes: array integer\n" + " --Filters.VolumeSizes: array integer\n" " The size of one ephemeral storage disk, in gibibytes (GiB).\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersVmTemplate\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersVmTemplate\n" " null\n" - " -CpuCores: array integer\n" + " --Filters.CpuCores: array integer\n" " The number of vCores.\n" - " -CpuGenerations: array string\n" + " --Filters.CpuGenerations: array string\n" " The processor generations (for example, `v4`).\n" - " -CpuPerformances: array string\n" + " --Filters.CpuPerformances: array string\n" " The performances of the VMs.\n" - " -Descriptions: array string\n" + " --Filters.Descriptions: array string\n" " The descriptions of the VM templates.\n" - " -ImageIds: array string\n" + " --Filters.ImageIds: array string\n" " The IDs of the OMIs.\n" - " -KeypairNames: array string\n" + " --Filters.KeypairNames: array string\n" " The names of the keypairs.\n" - " -Rams: array integer\n" + " --Filters.Rams: array integer\n" " The amount of RAM.\n" - " -TagKeys: array string\n" + " --Filters.TagKeys: array string\n" " The keys of the tags associated with the VM templates.\n" - " -TagValues: array string\n" + " --Filters.TagValues: array string\n" " The values of the tags associated with the VM templates.\n" - " -Tags: array string\n" - " The key/value combination of the tags associated with the VM \n" - " templates, in the following format: \n" - " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE&quo\n" - " t;]}.\n" - " -VmTemplateIds: array string\n" + " --Filters.Tags: array string\n" + " The key/value combination of the tags associated with the VM templates, \n" + " in the following format: \n" + " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE\"]}.\n" + " --Filters.VmTemplateIds: array string\n" " The IDs of the VM templates.\n" - " -VmTemplateNames: array string\n" + " --Filters.VmTemplateNames: array string\n" " The names of the VM templates.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersVmGroup\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersVmGroup\n" " One or more filters.\n" - " -Descriptions: array string\n" + " --Filters.Descriptions: array string\n" " The descriptions of the VM groups.\n" - " -SecurityGroupIds: array string\n" + " --Filters.SecurityGroupIds: array string\n" " The IDs of the security groups.\n" - " -SubnetIds: array string\n" + " --Filters.SubnetIds: array string\n" " The IDs of the Subnets.\n" - " -TagKeys: array string\n" + " --Filters.TagKeys: array string\n" " The keys of the tags associated with the VM groups.\n" - " -TagValues: array string\n" + " --Filters.TagValues: array string\n" " The values of the tags associated with the VM groups.\n" - " -Tags: array string\n" - " The key/value combination of the tags associated with the VMs, \n" - " in the following format: \n" - " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE&quo\n" - " t;]}.\n" - " -VmCounts: array integer\n" + " --Filters.Tags: array string\n" + " The key/value combination of the tags associated with the VMs, in the \n" + " following format: \n" + " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE\"]}.\n" + " --Filters.VmCounts: array integer\n" " The number of VMs in the VM group.\n" - " -VmGroupIds: array string\n" + " --Filters.VmGroupIds: array string\n" " The IDs of the VM groups.\n" - " -VmGroupNames: array string\n" + " --Filters.VmGroupNames: array string\n" " The names of the VM groups.\n" - " -VmTemplateIds: array string\n" + " --Filters.VmTemplateIds: array string\n" " The IDs of the VM templates.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersVirtualGateway\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersVirtualGateway\n" " One or more filters.\n" - " -ConnectionTypes: array string\n" - " The types of the virtual gateways (only `ipsec.1` is \n" - " supported).\n" - " -LinkNetIds: array string\n" + " --Filters.ConnectionTypes: array string\n" + " The types of the virtual gateways (only `ipsec.1` is supported).\n" + " --Filters.LinkNetIds: array string\n" " The IDs of the Nets the virtual gateways are attached to.\n" - " -LinkStates: array string\n" - " The current states of the attachments between the virtual \n" - " gateways and the Nets (`attaching` \\| `attached` \\| \n" - " `detaching` \\| `detached`).\n" - " -States: array string\n" - " The states of the virtual gateways (`pending` \\| `available` \n" - " \\| `deleting` \\| `deleted`).\n" - " -TagKeys: array string\n" + " --Filters.LinkStates: array string\n" + " The current states of the attachments between the virtual gateways and \n" + " the Nets (`attaching` \\| `attached` \\| `detaching` \\| `detached`).\n" + " --Filters.States: array string\n" + " The states of the virtual gateways (`pending` \\| `available` \\| \n" + " `deleting` \\| `deleted`).\n" + " --Filters.TagKeys: array string\n" " The keys of the tags associated with the virtual gateways.\n" - " -TagValues: array string\n" + " --Filters.TagValues: array string\n" " The values of the tags associated with the virtual gateways.\n" - " -Tags: array string\n" - " The key/value combination of the tags associated with the \n" - " virtual gateways, in the following format: \n" - " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE&quo\n" - " t;]}.\n" - " -VirtualGatewayIds: array string\n" + " --Filters.Tags: array string\n" + " The key/value combination of the tags associated with the virtual \n" + " gateways, in the following format: \n" + " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE\"]}.\n" + " --Filters.VirtualGatewayIds: array string\n" " The IDs of the virtual gateways.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"UserName: string\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--UserName: string\n" " The name of the user.\n" -"UserPath: string\n" +"--UserPath: string\n" " The path to the user (by default, `/`).\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersUserGroup\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersUserGroup\n" " One or more filters.\n" - " -PathPrefix: string\n" - " The path prefix of the groups. If not specified, it is set to \n" - " a slash (`/`).\n" - " -UserGroupIds: array string\n" + " --Filters.PathPrefix: string\n" + " The path prefix of the groups. If not specified, it is set to a slash \n" + " (`/`).\n" + " --Filters.UserGroupIds: array string\n" " The IDs of the user groups.\n" -"FirstItem: int\n" +"--FirstItem: int\n" " The item starting the list of groups requested.\n" -"ResultsPerPage: int\n" - " The maximum number of items that can be returned in a single response \n" - " (by default, `100`).\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"PolicyName: string\n" +"--ResultsPerPage: int\n" + " The maximum number of items that can be returned in a single response (by default, `100`).\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--PolicyName: string\n" " The name of the policy.\n" -"UserGroupName: string\n" +"--UserGroupName: string\n" " The name of the group.\n" -"UserGroupPath: string\n" +"--UserGroupPath: string\n" " The path to the group. If not specified, it is set to a slash (`/`).\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"FirstItem: int\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--FirstItem: int\n" " The item starting the list of policies requested.\n" -"ResultsPerPage: int\n" - " The maximum number of items that can be returned in a single response \n" - " (by default, `100`).\n" -"UserGroupName: string\n" +"--ResultsPerPage: int\n" + " The maximum number of items that can be returned in a single response (by default, `100`).\n" +"--UserGroupName: string\n" " The name of the group.\n" -"UserGroupPath: string\n" +"--UserGroupPath: string\n" " The path to the group. If not specified, it is set to a slash (`/`).\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Path: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Path: string\n" " The path to the group. If not specified, it is set to a slash (`/`).\n" -"UserGroupName: string\n" +"--UserGroupName: string\n" " The name of the group.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersTag\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersTag\n" " One or more filters.\n" - " -Keys: array string\n" - " The keys of the tags that are assigned to the resources. You \n" - " can use this filter alongside the `Values` filter. In that \n" - " case, you filter the resources corresponding to each tag, \n" - " regardless of the other filter.\n" - " -ResourceIds: array string\n" + " --Filters.Keys: array string\n" + " The keys of the tags that are assigned to the resources. You can use \n" + " this filter alongside the `Values` filter. In that case, you filter the \n" + " resources corresponding to each tag, regardless of the other filter.\n" + " --Filters.ResourceIds: array string\n" " The IDs of the resources with which the tags are associated.\n" - " -ResourceTypes: array string\n" - " The resource type (`vm` \\| `image` \\| `volume` \\| \n" - " `snapshot` \\| `public-ip` \\| `security-group` \\| \n" - " `route-table` \\| `nic` \\| `net` \\| `subnet` \\| \n" - " `net-peering` \\| `net-access-point` \\| `nat-service` \\| \n" - " `internet-service` \\| `client-gateway` \\| `virtual-gateway` \n" - " \\| `vpn-connection` \\| `dhcp-options` \\| `task`).\n" - " -Values: array string\n" - " The values of the tags that are assigned to the resources. You \n" - " can use this filter alongside the `TagKeys` filter. In that \n" - " case, you filter the resources corresponding to each tag, \n" - " regardless of the other filter.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersSubregion\n" + " --Filters.ResourceTypes: array string\n" + " The resource type (`vm` \\| `image` \\| `volume` \\| `snapshot` \\| \n" + " `public-ip` \\| `security-group` \\| `route-table` \\| `nic` \\| `net` \n" + " \\| `subnet` \\| `net-peering` \\| `net-access-point` \\| `nat-service` \n" + " \\| `internet-service` \\| `client-gateway` \\| `virtual-gateway` \\| \n" + " `vpn-connection` \\| `dhcp-options` \\| `task`).\n" + " --Filters.Values: array string\n" + " The values of the tags that are assigned to the resources. You can use \n" + " this filter alongside the `TagKeys` filter. In that case, you filter the \n" + " resources corresponding to each tag, regardless of the other filter.\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersSubregion\n" " One or more filters.\n" - " -RegionNames: array string\n" + " --Filters.RegionNames: array string\n" " The names of the Regions containing the Subregions.\n" - " -States: array string\n" + " --Filters.States: array string\n" " The states of the Subregions.\n" - " -SubregionNames: array string\n" + " --Filters.SubregionNames: array string\n" " The names of the Subregions.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersSubnet\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersSubnet\n" " One or more filters.\n" - " -AvailableIpsCounts: array integer\n" + " --Filters.AvailableIpsCounts: array integer\n" " The number of available IPs.\n" - " -IpRanges: array string\n" + " --Filters.IpRanges: array string\n" " The IP ranges in the Subnets, in CIDR notation (for example, \n" " `10.0.0.0/16`).\n" - " -NetIds: array string\n" + " --Filters.NetIds: array string\n" " The IDs of the Nets in which the Subnets are.\n" - " -States: array string\n" - " The states of the Subnets (`pending` \\| `available` \\| \n" - " `deleted`).\n" - " -SubnetIds: array string\n" + " --Filters.States: array string\n" + " The states of the Subnets (`pending` \\| `available` \\| `deleted`).\n" + " --Filters.SubnetIds: array string\n" " The IDs of the Subnets.\n" - " -SubregionNames: array string\n" + " --Filters.SubregionNames: array string\n" " The names of the Subregions in which the Subnets are located.\n" - " -TagKeys: array string\n" + " --Filters.TagKeys: array string\n" " The keys of the tags associated with the Subnets.\n" - " -TagValues: array string\n" + " --Filters.TagValues: array string\n" " The values of the tags associated with the Subnets.\n" - " -Tags: array string\n" - " The key/value combination of the tags associated with the \n" - " Subnets, in the following format: \n" - " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE&quo\n" - " t;]}.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersSnapshot\n" + " --Filters.Tags: array string\n" + " The key/value combination of the tags associated with the Subnets, in \n" + " the following format: \n" + " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE\"]}.\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersSnapshot\n" " One or more filters.\n" - " -AccountAliases: array string\n" + " --Filters.AccountAliases: array string\n" " The account aliases of the owners of the snapshots.\n" - " -AccountIds: array string\n" + " --Filters.AccountIds: array string\n" " The account IDs of the owners of the snapshots.\n" - " -Descriptions: array string\n" + " --Filters.Descriptions: array string\n" " The descriptions of the snapshots.\n" - " -FromCreationDate: string\n" - " The beginning of the time period, in ISO 8601 date-time format \n" - " (for example, `2020-06-14T00:00:00.000Z`).\n" - " -PermissionsToCreateVolumeAccountIds: array string\n" + " --Filters.FromCreationDate: string\n" + " The beginning of the time period, in ISO 8601 date-time format (for \n" + " example, `2020-06-14T00:00:00.000Z`).\n" + " --Filters.PermissionsToCreateVolumeAccountIds: array string\n" " The account IDs which have permissions to create volumes.\n" - " -PermissionsToCreateVolumeGlobalPermission: bool\n" - " If true, lists all public volumes. If false, lists all private \n" - " volumes.\n" - " -Progresses: array integer\n" + " --Filters.PermissionsToCreateVolumeGlobalPermission: bool\n" + " If true, lists all public volumes. If false, lists all private volumes.\n" + " --Filters.Progresses: array integer\n" " The progresses of the snapshots, as a percentage.\n" - " -SnapshotIds: array string\n" + " --Filters.SnapshotIds: array string\n" " The IDs of the snapshots.\n" - " -States: array string\n" - " The states of the snapshots (`in-queue` \\| `pending` \\| \n" - " `completed` \\| `error` \\| `deleting`).\n" - " -TagKeys: array string\n" + " --Filters.States: array string\n" + " The states of the snapshots (`in-queue` \\| `pending` \\| `completed` \n" + " \\| `error` \\| `deleting`).\n" + " --Filters.TagKeys: array string\n" " The keys of the tags associated with the snapshots.\n" - " -TagValues: array string\n" + " --Filters.TagValues: array string\n" " The values of the tags associated with the snapshots.\n" - " -Tags: array string\n" - " The key/value combination of the tags associated with the \n" - " snapshots, in the following format: \n" - " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE&quo\n" - " t;]}.\n" - " -ToCreationDate: string\n" - " The end of the time period, in ISO 8601 date-time format (for \n" - " example, `2020-06-30T00:00:00.000Z`).\n" - " -VolumeIds: array string\n" + " --Filters.Tags: array string\n" + " The key/value combination of the tags associated with the snapshots, in \n" + " the following format: \n" + " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE\"]}.\n" + " --Filters.ToCreationDate: string\n" + " The end of the time period, in ISO 8601 date-time format (for example, \n" + " `2020-06-30T00:00:00.000Z`).\n" + " --Filters.VolumeIds: array string\n" " The IDs of the volumes used to create the snapshots.\n" - " -VolumeSizes: array integer\n" - " The sizes of the volumes used to create the snapshots, in \n" - " gibibytes (GiB).\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersExportTask\n" + " --Filters.VolumeSizes: array integer\n" + " The sizes of the volumes used to create the snapshots, in gibibytes \n" + " (GiB).\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersExportTask\n" " One or more filters.\n" - " -TaskIds: array string\n" + " --Filters.TaskIds: array string\n" " The IDs of the export tasks.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersServerCertificate\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersServerCertificate\n" " One or more filters.\n" - " -Paths: array string\n" + " --Filters.Paths: array string\n" " The paths to the server certificates.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersSecurityGroup\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersSecurityGroup\n" " One or more filters.\n" - " -Descriptions: array string\n" + " --Filters.Descriptions: array string\n" " The descriptions of the security groups.\n" - " -InboundRuleAccountIds: array string\n" + " --Filters.InboundRuleAccountIds: array string\n" " The account IDs that have been granted permissions.\n" - " -InboundRuleFromPortRanges: array integer\n" - " The beginnings of the port ranges for the TCP and UDP \n" - " protocols, or the ICMP type numbers.\n" - " -InboundRuleIpRanges: array string\n" - " The IP ranges that have been granted permissions, in CIDR \n" - " notation (for example, `10.0.0.0/24`).\n" - " -InboundRuleProtocols: array string\n" - " The IP protocols for the permissions (`tcp` \\| `udp` \\| \n" - " `icmp`, or a protocol number, or `-1` for all protocols).\n" - " -InboundRuleSecurityGroupIds: array string\n" - " The IDs of the security groups that have been granted \n" - " permissions.\n" - " -InboundRuleSecurityGroupNames: array string\n" - " The names of the security groups that have been granted \n" - " permissions.\n" - " -InboundRuleToPortRanges: array integer\n" - " The ends of the port ranges for the TCP and UDP protocols, or \n" - " the ICMP code numbers.\n" - " -NetIds: array string\n" - " The IDs of the Nets specified when the security groups were \n" - " created.\n" - " -OutboundRuleAccountIds: array string\n" + " --Filters.InboundRuleFromPortRanges: array integer\n" + " The beginnings of the port ranges for the TCP and UDP protocols, or the \n" + " ICMP type numbers.\n" + " --Filters.InboundRuleIpRanges: array string\n" + " The IP ranges that have been granted permissions, in CIDR notation (for \n" + " example, `10.0.0.0/24`).\n" + " --Filters.InboundRuleProtocols: array string\n" + " The IP protocols for the permissions (`tcp` \\| `udp` \\| `icmp`, or a \n" + " protocol number, or `-1` for all protocols).\n" + " --Filters.InboundRuleSecurityGroupIds: array string\n" + " The IDs of the security groups that have been granted permissions.\n" + " --Filters.InboundRuleSecurityGroupNames: array string\n" + " The names of the security groups that have been granted permissions.\n" + " --Filters.InboundRuleToPortRanges: array integer\n" + " The ends of the port ranges for the TCP and UDP protocols, or the ICMP \n" + " code numbers.\n" + " --Filters.NetIds: array string\n" + " The IDs of the Nets specified when the security groups were created.\n" + " --Filters.OutboundRuleAccountIds: array string\n" " The account IDs that have been granted permissions.\n" - " -OutboundRuleFromPortRanges: array integer\n" - " The beginnings of the port ranges for the TCP and UDP \n" - " protocols, or the ICMP type numbers.\n" - " -OutboundRuleIpRanges: array string\n" - " The IP ranges that have been granted permissions, in CIDR \n" - " notation (for example, `10.0.0.0/24`).\n" - " -OutboundRuleProtocols: array string\n" - " The IP protocols for the permissions (`tcp` \\| `udp` \\| \n" - " `icmp`, or a protocol number, or `-1` for all protocols).\n" - " -OutboundRuleSecurityGroupIds: array string\n" - " The IDs of the security groups that have been granted \n" - " permissions.\n" - " -OutboundRuleSecurityGroupNames: array string\n" - " The names of the security groups that have been granted \n" - " permissions.\n" - " -OutboundRuleToPortRanges: array integer\n" - " The ends of the port ranges for the TCP and UDP protocols, or \n" - " the ICMP code numbers.\n" - " -SecurityGroupIds: array string\n" + " --Filters.OutboundRuleFromPortRanges: array integer\n" + " The beginnings of the port ranges for the TCP and UDP protocols, or the \n" + " ICMP type numbers.\n" + " --Filters.OutboundRuleIpRanges: array string\n" + " The IP ranges that have been granted permissions, in CIDR notation (for \n" + " example, `10.0.0.0/24`).\n" + " --Filters.OutboundRuleProtocols: array string\n" + " The IP protocols for the permissions (`tcp` \\| `udp` \\| `icmp`, or a \n" + " protocol number, or `-1` for all protocols).\n" + " --Filters.OutboundRuleSecurityGroupIds: array string\n" + " The IDs of the security groups that have been granted permissions.\n" + " --Filters.OutboundRuleSecurityGroupNames: array string\n" + " The names of the security groups that have been granted permissions.\n" + " --Filters.OutboundRuleToPortRanges: array integer\n" + " The ends of the port ranges for the TCP and UDP protocols, or the ICMP \n" + " code numbers.\n" + " --Filters.SecurityGroupIds: array string\n" " The IDs of the security groups.\n" - " -SecurityGroupNames: array string\n" + " --Filters.SecurityGroupNames: array string\n" " The names of the security groups.\n" - " -TagKeys: array string\n" + " --Filters.TagKeys: array string\n" " The keys of the tags associated with the security groups.\n" - " -TagValues: array string\n" + " --Filters.TagValues: array string\n" " The values of the tags associated with the security groups.\n" - " -Tags: array string\n" - " The key/value combination of the tags associated with the \n" - " security groups, in the following format: \n" - " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE&quo\n" - " t;]}.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "AccessKeyId: string\n" + " --Filters.Tags: array string\n" + " The key/value combination of the tags associated with the security \n" + " groups, in the following format: \n" + " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE\"]}.\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--AccessKeyId: string\n" " The ID of the access key.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersRouteTable\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersRouteTable\n" " One or more filters.\n" - " -LinkRouteTableIds: array string\n" + " --Filters.LinkRouteTableIds: array string\n" " The IDs of the route tables involved in the associations.\n" - " -LinkRouteTableLinkRouteTableIds: array string\n" - " The IDs of the associations between the route tables and the \n" - " Subnets.\n" - " -LinkRouteTableMain: bool\n" + " --Filters.LinkRouteTableLinkRouteTableIds: array string\n" + " The IDs of the associations between the route tables and the Subnets.\n" + " --Filters.LinkRouteTableMain: bool\n" " If true, the route tables are the main ones for their Nets.\n" - " -LinkSubnetIds: array string\n" + " --Filters.LinkSubnetIds: array string\n" " The IDs of the Subnets involved in the associations.\n" - " -NetIds: array string\n" + " --Filters.NetIds: array string\n" " The IDs of the Nets for the route tables.\n" - " -RouteCreationMethods: array string\n" + " --Filters.RouteCreationMethods: array string\n" " The methods used to create a route.\n" - " -RouteDestinationIpRanges: array string\n" + " --Filters.RouteDestinationIpRanges: array string\n" " The IP ranges specified in routes in the tables.\n" - " -RouteDestinationServiceIds: array string\n" + " --Filters.RouteDestinationServiceIds: array string\n" " The service IDs specified in routes in the tables.\n" - " -RouteGatewayIds: array string\n" + " --Filters.RouteGatewayIds: array string\n" " The IDs of the gateways specified in routes in the tables.\n" - " -RouteNatServiceIds: array string\n" + " --Filters.RouteNatServiceIds: array string\n" " The IDs of the NAT services specified in routes in the tables.\n" - " -RouteNetPeeringIds: array string\n" + " --Filters.RouteNetPeeringIds: array string\n" " The IDs of the Net peerings specified in routes in the tables.\n" - " -RouteStates: array string\n" + " --Filters.RouteStates: array string\n" " The states of routes in the route tables (always `active`).\n" - " -RouteTableIds: array string\n" + " --Filters.RouteTableIds: array string\n" " The IDs of the route tables.\n" - " -RouteVmIds: array string\n" + " --Filters.RouteVmIds: array string\n" " The IDs of the VMs specified in routes in the tables.\n" - " -TagKeys: array string\n" + " --Filters.TagKeys: array string\n" " The keys of the tags associated with the route tables.\n" - " -TagValues: array string\n" + " --Filters.TagValues: array string\n" " The values of the tags associated with the route tables.\n" - " -Tags: array string\n" - " The key/value combination of the tags associated with the \n" - " route tables, in the following format: \n" - " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE&quo\n" - " t;]}.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersQuota\n" + " --Filters.Tags: array string\n" + " The key/value combination of the tags associated with the route tables, \n" + " in the following format: \n" + " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE\"]}.\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersQuota\n" " One or more filters.\n" - " -Collections: array string\n" + " --Filters.Collections: array string\n" " The group names of the quotas.\n" - " -QuotaNames: array string\n" + " --Filters.QuotaNames: array string\n" " The names of the quotas.\n" - " -QuotaTypes: array string\n" - " The resource IDs if these are resource-specific quotas, \n" - " `global` if they are not.\n" - " -ShortDescriptions: array string\n" + " --Filters.QuotaTypes: array string\n" + " The resource IDs if these are resource-specific quotas, `global` if they \n" + " are not.\n" + " --Filters.ShortDescriptions: array string\n" " The description of the quotas.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersPublicIp\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersPublicIp\n" " One or more filters.\n" - " -LinkPublicIpIds: array string\n" - " The IDs representing the associations of public IPs with VMs \n" - " or NICs.\n" - " -NicAccountIds: array string\n" + " --Filters.LinkPublicIpIds: array string\n" + " The IDs representing the associations of public IPs with VMs or NICs.\n" + " --Filters.NicAccountIds: array string\n" " The account IDs of the owners of the NICs.\n" - " -NicIds: array string\n" + " --Filters.NicIds: array string\n" " The IDs of the NICs.\n" - " -Placements: array string\n" - " Whether the public IPs are for use in the public Cloud or in a \n" - " Net.\n" - " -PrivateIps: array string\n" + " --Filters.Placements: array string\n" + " Whether the public IPs are for use in the public Cloud or in a Net.\n" + " --Filters.PrivateIps: array string\n" " The private IPs associated with the public IPs.\n" - " -PublicIpIds: array string\n" + " --Filters.PublicIpIds: array string\n" " The IDs of the public IPs.\n" - " -PublicIps: array string\n" + " --Filters.PublicIps: array string\n" " The public IPs.\n" - " -TagKeys: array string\n" + " --Filters.TagKeys: array string\n" " The keys of the tags associated with the public IPs.\n" - " -TagValues: array string\n" + " --Filters.TagValues: array string\n" " The values of the tags associated with the public IPs.\n" - " -Tags: array string\n" - " The key/value combination of the tags associated with the \n" - " public IPs, in the following format: \n" - " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE&quo\n" - " t;]}.\n" - " -VmIds: array string\n" + " --Filters.Tags: array string\n" + " The key/value combination of the tags associated with the public IPs, in \n" + " the following format: \n" + " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE\"]}.\n" + " --Filters.VmIds: array string\n" " The IDs of the VMs.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersProductType\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersProductType\n" " One or more filters.\n" - " -ProductTypeIds: array string\n" + " --Filters.ProductTypeIds: array string\n" " The IDs of the product types.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "FirstItem: int\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--FirstItem: int\n" " The item starting the list of policies requested.\n" -"PolicyOrn: string\n" - " The OUTSCALE Resource Name (ORN) of the policy. For more information, \n" - " see [Resource \n" - " Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifiers\n" - " .html).\n" -"ResultsPerPage: int\n" - " The maximum number of items that can be returned in a single response \n" - " (by default, `100`).\n" -, - "PolicyOrn: string\n" - " The OUTSCALE Resource Name (ORN) of the policy. For more information, \n" - " see [Resource \n" - " Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifiers\n" - " .html).\n" -"VersionId: string\n" +"--PolicyOrn: string\n" + " The OUTSCALE Resource Name (ORN) of the policy. For more information, see [Resource \n" + " Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifiers.html).\n" +"--ResultsPerPage: int\n" + " The maximum number of items that can be returned in a single response (by default, `100`).\n" +, + "--PolicyOrn: string\n" + " The OUTSCALE Resource Name (ORN) of the policy. For more information, see [Resource \n" + " Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifiers.html).\n" +"--VersionId: string\n" " The ID of the policy version.\n" , - "PolicyOrn: string\n" - " The OUTSCALE Resource Name (ORN) of the policy. For more information, \n" - " see [Resource \n" - " Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifiers\n" - " .html).\n" + "--PolicyOrn: string\n" + " The OUTSCALE Resource Name (ORN) of the policy. For more information, see [Resource \n" + " Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifiers.html).\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref ReadPoliciesFilters\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref ReadPoliciesFilters\n" " One or more filters.\n" - " -OnlyLinked: bool\n" + " --Filters.OnlyLinked: bool\n" " If set to true, lists only the policies attached to a user.\n" - " -PathPrefix: string\n" - " The path prefix you can use to filter the results. If not \n" - " specified, it is set to a slash (`/`).\n" - " -Scope: string\n" + " --Filters.PathPrefix: string\n" + " The path prefix you can use to filter the results. If not specified, it \n" + " is set to a slash (`/`).\n" + " --Filters.Scope: string\n" " The scope to filter policies (`OWS` \\| `LOCAL`).\n" -"FirstItem: int\n" +"--FirstItem: int\n" " The item starting the list of policies requested.\n" -"ResultsPerPage: int\n" - " The maximum number of items that can be returned in a single response \n" - " (by default, `100`).\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersNic\n" +"--ResultsPerPage: int\n" + " The maximum number of items that can be returned in a single response (by default, `100`).\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersNic\n" " One or more filters.\n" - " -Descriptions: array string\n" + " --Filters.Descriptions: array string\n" " The descriptions of the NICs.\n" - " -IsSourceDestCheck: bool\n" - " Whether the source/destination checking is enabled (true) or \n" - " disabled (false).\n" - " -LinkNicDeleteOnVmDeletion: bool\n" - " Whether the NICs are deleted when the VMs they are attached to \n" - " are terminated.\n" - " -LinkNicDeviceNumbers: array integer\n" + " --Filters.IsSourceDestCheck: bool\n" + " Whether the source/destination checking is enabled (true) or disabled \n" + " (false).\n" + " --Filters.LinkNicDeleteOnVmDeletion: bool\n" + " Whether the NICs are deleted when the VMs they are attached to are \n" + " terminated.\n" + " --Filters.LinkNicDeviceNumbers: array integer\n" " The device numbers the NICs are attached to.\n" - " -LinkNicLinkNicIds: array string\n" + " --Filters.LinkNicLinkNicIds: array string\n" " The attachment IDs of the NICs.\n" - " -LinkNicStates: array string\n" + " --Filters.LinkNicStates: array string\n" " The states of the attachments.\n" - " -LinkNicVmAccountIds: array string\n" - " The account IDs of the owners of the VMs the NICs are attached \n" - " to.\n" - " -LinkNicVmIds: array string\n" + " --Filters.LinkNicVmAccountIds: array string\n" + " The account IDs of the owners of the VMs the NICs are attached to.\n" + " --Filters.LinkNicVmIds: array string\n" " The IDs of the VMs the NICs are attached to.\n" - " -LinkPublicIpAccountIds: array string\n" - " The account IDs of the owners of the public IPs associated \n" - " with the NICs.\n" - " -LinkPublicIpLinkPublicIpIds: array string\n" - " The association IDs returned when the public IPs were \n" - " associated with the NICs.\n" - " -LinkPublicIpPublicDnsNames: array string\n" + " --Filters.LinkPublicIpAccountIds: array string\n" + " The account IDs of the owners of the public IPs associated with the \n" + " NICs.\n" + " --Filters.LinkPublicIpLinkPublicIpIds: array string\n" + " The association IDs returned when the public IPs were associated with \n" + " the NICs.\n" + " --Filters.LinkPublicIpPublicDnsNames: array string\n" " The public DNS names associated with the public IPs.\n" - " -LinkPublicIpPublicIpIds: array string\n" - " The allocation IDs returned when the public IPs were allocated \n" - " to their accounts.\n" - " -LinkPublicIpPublicIps: array string\n" + " --Filters.LinkPublicIpPublicIpIds: array string\n" + " The allocation IDs returned when the public IPs were allocated to their \n" + " accounts.\n" + " --Filters.LinkPublicIpPublicIps: array string\n" " The public IPs associated with the NICs.\n" - " -MacAddresses: array string\n" + " --Filters.MacAddresses: array string\n" " The Media Access Control (MAC) addresses of the NICs.\n" - " -NetIds: array string\n" + " --Filters.NetIds: array string\n" " The IDs of the Nets where the NICs are located.\n" - " -NicIds: array string\n" + " --Filters.NicIds: array string\n" " The IDs of the NICs.\n" - " -PrivateDnsNames: array string\n" + " --Filters.PrivateDnsNames: array string\n" " The private DNS names associated with the primary private IPs.\n" - " -PrivateIpsLinkPublicIpAccountIds: array string\n" - " The account IDs of the owner of the public IPs associated with \n" - " the private IPs.\n" - " -PrivateIpsLinkPublicIpPublicIps: array string\n" + " --Filters.PrivateIpsLinkPublicIpAccountIds: array string\n" + " The account IDs of the owner of the public IPs associated with the \n" + " private IPs.\n" + " --Filters.PrivateIpsLinkPublicIpPublicIps: array string\n" " The public IPs associated with the private IPs.\n" - " -PrivateIpsPrimaryIp: bool\n" - " Whether the private IP is the primary IP associated with the \n" - " NIC.\n" - " -PrivateIpsPrivateIps: array string\n" + " --Filters.PrivateIpsPrimaryIp: bool\n" + " Whether the private IP is the primary IP associated with the NIC.\n" + " --Filters.PrivateIpsPrivateIps: array string\n" " The private IPs of the NICs.\n" - " -SecurityGroupIds: array string\n" + " --Filters.SecurityGroupIds: array string\n" " The IDs of the security groups associated with the NICs.\n" - " -SecurityGroupNames: array string\n" + " --Filters.SecurityGroupNames: array string\n" " The names of the security groups associated with the NICs.\n" - " -States: array string\n" + " --Filters.States: array string\n" " The states of the NICs.\n" - " -SubnetIds: array string\n" + " --Filters.SubnetIds: array string\n" " The IDs of the Subnets for the NICs.\n" - " -SubregionNames: array string\n" + " --Filters.SubregionNames: array string\n" " The Subregions where the NICs are located.\n" - " -TagKeys: array string\n" + " --Filters.TagKeys: array string\n" " The keys of the tags associated with the NICs.\n" - " -TagValues: array string\n" + " --Filters.TagValues: array string\n" " The values of the tags associated with the NICs.\n" - " -Tags: array string\n" - " The key/value combination of the tags associated with the \n" - " NICs, in the following format: \n" - " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE&quo\n" - " t;]}.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersNet\n" + " --Filters.Tags: array string\n" + " The key/value combination of the tags associated with the NICs, in the \n" + " following format: \n" + " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE\"]}.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersNet\n" " One or more filters.\n" - " -DhcpOptionsSetIds: array string\n" + " --Filters.DhcpOptionsSetIds: array string\n" " The IDs of the DHCP options sets.\n" - " -IpRanges: array string\n" + " --Filters.IpRanges: array string\n" " The IP ranges for the Nets, in CIDR notation (for example, \n" " `10.0.0.0/16`).\n" - " -IsDefault: bool\n" + " --Filters.IsDefault: bool\n" " If true, the Net used is the default one.\n" - " -NetIds: array string\n" + " --Filters.NetIds: array string\n" " The IDs of the Nets.\n" - " -States: array string\n" - " The states of the Nets (`pending` \\| `available` \\| \n" - " `deleting`).\n" - " -TagKeys: array string\n" + " --Filters.States: array string\n" + " The states of the Nets (`pending` \\| `available` \\| `deleting`).\n" + " --Filters.TagKeys: array string\n" " The keys of the tags associated with the Nets.\n" - " -TagValues: array string\n" + " --Filters.TagValues: array string\n" " The values of the tags associated with the Nets.\n" - " -Tags: array string\n" - " The key/value combination of the tags associated with the \n" - " Nets, in the following format: \n" - " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE&quo\n" - " t;]}.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersNetPeering\n" + " --Filters.Tags: array string\n" + " The key/value combination of the tags associated with the Nets, in the \n" + " following format: \n" + " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE\"]}.\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersNetPeering\n" " One or more filters.\n" - " -AccepterNetAccountIds: array string\n" + " --Filters.AccepterNetAccountIds: array string\n" " The account IDs of the owners of the peer Nets.\n" - " -AccepterNetIpRanges: array string\n" + " --Filters.AccepterNetIpRanges: array string\n" " The IP ranges of the peer Nets, in CIDR notation (for example, \n" " `10.0.0.0/24`).\n" - " -AccepterNetNetIds: array string\n" + " --Filters.AccepterNetNetIds: array string\n" " The IDs of the peer Nets.\n" - " -ExpirationDates: array string\n" - " The dates and times at which the Net peerings expire, in ISO \n" - " 8601 date-time format (for example, \n" - " `2020-06-14T00:00:00.000Z`).\n" - " -NetPeeringIds: array string\n" + " --Filters.ExpirationDates: array string\n" + " The dates and times at which the Net peerings expire, in ISO 8601 \n" + " date-time format (for example, `2020-06-14T00:00:00.000Z`).\n" + " --Filters.NetPeeringIds: array string\n" " The IDs of the Net peerings.\n" - " -SourceNetAccountIds: array string\n" + " --Filters.SourceNetAccountIds: array string\n" " The account IDs of the owners of the peer Nets.\n" - " -SourceNetIpRanges: array string\n" + " --Filters.SourceNetIpRanges: array string\n" " The IP ranges of the peer Nets.\n" - " -SourceNetNetIds: array string\n" + " --Filters.SourceNetNetIds: array string\n" " The IDs of the peer Nets.\n" - " -StateMessages: array string\n" + " --Filters.StateMessages: array string\n" " Additional information about the states of the Net peerings.\n" - " -StateNames: array string\n" - " The states of the Net peerings (`pending-acceptance` \\| \n" - " `active` \\| `rejected` \\| `failed` \\| `expired` \\| \n" - " `deleted`).\n" - " -TagKeys: array string\n" + " --Filters.StateNames: array string\n" + " The states of the Net peerings (`pending-acceptance` \\| `active` \\| \n" + " `rejected` \\| `failed` \\| `expired` \\| `deleted`).\n" + " --Filters.TagKeys: array string\n" " The keys of the tags associated with the Net peerings.\n" - " -TagValues: array string\n" + " --Filters.TagValues: array string\n" " The values of the tags associated with the Net peerings.\n" - " -Tags: array string\n" - " The key/value combination of the tags associated with the Net \n" - " peerings, in the following format: \n" - " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE&quo\n" - " t;]}.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersNetAccessPoint\n" + " --Filters.Tags: array string\n" + " The key/value combination of the tags associated with the Net peerings, \n" + " in the following format: \n" + " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE\"]}.\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersNetAccessPoint\n" " One or more filters.\n" - " -NetAccessPointIds: array string\n" + " --Filters.NetAccessPointIds: array string\n" " The IDs of the Net access points.\n" - " -NetIds: array string\n" + " --Filters.NetIds: array string\n" " The IDs of the Nets.\n" - " -ServiceNames: array string\n" + " --Filters.ServiceNames: array string\n" " The names of the services. For more information, see \n" " [ReadNetAccessPointServices](#readnetaccesspointservices).\n" - " -States: array string\n" - " The states of the Net access points (`pending` \\| `available` \n" - " \\| `deleting` \\| `deleted`).\n" - " -TagKeys: array string\n" + " --Filters.States: array string\n" + " The states of the Net access points (`pending` \\| `available` \\| \n" + " `deleting` \\| `deleted`).\n" + " --Filters.TagKeys: array string\n" " The keys of the tags associated with the Net access points.\n" - " -TagValues: array string\n" + " --Filters.TagValues: array string\n" " The values of the tags associated with the Net access points.\n" - " -Tags: array string\n" - " The key/value combination of the tags associated with the Net \n" - " access points, in the following format: \n" - " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE&quo\n" - " t;]}.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersService\n" + " --Filters.Tags: array string\n" + " The key/value combination of the tags associated with the Net access \n" + " points, in the following format: \n" + " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE\"]}.\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersService\n" " One or more filters.\n" - " -ServiceIds: array string\n" + " --Filters.ServiceIds: array string\n" " The IDs of the services.\n" - " -ServiceNames: array string\n" + " --Filters.ServiceNames: array string\n" " The names of the services.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersNatService\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersNatService\n" " One or more filters.\n" - " -ClientTokens: array string\n" - " The idempotency tokens provided when creating the NAT \n" - " services.\n" - " -NatServiceIds: array string\n" + " --Filters.ClientTokens: array string\n" + " The idempotency tokens provided when creating the NAT services.\n" + " --Filters.NatServiceIds: array string\n" " The IDs of the NAT services.\n" - " -NetIds: array string\n" + " --Filters.NetIds: array string\n" " The IDs of the Nets in which the NAT services are.\n" - " -States: array string\n" - " The states of the NAT services (`pending` \\| `available` \\| \n" - " `deleting` \\| `deleted`).\n" - " -SubnetIds: array string\n" + " --Filters.States: array string\n" + " The states of the NAT services (`pending` \\| `available` \\| `deleting` \n" + " \\| `deleted`).\n" + " --Filters.SubnetIds: array string\n" " The IDs of the Subnets in which the NAT services are.\n" - " -TagKeys: array string\n" + " --Filters.TagKeys: array string\n" " The keys of the tags associated with the NAT services.\n" - " -TagValues: array string\n" + " --Filters.TagValues: array string\n" " The values of the tags associated with the NAT services.\n" - " -Tags: array string\n" - " The key/value combination of the tags associated with the NAT \n" - " services, in the following format: \n" - " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE&quo\n" - " t;]}.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersUserGroup\n" + " --Filters.Tags: array string\n" + " The key/value combination of the tags associated with the NAT services, \n" + " in the following format: \n" + " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE\"]}.\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersUserGroup\n" " One or more filters.\n" - " -PathPrefix: string\n" - " The path prefix of the groups. If not specified, it is set to \n" - " a slash (`/`).\n" - " -UserGroupIds: array string\n" + " --Filters.PathPrefix: string\n" + " The path prefix of the groups. If not specified, it is set to a slash \n" + " (`/`).\n" + " --Filters.UserGroupIds: array string\n" " The IDs of the user groups.\n" -"FirstItem: int\n" +"--FirstItem: int\n" " The item starting the list of policies requested.\n" -"ResultsPerPage: int\n" - " The maximum number of items that can be returned in a single response \n" - " (by default, `100`).\n" -"UserGroupName: string\n" +"--ResultsPerPage: int\n" + " The maximum number of items that can be returned in a single response (by default, `100`).\n" +"--UserGroupName: string\n" " The name of the group.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersLoadBalancer\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersLoadBalancer\n" " One or more filters.\n" - " -LoadBalancerNames: array string\n" + " --Filters.LoadBalancerNames: array string\n" " The names of the load balancers.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"LoadBalancerNames: array string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--LoadBalancerNames: array string\n" " One or more load balancer names.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersListenerRule\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersListenerRule\n" " One or more filters.\n" - " -ListenerRuleNames: array string\n" + " --Filters.ListenerRuleNames: array string\n" " The names of the listener rules.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref ReadLinkedPoliciesFilters\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref ReadLinkedPoliciesFilters\n" " One or more filters.\n" - " -PathPrefix: string\n" - " The path prefix of the policies. If not specified, it is set \n" - " to a slash (`/`).\n" -"FirstItem: int\n" + " --Filters.PathPrefix: string\n" + " The path prefix of the policies. If not specified, it is set to a slash \n" + " (`/`).\n" +"--FirstItem: int\n" " The item starting the list of policies requested.\n" -"ResultsPerPage: int\n" - " The maximum number of items that can be returned in a single response \n" - " (by default, `100`).\n" -"UserName: string\n" +"--ResultsPerPage: int\n" + " The maximum number of items that can be returned in a single response (by default, `100`).\n" +"--UserName: string\n" " The name of the user the policies are linked to.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersKeypair\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersKeypair\n" " One or more filters.\n" - " -KeypairFingerprints: array string\n" + " --Filters.KeypairFingerprints: array string\n" " The fingerprints of the keypairs.\n" - " -KeypairNames: array string\n" + " --Filters.KeypairNames: array string\n" " The names of the keypairs.\n" - " -KeypairTypes: array string\n" + " --Filters.KeypairTypes: array string\n" " The types of the keypairs (`ssh-rsa`, `ssh-ed25519`, \n" - " `ecdsa-sha2-nistp256`, `ecdsa-sha2-nistp384`, or \n" - " `ecdsa-sha2-nistp521`).\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersInternetService\n" + " `ecdsa-sha2-nistp256`, `ecdsa-sha2-nistp384`, or `ecdsa-sha2-nistp521`).\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersInternetService\n" " One or more filters.\n" - " -InternetServiceIds: array string\n" + " --Filters.InternetServiceIds: array string\n" " The IDs of the Internet services.\n" - " -LinkNetIds: array string\n" + " --Filters.LinkNetIds: array string\n" " The IDs of the Nets the Internet services are attached to.\n" - " -LinkStates: array string\n" - " The current states of the attachments between the Internet \n" - " services and the Nets (only `available`, if the Internet \n" - " gateway is attached to a Net).\n" - " -TagKeys: array string\n" + " --Filters.LinkStates: array string\n" + " The current states of the attachments between the Internet services and \n" + " the Nets (only `available`, if the Internet gateway is attached to a \n" + " Net).\n" + " --Filters.TagKeys: array string\n" " The keys of the tags associated with the Internet services.\n" - " -TagValues: array string\n" + " --Filters.TagValues: array string\n" " The values of the tags associated with the Internet services.\n" - " -Tags: array string\n" - " The key/value combination of the tags associated with the \n" - " Internet services, in the following format: \n" - " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE&quo\n" - " t;]}.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersImage\n" + " --Filters.Tags: array string\n" + " The key/value combination of the tags associated with the Internet \n" + " services, in the following format: \n" + " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE\"]}.\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersImage\n" " One or more filters.\n" - " -AccountAliases: array string\n" + " --Filters.AccountAliases: array string\n" " The account aliases of the owners of the OMIs.\n" - " -AccountIds: array string\n" - " The account IDs of the owners of the OMIs. By default, all the \n" - " OMIs for which you have launch permissions are described.\n" - " -Architectures: array string\n" + " --Filters.AccountIds: array string\n" + " The account IDs of the owners of the OMIs. By default, all the OMIs for \n" + " which you have launch permissions are described.\n" + " --Filters.Architectures: array string\n" " The architectures of the OMIs (`i386` \\| `x86_64`).\n" - " -BlockDeviceMappingDeleteOnVmDeletion: bool\n" - " Whether the volumes are deleted or not when terminating the \n" - " VM.\n" - " -BlockDeviceMappingDeviceNames: array string\n" + " --Filters.BlockDeviceMappingDeleteOnVmDeletion: bool\n" + " Whether the volumes are deleted or not when terminating the VM.\n" + " --Filters.BlockDeviceMappingDeviceNames: array string\n" " The device names for the volumes.\n" - " -BlockDeviceMappingSnapshotIds: array string\n" + " --Filters.BlockDeviceMappingSnapshotIds: array string\n" " The IDs of the snapshots used to create the volumes.\n" - " -BlockDeviceMappingVolumeSizes: array integer\n" + " --Filters.BlockDeviceMappingVolumeSizes: array integer\n" " The sizes of the volumes, in gibibytes (GiB).\n" - " -BlockDeviceMappingVolumeTypes: array string\n" + " --Filters.BlockDeviceMappingVolumeTypes: array string\n" " The types of volumes (`standard` \\| `gp2` \\| `io1`).\n" - " -Descriptions: array string\n" + " --Filters.Descriptions: array string\n" " The descriptions of the OMIs, provided when they were created.\n" - " -FileLocations: array string\n" + " --Filters.FileLocations: array string\n" " The locations of the buckets where the OMI files are stored.\n" - " -Hypervisors: array string\n" + " --Filters.Hypervisors: array string\n" " The hypervisor type of the OMI (always `xen`).\n" - " -ImageIds: array string\n" + " --Filters.ImageIds: array string\n" " The IDs of the OMIs.\n" - " -ImageNames: array string\n" + " --Filters.ImageNames: array string\n" " The names of the OMIs, provided when they were created.\n" - " -PermissionsToLaunchAccountIds: array string\n" + " --Filters.PermissionsToLaunchAccountIds: array string\n" " The account IDs which have launch permissions for the OMIs.\n" - " -PermissionsToLaunchGlobalPermission: bool\n" - " If true, lists all public OMIs. If false, lists all private \n" - " OMIs.\n" - " -ProductCodeNames: array string\n" + " --Filters.PermissionsToLaunchGlobalPermission: bool\n" + " If true, lists all public OMIs. If false, lists all private OMIs.\n" + " --Filters.ProductCodeNames: array string\n" " The names of the product codes associated with the OMI.\n" - " -ProductCodes: array string\n" + " --Filters.ProductCodes: array string\n" " The product codes associated with the OMI.\n" - " -RootDeviceNames: array string\n" + " --Filters.RootDeviceNames: array string\n" " The name of the root device. This value must be /dev/sda1.\n" - " -RootDeviceTypes: array string\n" + " --Filters.RootDeviceTypes: array string\n" " The types of root device used by the OMIs (`bsu` or `ebs`).\n" - " -States: array string\n" - " The states of the OMIs (`pending` \\| `available` \\| \n" - " `failed`).\n" - " -TagKeys: array string\n" + " --Filters.States: array string\n" + " The states of the OMIs (`pending` \\| `available` \\| `failed`).\n" + " --Filters.TagKeys: array string\n" " The keys of the tags associated with the OMIs.\n" - " -TagValues: array string\n" + " --Filters.TagValues: array string\n" " The values of the tags associated with the OMIs.\n" - " -Tags: array string\n" - " The key/value combination of the tags associated with the \n" - " OMIs, in the following format: \n" - " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE&quo\n" - " t;]}.\n" - " -VirtualizationTypes: array string\n" + " --Filters.Tags: array string\n" + " The key/value combination of the tags associated with the OMIs, in the \n" + " following format: \n" + " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE\"]}.\n" + " --Filters.VirtualizationTypes: array string\n" " The virtualization types (always `hvm`).\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersExportTask\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersExportTask\n" " One or more filters.\n" - " -TaskIds: array string\n" + " --Filters.TaskIds: array string\n" " The IDs of the export tasks.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersFlexibleGpu\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersFlexibleGpu\n" " One or more filters.\n" - " -DeleteOnVmDeletion: bool\n" + " --Filters.DeleteOnVmDeletion: bool\n" " Indicates whether the fGPU is deleted when terminating the VM.\n" - " -FlexibleGpuIds: array string\n" + " --Filters.FlexibleGpuIds: array string\n" " One or more IDs of fGPUs.\n" - " -Generations: array string\n" + " --Filters.Generations: array string\n" " The processor generations that the fGPUs are compatible with.\n" - " -ModelNames: array string\n" - " One or more models of fGPUs. For more information, see [About \n" - " Flexible \n" - " GPUs](https://docs.outscale.com/en/userguide/About-Flexible-GPUs\n" - " .html).\n" - " -States: array string\n" - " The states of the fGPUs (`allocated` \\| `attaching` \\| \n" - " `attached` \\| `detaching`).\n" - " -SubregionNames: array string\n" + " --Filters.ModelNames: array string\n" + " One or more models of fGPUs. For more information, see [About Flexible \n" + " GPUs](https://docs.outscale.com/en/userguide/About-Flexible-GPUs.html).\n" + " --Filters.States: array string\n" + " The states of the fGPUs (`allocated` \\| `attaching` \\| `attached` \\| \n" + " `detaching`).\n" + " --Filters.SubregionNames: array string\n" " The Subregions where the fGPUs are located.\n" - " -VmIds: array string\n" + " --Filters.VmIds: array string\n" " One or more IDs of VMs.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersDirectLink\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersDirectLink\n" " One or more filters.\n" - " -DirectLinkIds: array string\n" + " --Filters.DirectLinkIds: array string\n" " The IDs of the DirectLinks.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersDirectLinkInterface\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersDirectLinkInterface\n" " One or more filters.\n" - " -DirectLinkIds: array string\n" + " --Filters.DirectLinkIds: array string\n" " The IDs of the DirectLinks.\n" - " -DirectLinkInterfaceIds: array string\n" + " --Filters.DirectLinkInterfaceIds: array string\n" " The IDs of the DirectLink interfaces.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersDhcpOptions\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersDhcpOptions\n" " One or more filters.\n" - " -Default: bool\n" - " If true, lists all default DHCP options set. If false, lists \n" - " all non-default DHCP options set.\n" - " -DhcpOptionsSetIds: array string\n" + " --Filters.Default: bool\n" + " If true, lists all default DHCP options set. If false, lists all \n" + " non-default DHCP options set.\n" + " --Filters.DhcpOptionsSetIds: array string\n" " The IDs of the DHCP options sets.\n" - " -DomainNameServers: array string\n" - " The IPs of the domain name servers used for the DHCP options \n" - " sets.\n" - " -DomainNames: array string\n" + " --Filters.DomainNameServers: array string\n" + " The IPs of the domain name servers used for the DHCP options sets.\n" + " --Filters.DomainNames: array string\n" " The domain names used for the DHCP options sets.\n" - " -LogServers: array string\n" + " --Filters.LogServers: array string\n" " The IPs of the log servers used for the DHCP options sets.\n" - " -NtpServers: array string\n" - " The IPs of the Network Time Protocol (NTP) servers used for \n" - " the DHCP options sets.\n" - " -TagKeys: array string\n" + " --Filters.NtpServers: array string\n" + " The IPs of the Network Time Protocol (NTP) servers used for the DHCP \n" + " options sets.\n" + " --Filters.TagKeys: array string\n" " The keys of the tags associated with the DHCP options sets.\n" - " -TagValues: array string\n" + " --Filters.TagValues: array string\n" " The values of the tags associated with the DHCP options sets.\n" - " -Tags: array string\n" - " The key/value combination of the tags associated with the DHCP \n" - " options sets, in the following format: \n" - " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE&quo\n" - " t;]}.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersDedicatedGroup\n" + " --Filters.Tags: array string\n" + " The key/value combination of the tags associated with the DHCP options \n" + " sets, in the following format: \n" + " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE\"]}.\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersDedicatedGroup\n" " One or more filters.\n" - " -CpuGenerations: array integer\n" - " The processor generation for the VMs in the dedicated group \n" - " (for example, `4`).\n" - " -DedicatedGroupIds: array string\n" + " --Filters.CpuGenerations: array integer\n" + " The processor generation for the VMs in the dedicated group (for \n" + " example, `4`).\n" + " --Filters.DedicatedGroupIds: array string\n" " The IDs of the dedicated groups.\n" - " -Names: array string\n" + " --Filters.Names: array string\n" " The names of the dedicated groups.\n" - " -SubregionNames: array string\n" - " The names of the Subregions in which the dedicated groups are \n" - " located.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"FromDate: string\n" - " The beginning of the time period, in ISO 8601 date format (for example, \n" - " `2020-06-14`). The date-time format is also accepted, but only with a \n" - " time set to midnight (for example, `2020-06-14T00:00:00.000Z`). This \n" - " value is included in the time period.\n" -"Overall: bool\n" - " By default or if false, returns only the consumption of the specific \n" - " account that sends this request. If true, returns either the overall \n" - " consumption of your paying account and all linked accounts (if the \n" - " account that sends this request is a paying account) or returns nothing \n" - " (if the account that sends this request is a linked account).\n" -"ShowPrice: bool\n" - " If true, the response also includes the unit price of the consumed \n" - " resource (`UnitPrice`) and the total price of the consumed resource \n" - " during the specified time period (`Price`), in the currency of your \n" - " account.\n" -"ToDate: string\n" - " The end of the time period, in ISO 8601 date format (for example, \n" - " `2020-06-30`). The date-time format is also accepted, but only with a \n" - " time set to midnight (for example, `2020-06-30T00:00:00.000Z`). This \n" - " value is excluded from the time period, and must be set to a later date \n" - " than `FromDate`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"VmId: string\n" + " --Filters.SubregionNames: array string\n" + " The names of the Subregions in which the dedicated groups are located.\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--FromDate: string\n" + " The beginning of the time period, in ISO 8601 date format (for example, `2020-06-14`). The \n" + " date-time format is also accepted, but only with a time set to midnight (for example, \n" + " `2020-06-14T00:00:00.000Z`). This value is included in the time period.\n" +"--Overall: bool\n" + " By default or if false, returns only the consumption of the specific account that sends \n" + " this request. If true, returns either the overall consumption of your paying account and \n" + " all linked accounts (if the account that sends this request is a paying account) or returns \n" + " nothing (if the account that sends this request is a linked account).\n" +"--ShowPrice: bool\n" + " If true, the response also includes the unit price of the consumed resource (`UnitPrice`) \n" + " and the total price of the consumed resource during the specified time period (`Price`), in \n" + " the currency of your account.\n" +"--ToDate: string\n" + " The end of the time period, in ISO 8601 date format (for example, `2020-06-30`). The \n" + " date-time format is also accepted, but only with a time set to midnight (for example, \n" + " `2020-06-30T00:00:00.000Z`). This value is excluded from the time period, and must be set \n" + " to a later date than `FromDate`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--VmId: string\n" " The ID of the VM.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersClientGateway\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersClientGateway\n" " One or more filters.\n" - " -BgpAsns: array integer\n" - " The Border Gateway Protocol (BGP) Autonomous System Numbers \n" - " (ASNs) of the connections.\n" - " -ClientGatewayIds: array string\n" + " --Filters.BgpAsns: array integer\n" + " The Border Gateway Protocol (BGP) Autonomous System Numbers (ASNs) of \n" + " the connections.\n" + " --Filters.ClientGatewayIds: array string\n" " The IDs of the client gateways.\n" - " -ConnectionTypes: array string\n" - " The types of communication tunnels used by the client gateways \n" - " (only `ipsec.1` is supported).\n" - " -PublicIps: array string\n" + " --Filters.ConnectionTypes: array string\n" + " The types of communication tunnels used by the client gateways (only \n" + " `ipsec.1` is supported).\n" + " --Filters.PublicIps: array string\n" " The public IPv4 addresses of the client gateways.\n" - " -States: array string\n" - " The states of the client gateways (`pending` \\| `available` \n" - " \\| `deleting` \\| `deleted`).\n" - " -TagKeys: array string\n" + " --Filters.States: array string\n" + " The states of the client gateways (`pending` \\| `available` \\| \n" + " `deleting` \\| `deleted`).\n" + " --Filters.TagKeys: array string\n" " The keys of the tags associated with the client gateways.\n" - " -TagValues: array string\n" + " --Filters.TagValues: array string\n" " The values of the tags associated with the client gateways.\n" - " -Tags: array string\n" - " The key/value combination of the tags associated with the \n" - " client gateways, in the following format: \n" - " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE&quo\n" - " t;]}.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersCatalogs\n" + " --Filters.Tags: array string\n" + " The key/value combination of the tags associated with the client \n" + " gateways, in the following format: \n" + " \"Filters\":{\"Tags\":[\"TAGKEY=TAGVALUE\"]}.\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersCatalogs\n" " One or more filters.\n" - " -CurrentCatalogOnly: bool\n" - " By default or if set to true, only returns the current \n" - " catalog. If false, returns the current catalog and past \n" - " catalogs.\n" - " -FromDate: string\n" - " The beginning of the time period, in ISO 8601 date format (for \n" - " example, `2020-06-14`). This date cannot be older than 3 years. \n" - " You must specify the parameters `FromDate` and `ToDate` \n" + " --Filters.CurrentCatalogOnly: bool\n" + " By default or if set to true, only returns the current catalog. If \n" + " false, returns the current catalog and past catalogs.\n" + " --Filters.FromDate: string\n" + " The beginning of the time period, in ISO 8601 date format (for example, \n" + " `2020-06-14`). This date cannot be older than 3 years. You must specify \n" + " the parameters `FromDate` and `ToDate` together.\n" + " --Filters.ToDate: string\n" + " The end of the time period, in ISO 8601 date format (for example, \n" + " `2020-06-30`). You must specify the parameters `FromDate` and `ToDate` \n" " together.\n" - " -ToDate: string\n" - " The end of the time period, in ISO 8601 date format (for \n" - " example, `2020-06-30`). You must specify the parameters \n" - " `FromDate` and `ToDate` together.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersCa\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersCa\n" " One or more filters.\n" - " -CaFingerprints: array string\n" + " --Filters.CaFingerprints: array string\n" " The fingerprints of the CAs.\n" - " -CaIds: array string\n" + " --Filters.CaIds: array string\n" " The IDs of the CAs.\n" - " -Descriptions: array string\n" + " --Filters.Descriptions: array string\n" " The descriptions of the CAs.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersApiLog\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersApiLog\n" " One or more filters.\n" - " -QueryAccessKeys: array string\n" + " --Filters.QueryAccessKeys: array string\n" " The access keys used for the logged calls.\n" - " -QueryApiNames: array string\n" - " The names of the APIs of the logged calls (always `oapi` for \n" - " the OUTSCALE API).\n" - " -QueryCallNames: array string\n" + " --Filters.QueryApiNames: array string\n" + " The names of the APIs of the logged calls (always `oapi` for the \n" + " OUTSCALE API).\n" + " --Filters.QueryCallNames: array string\n" " The names of the logged calls.\n" - " -QueryDateAfter: string\n" - " The date and time, or the date, after which you want to \n" - " retrieve logged calls, in ISO 8601 format (for example, \n" - " `2020-06-14T00:00:00.000Z` or `2020-06-14`). By default, this \n" - " date is set to 48 hours before the `QueryDateBefore` parameter \n" - " value.\n" - " -QueryDateBefore: string\n" - " The date and time, or the date, before which you want to \n" - " retrieve logged calls, in ISO 8601 format (for example, \n" - " `2020-06-30T00:00:00.000Z` or `2020-06-14`). By default, this \n" - " date is set to now, or 48 hours after the `QueryDateAfter` \n" - " parameter value.\n" - " -QueryIpAddresses: array string\n" + " --Filters.QueryDateAfter: string\n" + " The date and time, or the date, after which you want to retrieve logged \n" + " calls, in ISO 8601 format (for example, `2020-06-14T00:00:00.000Z` or \n" + " `2020-06-14`). By default, this date is set to 48 hours before the \n" + " `QueryDateBefore` parameter value.\n" + " --Filters.QueryDateBefore: string\n" + " The date and time, or the date, before which you want to retrieve logged \n" + " calls, in ISO 8601 format (for example, `2020-06-30T00:00:00.000Z` or \n" + " `2020-06-14`). By default, this date is set to now, or 48 hours after the \n" + " `QueryDateAfter` parameter value.\n" + " --Filters.QueryIpAddresses: array string\n" " The IPs used for the logged calls.\n" - " -QueryUserAgents: array string\n" + " --Filters.QueryUserAgents: array string\n" " The user agents of the HTTP requests of the logged calls.\n" - " -RequestIds: array string\n" + " --Filters.RequestIds: array string\n" " The request IDs provided in the responses of the logged calls.\n" - " -ResponseStatusCodes: array integer\n" + " --Filters.ResponseStatusCodes: array integer\n" " The HTTP status codes of the logged calls.\n" -"NextPageToken: string\n" - " The token to request the next page of results. Each token refers to a \n" - " specific page.\n" -"ResultsPerPage: int\n" - " The maximum number of logs returned in a single response (between \n" - " `1`and `1000`, both included). By default, `100`.\n" -"With: ref With\n" +"--NextPageToken: string\n" + " The token to request the next page of results. Each token refers to a specific page.\n" +"--ResultsPerPage: int\n" + " The maximum number of logs returned in a single response (between `1`and `1000`, both \n" + " included). By default, `100`.\n" +"--With: ref With\n" " The information to display in each returned log.\n" - " -AccountId: bool\n" + " --With.AccountId: bool\n" " By default or if set to true, the account ID is displayed.\n" - " -CallDuration: bool\n" - " By default or if set to true, the duration of the call is \n" - " displayed.\n" - " -QueryAccessKey: bool\n" + " --With.CallDuration: bool\n" + " By default or if set to true, the duration of the call is displayed.\n" + " --With.QueryAccessKey: bool\n" " By default or if set to true, the access key is displayed.\n" - " -QueryApiName: bool\n" - " By default or if set to true, the name of the API is \n" - " displayed.\n" - " -QueryApiVersion: bool\n" - " By default or if set to true, the version of the API is \n" - " displayed.\n" - " -QueryCallName: bool\n" - " By default or if set to true, the name of the call is \n" + " --With.QueryApiName: bool\n" + " By default or if set to true, the name of the API is displayed.\n" + " --With.QueryApiVersion: bool\n" + " By default or if set to true, the version of the API is displayed.\n" + " --With.QueryCallName: bool\n" + " By default or if set to true, the name of the call is displayed.\n" + " --With.QueryDate: bool\n" + " By default or if set to true, the date of the call is displayed.\n" + " --With.QueryHeaderRaw: bool\n" + " By default or if set to true, the raw header of the HTTP request is \n" " displayed.\n" - " -QueryDate: bool\n" - " By default or if set to true, the date of the call is \n" - " displayed.\n" - " -QueryHeaderRaw: bool\n" - " By default or if set to true, the raw header of the HTTP \n" + " --With.QueryHeaderSize: bool\n" + " By default or if set to true, the size of the raw header of the HTTP \n" " request is displayed.\n" - " -QueryHeaderSize: bool\n" - " By default or if set to true, the size of the raw header of \n" - " the HTTP request is displayed.\n" - " -QueryIpAddress: bool\n" + " --With.QueryIpAddress: bool\n" " By default or if set to true, the IP is displayed.\n" - " -QueryPayloadRaw: bool\n" - " By default or if set to true, the raw payload of the HTTP \n" - " request is displayed.\n" - " -QueryPayloadSize: bool\n" - " By default or if set to true, the size of the raw payload of \n" - " the HTTP request is displayed.\n" - " -QueryUserAgent: bool\n" - " By default or if set to true, the user agent of the HTTP \n" + " --With.QueryPayloadRaw: bool\n" + " By default or if set to true, the raw payload of the HTTP request is \n" + " displayed.\n" + " --With.QueryPayloadSize: bool\n" + " By default or if set to true, the size of the raw payload of the HTTP \n" " request is displayed.\n" - " -RequestId: bool\n" + " --With.QueryUserAgent: bool\n" + " By default or if set to true, the user agent of the HTTP request is \n" + " displayed.\n" + " --With.RequestId: bool\n" " By default or if set to true, the request ID is displayed.\n" - " -ResponseSize: bool\n" - " By default or if set to true, the size of the response is \n" + " --With.ResponseSize: bool\n" + " By default or if set to true, the size of the response is displayed.\n" + " --With.ResponseStatusCode: bool\n" + " By default or if set to true, the HTTP status code of the response is \n" " displayed.\n" - " -ResponseStatusCode: bool\n" - " By default or if set to true, the HTTP status code of the \n" - " response is displayed.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersApiAccessRule\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersApiAccessRule\n" " One or more filters.\n" - " -ApiAccessRuleIds: array string\n" + " --Filters.ApiAccessRuleIds: array string\n" " One or more IDs of API access rules.\n" - " -CaIds: array string\n" + " --Filters.CaIds: array string\n" " One or more IDs of Client Certificate Authorities (CAs).\n" - " -Cns: array string\n" + " --Filters.Cns: array string\n" " One or more Client Certificate Common Names (CNs).\n" - " -Descriptions: array string\n" + " --Filters.Descriptions: array string\n" " One or more descriptions of API access rules.\n" - " -IpRanges: array string\n" + " --Filters.IpRanges: array string\n" " One or more IPs or CIDR blocks (for example, `192.0.2.0/16`).\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"VmId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--VmId: string\n" " The ID of the VM.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Filters: ref FiltersAccessKeys\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Filters: ref FiltersAccessKeys\n" " One or more filters.\n" - " -AccessKeyIds: array string\n" + " --Filters.AccessKeyIds: array string\n" " The IDs of the access keys.\n" - " -States: array string\n" + " --Filters.States: array string\n" " The states of the access keys (`ACTIVE` \\| `INACTIVE`).\n" -"UserName: string\n" - " The name of the EIM user. By default, the user who sends the request \n" - " (which can be the root account).\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"PolicyDocument: string\n" - " The policy document, corresponding to a JSON string that contains the \n" - " policy. For more information, see [EIM Reference \n" - " Information](https://docs.outscale.com/en/userguide/EIM-Reference-Inform\n" - " ation.html).\n" -"PolicyName: string\n" +"--UserName: string\n" + " The name of the EIM user. By default, the user who sends the request (which can be the root \n" + " account).\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--PolicyDocument: string\n" + " The policy document, corresponding to a JSON string that contains the policy. For more \n" + " information, see [EIM Reference \n" + " Information](https://docs.outscale.com/en/userguide/EIM-Reference-Information.html).\n" +"--PolicyName: string\n" " The name of the policy.\n" -"UserGroupName: string\n" +"--UserGroupName: string\n" " The name of the group.\n" -"UserGroupPath: string\n" +"--UserGroupPath: string\n" " The path to the group. If not specified, it is set to a slash (`/`).\n" , - "DeviceName: string\n" - " The name of the device. For a root device, you must use `/dev/sda1`. \n" - " For other volumes, you must use `/dev/sdX`, `/dev/sdXX`, `/dev/xvdX`, \n" - " or `/dev/xvdXX` (where the first `X` is a letter between `b` and `z`, \n" - " and the second `X` is a letter between `a` and `z`).\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"VmId: string\n" + "--DeviceName: string\n" + " The name of the device. For a root device, you must use `/dev/sda1`. For other volumes, you \n" + " must use `/dev/sdX`, `/dev/sdXX`, `/dev/xvdX`, or `/dev/xvdXX` (where the first `X` is a \n" + " letter between `b` and `z`, and the second `X` is a letter between `a` and `z`).\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--VmId: string\n" " The ID of the VM you want to attach the volume to.\n" -"VolumeId: string\n" +"--VolumeId: string\n" " The ID of the volume you want to attach.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"NetId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--NetId: string\n" " The ID of the Net to which you want to attach the virtual gateway.\n" -"VirtualGatewayId: string\n" +"--VirtualGatewayId: string\n" " The ID of the virtual gateway.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"RouteTableId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--RouteTableId: string\n" " The ID of the route table.\n" -"SubnetId: string\n" +"--SubnetId: string\n" " The ID of the Subnet.\n" , - "AllowRelink: bool\n" - " If true, allows the public IP to be associated with the VM or NIC that \n" - " you specify even if it is already associated with another VM or NIC. If \n" - " false, prevents the public IP from being associated with the VM or NIC \n" - " that you specify if it is already associated with another VM or NIC. \n" - " (By default, true in the public Cloud, false in a Net.)\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"NicId: string\n" - " (Net only) The ID of the NIC. This parameter is required if the VM has \n" - " more than one NIC attached. Otherwise, you need to specify the `VmId` \n" - " parameter instead. You cannot specify both parameters at the same time.\n" -"PrivateIp: string\n" - " (Net only) The primary or secondary private IP of the specified NIC. By \n" - " default, the primary private IP.\n" -"PublicIp: string\n" - " The public IP. This parameter is required unless you use the \n" - " `PublicIpId` parameter.\n" -"PublicIpId: string\n" - " The allocation ID of the public IP. This parameter is required unless \n" - " you use the `PublicIp` parameter.\n" -"VmId: string\n" - " The ID of the VM.\n- In the public Cloud, this parameter is \n" - " required.\n- In a Net, this parameter is required if the VM has only \n" - " one NIC. Otherwise, you need to specify the `NicId` parameter instead. \n" - " You cannot specify both parameters at the same time.\n" -, - "AllowRelink: bool\n" - " If true, allows an IP that is already assigned to another NIC in the \n" - " same Subnet to be assigned to the NIC you specified.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"NicId: string\n" + "--AllowRelink: bool\n" + " If true, allows the public IP to be associated with the VM or NIC that you specify even if \n" + " it is already associated with another VM or NIC. If false, prevents the public IP from \n" + " being associated with the VM or NIC that you specify if it is already associated with \n" + " another VM or NIC. (By default, true in the public Cloud, false in a Net.)\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--NicId: string\n" + " (Net only) The ID of the NIC. This parameter is required if the VM has more than one NIC \n" + " attached. Otherwise, you need to specify the `VmId` parameter instead. You cannot specify \n" + " both parameters at the same time.\n" +"--PrivateIp: string\n" + " (Net only) The primary or secondary private IP of the specified NIC. By default, the \n" + " primary private IP.\n" +"--PublicIp: string\n" + " The public IP. This parameter is required unless you use the `PublicIpId` parameter.\n" +"--PublicIpId: string\n" + " The allocation ID of the public IP. This parameter is required unless you use the \n" + " `PublicIp` parameter.\n" +"--VmId: string\n" + " The ID of the VM.\n- In the public Cloud, this parameter is required.\n- In a Net, this \n" + " parameter is required if the VM has only one NIC. Otherwise, you need to specify the \n" + " `NicId` parameter instead. You cannot specify both parameters at the same time.\n" +, + "--AllowRelink: bool\n" + " If true, allows an IP that is already assigned to another NIC in the same Subnet to be \n" + " assigned to the NIC you specified.\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--NicId: string\n" " The ID of the NIC.\n" -"PrivateIps: array string\n" - " The secondary private IP or IPs you want to assign to the NIC within \n" - " the IP range of the Subnet.\n" -"SecondaryPrivateIpCount: int\n" +"--PrivateIps: array string\n" + " The secondary private IP or IPs you want to assign to the NIC within the IP range of the \n" + " Subnet.\n" +"--SecondaryPrivateIpCount: int\n" " The number of secondary private IPs to assign to the NIC.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"PolicyOrn: string\n" - " The OUTSCALE Resource Name (ORN) of the policy. For more information, \n" - " see [Resource \n" - " Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifiers\n" - " .html).\n" -"UserName: string\n" - " The name of the user you want to link the policy to (between 1 and 64 \n" - " characters).\n" -, - "DeviceNumber: int\n" - " The index of the VM device for the NIC attachment (between `1` and `7`, \n" - " both included).\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"NicId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--PolicyOrn: string\n" + " The OUTSCALE Resource Name (ORN) of the policy. For more information, see [Resource \n" + " Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifiers.html).\n" +"--UserName: string\n" + " The name of the user you want to link the policy to (between 1 and 64 characters).\n" +, + "--DeviceNumber: int\n" + " The index of the VM device for the NIC attachment (between `1` and `7`, both included).\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--NicId: string\n" " The ID of the NIC you want to attach.\n" -"VmId: string\n" +"--VmId: string\n" " The ID of the VM to which you want to attach the NIC.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"PolicyOrn: string\n" - " The OUTSCALE Resource Name (ORN) of the policy. For more information, \n" - " see [Resource \n" - " Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifiers\n" - " .html).\n" -"UserGroupName: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--PolicyOrn: string\n" + " The OUTSCALE Resource Name (ORN) of the policy. For more information, see [Resource \n" + " Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifiers.html).\n" +"--UserGroupName: string\n" " The name of the group you want to link the policy to.\n" , - "BackendIps: array string\n" + "--BackendIps: array string\n" " One or more public IPs of backend VMs.\n" -"BackendVmIds: array string\n" +"--BackendVmIds: array string\n" " One or more IDs of backend VMs.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"LoadBalancerName: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--LoadBalancerName: string\n" " The name of the load balancer.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"InternetServiceId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--InternetServiceId: string\n" " The ID of the Internet service you want to attach.\n" -"NetId: string\n" +"--NetId: string\n" " The ID of the Net to which you want to attach the Internet service.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"FlexibleGpuId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--FlexibleGpuId: string\n" " The ID of the fGPU you want to attach.\n" -"VmId: string\n" +"--VmId: string\n" " The ID of the VM you want to attach the fGPU to.\n" , - "BackendVmIds: array string\n" + "--BackendVmIds: array string\n" " One or more IDs of backend VMs.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"LoadBalancerName: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--LoadBalancerName: string\n" " The name of the load balancer.\n" , - "DestinationIpRange: string\n" - " The network prefix of the route to delete, in CIDR notation (for \n" - " example, `10.12.0.0/16`).\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"VpnConnectionId: string\n" + "--DestinationIpRange: string\n" + " The network prefix of the route to delete, in CIDR notation (for example, `10.12.0.0/16`).\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--VpnConnectionId: string\n" " The ID of the target VPN connection of the static route to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"VpnConnectionId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--VpnConnectionId: string\n" " The ID of the VPN connection you want to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"VolumeId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--VolumeId: string\n" " The ID of the volume you want to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"VmIds: array string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--VmIds: array string\n" " One or more IDs of VMs.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"VmTemplateId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--VmTemplateId: string\n" " The ID of the VM template you want to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"VmGroupId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--VmGroupId: string\n" " The ID of the VM group you want to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"VirtualGatewayId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--VirtualGatewayId: string\n" " The ID of the virtual gateway you want to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"PolicyName: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--PolicyName: string\n" " The name of the policy document you want to delete.\n" -"UserGroupName: string\n" +"--UserGroupName: string\n" " The name of the group.\n" -"UserGroupPath: string\n" +"--UserGroupPath: string\n" " The path to the group. If not specified, it is set to a slash (`/`).\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Force: bool\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Force: bool\n" " If true, forces the deletion of the user group even if it is not empty.\n" -"Path: string\n" +"--Path: string\n" " The path to the group. If not specified, it is set to a slash (`/`).\n" -"UserGroupName: string\n" +"--UserGroupName: string\n" " The name of the group you want to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"UserName: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--UserName: string\n" " The name of the EIM user you want to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"ResourceIds: array string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--ResourceIds: array string\n" " One or more resource IDs.\n" -"Tags: array ref ResourceTag\n" - " One or more tags to delete (if you set a tag value, only the tags \n" - " matching exactly this value are deleted).\n" +"--Tags: array ref ResourceTag\n" + " One or more tags to delete (if you set a tag value, only the tags matching exactly this \n" + " value are deleted).\n" " Information about the tag.\n" - " -Key: string\n" + " --Tags.INDEX.Key: string\n" " The key of the tag, with a minimum of 1 character.\n" - " -Value: string\n" + " --Tags.INDEX.Value: string\n" " The value of the tag, between 0 and 255 characters.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"SubnetId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--SubnetId: string\n" " The ID of the Subnet you want to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"SnapshotId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--SnapshotId: string\n" " The ID of the snapshot you want to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Name: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Name: string\n" " The name of the server certificate you want to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Flow: string\n" - " The direction of the flow: `Inbound` or `Outbound`. You can specify \n" - " `Outbound` for Nets only.\n" -"FromPortRange: int\n" - " The beginning of the port range for the TCP and UDP protocols, or an \n" - " ICMP type number.\n" -"IpProtocol: string\n" - " The IP protocol name (`tcp`, `udp`, `icmp`, or `-1` for all protocols). \n" - " By default, `-1`. In a Net, this can also be an IP protocol number. For \n" - " more information, see the [IANA.org \n" - " website](https://www.iana.org/assignments/protocol-numbers/protocol-numb\n" - " ers.xhtml).\n" -"IpRange: string\n" - " The IP range for the security group rule, in CIDR notation (for \n" - " example, `10.0.0.0/16`).\n" -"Rules: array ref SecurityGroupRule\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Flow: string\n" + " The direction of the flow: `Inbound` or `Outbound`. You can specify `Outbound` for Nets \n" + " only.\n" +"--FromPortRange: int\n" + " The beginning of the port range for the TCP and UDP protocols, or an ICMP type number.\n" +"--IpProtocol: string\n" + " The IP protocol name (`tcp`, `udp`, `icmp`, or `-1` for all protocols). By default, `-1`. \n" + " In a Net, this can also be an IP protocol number. For more information, see the [IANA.org \n" + " website](https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml).\n" +"--IpRange: string\n" + " The IP range for the security group rule, in CIDR notation (for example, `10.0.0.0/16`).\n" +"--Rules: array ref SecurityGroupRule\n" " One or more rules you want to delete from the security group.\n" " Information about the security group rule.\n" - " -FromPortRange: int\n" - " The beginning of the port range for the TCP and UDP protocols, \n" - " or an ICMP type number.\n" - " -IpProtocol: string\n" - " The IP protocol name (`tcp`, `udp`, `icmp`, or `-1` for all \n" - " protocols). By default, `-1`. In a Net, this can also be an IP \n" - " protocol number. For more information, see the [IANA.org \n" - " website](https://www.iana.org/assignments/protocol-numbers/proto\n" - " col-numbers.xhtml).\n" - " -IpRanges: array string\n" - " One or more IP ranges for the security group rules, in CIDR \n" - " notation (for example, `10.0.0.0/16`).\n" - " -SecurityGroupsMembers: array ref SecurityGroupsMember\n" - " Information about one or more source or destination security \n" - " groups.\n" + " --Rules.INDEX.FromPortRange: int\n" + " The beginning of the port range for the TCP and UDP protocols, or an \n" + " ICMP type number.\n" + " --Rules.INDEX.IpProtocol: string\n" + " The IP protocol name (`tcp`, `udp`, `icmp`, or `-1` for all protocols). \n" + " By default, `-1`. In a Net, this can also be an IP protocol number. For \n" + " more information, see the [IANA.org \n" + " website](https://www.iana.org/assignments/protocol-numbers/protocol-number\n" + " s.xhtml).\n" + " --Rules.INDEX.IpRanges: array string\n" + " One or more IP ranges for the security group rules, in CIDR notation \n" + " (for example, `10.0.0.0/16`).\n" + " --Rules.INDEX.SecurityGroupsMembers: array ref SecurityGroupsMember\n" + " Information about one or more source or destination security groups.\n" " Information about a source or destination security group.\n" - " -AccountId: string\n" - " The account ID that owns the source or destination security \n" - " group.\n" - " -SecurityGroupId: string\n" - " The ID of a source or destination security group that you want \n" - " to link to the security group of the rule.\n" - " -SecurityGroupName: string\n" - " (Public Cloud only) The name of a source or destination \n" - " security group that you want to link to the security group of \n" - " the rule.\n" - " -ServiceIds: array string\n" - " One or more service IDs to allow traffic from a Net to access \n" - " the corresponding OUTSCALE services. For more information, see \n" + " --Rules.INDEX.SecurityGroupsMembers.INDEX.AccountId: string\n" + " The account ID that owns the source or destination security group.\n" + " --Rules.INDEX.SecurityGroupsMembers.INDEX.SecurityGroupId: string\n" + " The ID of a source or destination security group that you want to link \n" + " to the security group of the rule.\n" + " --Rules.INDEX.SecurityGroupsMembers.INDEX.SecurityGroupName: string\n" + " (Public Cloud only) The name of a source or destination security group \n" + " that you want to link to the security group of the rule.\n" + " --Rules.INDEX.ServiceIds: array string\n" + " One or more service IDs to allow traffic from a Net to access the \n" + " corresponding OUTSCALE services. For more information, see \n" " [ReadNetAccessPointServices](#readnetaccesspointservices).\n" - " -ToPortRange: int\n" - " The end of the port range for the TCP and UDP protocols, or an \n" - " ICMP code number.\n" -"SecurityGroupAccountIdToUnlink: string\n" - " The account ID of the owner of the security group you want to delete a \n" - " rule from.\n" -"SecurityGroupId: string\n" + " --Rules.INDEX.ToPortRange: int\n" + " The end of the port range for the TCP and UDP protocols, or an ICMP code \n" + " number.\n" +"--SecurityGroupAccountIdToUnlink: string\n" + " The account ID of the owner of the security group you want to delete a rule from.\n" +"--SecurityGroupId: string\n" " The ID of the security group you want to delete a rule from.\n" -"SecurityGroupNameToUnlink: string\n" - " The ID of the source security group. If you are in the Public Cloud, \n" - " you can also specify the name of the source security group.\n" -"ToPortRange: int\n" - " The end of the port range for the TCP and UDP protocols, or an ICMP \n" - " code number.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"SecurityGroupId: string\n" +"--SecurityGroupNameToUnlink: string\n" + " The ID of the source security group. If you are in the Public Cloud, you can also specify \n" + " the name of the source security group.\n" +"--ToPortRange: int\n" + " The end of the port range for the TCP and UDP protocols, or an ICMP code number.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--SecurityGroupId: string\n" " The ID of the security group you want to delete.\n" -"SecurityGroupName: string\n" +"--SecurityGroupName: string\n" " The name of the security group.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"RouteTableId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--RouteTableId: string\n" " The ID of the route table you want to delete.\n" , - "DestinationIpRange: string\n" + "--DestinationIpRange: string\n" " The exact IP range for the route.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"RouteTableId: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--RouteTableId: string\n" " The ID of the route table from which you want to delete a route.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"PublicIp: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--PublicIp: string\n" " The public IP. In the public Cloud, this parameter is required.\n" -"PublicIpId: string\n" - " The ID representing the association of the public IP with the VM or the \n" - " NIC. In a Net, this parameter is required.\n" +"--PublicIpId: string\n" + " The ID representing the association of the public IP with the VM or the NIC. In a Net, this \n" + " parameter is required.\n" +, + "--PolicyOrn: string\n" + " The OUTSCALE Resource Name (ORN) of the policy. For more information, see [Resource \n" + " Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifiers.html).\n" +"--VersionId: string\n" + " The ID of the version of the policy you want to delete.\n" , - "PolicyOrn: string\n" - " The OUTSCALE Resource Name (ORN) of the policy. For more information, \n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--PolicyOrn: string\n" + " The OUTSCALE Resource Name (ORN) of the policy you want to delete. For more information, \n" " see [Resource \n" - " Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifiers\n" - " .html).\n" -"VersionId: string\n" - " The ID of the version of the policy you want to delete.\n" + " Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifiers.html).\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"PolicyOrn: string\n" - " The OUTSCALE Resource Name (ORN) of the policy you want to delete. For \n" - " more information, see [Resource \n" - " Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifiers\n" - " .html).\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"NicId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--NicId: string\n" " The ID of the NIC you want to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"NetPeeringId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--NetPeeringId: string\n" " The ID of the Net peering you want to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"NetAccessPointId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--NetAccessPointId: string\n" " The ID of the Net access point.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"NetId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--NetId: string\n" " The ID of the Net you want to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"NatServiceId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--NatServiceId: string\n" " The ID of the NAT service you want to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"LoadBalancerNames: array string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--LoadBalancerNames: array string\n" " One or more load balancer names.\n" -"Tags: array ref ResourceLoadBalancerTag\n" +"--Tags: array ref ResourceLoadBalancerTag\n" " One or more tags to delete from the load balancers.\n" " Information about the tag.\n" - " -Key: string\n" + " --Tags.INDEX.Key: string\n" " The key of the tag, with a minimum of 1 character.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"LoadBalancerName: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--LoadBalancerName: string\n" " The name of the load balancer for which you want to delete a policy.\n" -"PolicyName: string\n" +"--PolicyName: string\n" " The name of the policy you want to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"LoadBalancerName: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--LoadBalancerName: string\n" " The name of the load balancer for which you want to delete listeners.\n" -"LoadBalancerPorts: array integer\n" +"--LoadBalancerPorts: array integer\n" " One or more port numbers of the listeners you want to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"LoadBalancerName: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--LoadBalancerName: string\n" " The name of the load balancer you want to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"ListenerRuleName: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--ListenerRuleName: string\n" " The name of the rule you want to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"KeypairName: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--KeypairName: string\n" " The name of the keypair you want to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"InternetServiceId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--InternetServiceId: string\n" " The ID of the Internet service you want to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"ImageId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--ImageId: string\n" " The ID of the OMI you want to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"FlexibleGpuId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--FlexibleGpuId: string\n" " The ID of the fGPU you want to delete.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"ExportTaskId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--ExportTaskId: string\n" " The ID of the export task to delete.\n" , - "DirectLinkInterfaceId: string\n" + "--DirectLinkInterfaceId: string\n" " The ID of the DirectLink interface you want to delete.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" , - "DirectLinkId: string\n" + "--DirectLinkId: string\n" " The ID of the DirectLink you want to delete.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" , - "DhcpOptionsSetId: string\n" + "--DhcpOptionsSetId: string\n" " The ID of the DHCP options set you want to delete.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" , - "DedicatedGroupId: string\n" + "--DedicatedGroupId: string\n" " The ID of the dedicated group you want to delete.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Force: bool\n" - " If true, forces the deletion of the dedicated group and all its \n" - " dependencies.\n" -, - "ClientGatewayId: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Force: bool\n" + " If true, forces the deletion of the dedicated group and all its dependencies.\n" +, + "--ClientGatewayId: string\n" " The ID of the client gateway you want to delete.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" , - "CaId: string\n" + "--CaId: string\n" " The ID of the CA you want to delete.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" , - "ApiAccessRuleId: string\n" + "--ApiAccessRuleId: string\n" " The ID of the API access rule you want to delete.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" , - "AccessKeyId: string\n" + "--AccessKeyId: string\n" " The ID of the access key you want to delete.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"UserName: string\n" - " The name of the EIM user the access key you want to delete is \n" - " associated with. By default, the user who sends the request (which can \n" - " be the root account).\n" -, - "DestinationIpRange: string\n" - " The network prefix of the route, in CIDR notation (for example, \n" - " `10.12.0.0/16`).\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"VpnConnectionId: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--UserName: string\n" + " The name of the EIM user the access key you want to delete is associated with. By default, \n" + " the user who sends the request (which can be the root account).\n" +, + "--DestinationIpRange: string\n" + " The network prefix of the route, in CIDR notation (for example, `10.12.0.0/16`).\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--VpnConnectionId: string\n" " The ID of the target VPN connection of the static route.\n" , - "ClientGatewayId: string\n" + "--ClientGatewayId: string\n" " The ID of the client gateway.\n" -"ConnectionType: string\n" +"--ConnectionType: string\n" " The type of VPN connection (only `ipsec.1` is supported).\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"StaticRoutesOnly: bool\n" - " By default or if false, the VPN connection uses dynamic routing with \n" - " Border Gateway Protocol (BGP). If true, routing is controlled using \n" - " static routes. For more information about how to create and delete \n" - " static routes, see \n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--StaticRoutesOnly: bool\n" + " By default or if false, the VPN connection uses dynamic routing with Border Gateway \n" + " Protocol (BGP). If true, routing is controlled using static routes. For more information \n" + " about how to create and delete static routes, see \n" " [CreateVpnConnectionRoute](#createvpnconnectionroute) and \n" " [DeleteVpnConnectionRoute](#deletevpnconnectionroute).\n" -"VirtualGatewayId: string\n" +"--VirtualGatewayId: string\n" " The ID of the virtual gateway.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Iops: int\n" - " The number of I/O operations per second (IOPS). This parameter must be \n" - " specified only if you create an `io1` volume. The maximum number of \n" - " IOPS allowed for `io1` volumes is `13000` with a maximum performance \n" - " ratio of 300 IOPS per gibibyte.\n" -"Size: int\n" - " The size of the volume, in gibibytes (GiB). The maximum allowed size \n" - " for a volume is 14901 GiB. This parameter is required if the volume is \n" - " not created from a snapshot (`SnapshotId` unspecified).\n" -"SnapshotId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Iops: int\n" + " The number of I/O operations per second (IOPS). This parameter must be specified only if \n" + " you create an `io1` volume. The maximum number of IOPS allowed for `io1` volumes is `13000` \n" + " with a maximum performance ratio of 300 IOPS per gibibyte.\n" +"--Size: int\n" + " The size of the volume, in gibibytes (GiB). The maximum allowed size for a volume is 14901 \n" + " GiB. This parameter is required if the volume is not created from a snapshot (`SnapshotId` \n" + " unspecified).\n" +"--SnapshotId: string\n" " The ID of the snapshot from which you want to create the volume.\n" -"SubregionName: string\n" +"--SubregionName: string\n" " The Subregion in which you want to create the volume.\n" -"VolumeType: string\n" - " The type of volume you want to create (`io1` \\| `gp2` \\| `standard`). \n" - " If not specified, a `standard` volume is created.\nFor more information \n" - " about volume types, see [About Volumes > Volume Types and \n" - " IOPS](https://docs.outscale.com/en/userguide/About-Volumes.html#_volume_\n" - " types_and_iops).\n" -, - "BlockDeviceMappings: array ref BlockDeviceMappingVmCreation\n" +"--VolumeType: string\n" + " The type of volume you want to create (`io1` \\| `gp2` \\| `standard`). If not specified, a \n" + " `standard` volume is created.\nFor more information about volume types, see [About Volumes \n" + " > Volume Types and \n" + " IOPS](https://docs.outscale.com/en/userguide/About-Volumes.html#_volume_types_and_iops).\n" +, + "--BlockDeviceMappings: array ref BlockDeviceMappingVmCreation\n" " One or more block device mappings.\n" " Information about the block device mapping.\n" - " -Bsu: ref BsuToCreate\n" + " --BlockDeviceMappings.INDEX.Bsu: ref BsuToCreate\n" " Information about the BSU volume to create.\n" - " -DeleteOnVmDeletion: bool\n" - " By default or if set to true, the volume is deleted when \n" - " terminating the VM. If false, the volume is not deleted when \n" - " terminating the VM.\n" - " -Iops: int\n" - " The number of I/O operations per second (IOPS). This parameter \n" - " must be specified only if you create an `io1` volume. The \n" - " maximum number of IOPS allowed for `io1` volumes is `13000` \n" - " with a maximum performance ratio of 300 IOPS per gibibyte.\n" - " -SnapshotId: string\n" + " --BlockDeviceMappings.INDEX.Bsu.DeleteOnVmDeletion: bool\n" + " By default or if set to true, the volume is deleted when terminating the \n" + " VM. If false, the volume is not deleted when terminating the VM.\n" + " --BlockDeviceMappings.INDEX.Bsu.Iops: int\n" + " The number of I/O operations per second (IOPS). This parameter must be \n" + " specified only if you create an `io1` volume. The maximum number of IOPS \n" + " allowed for `io1` volumes is `13000` with a maximum performance ratio of \n" + " 300 IOPS per gibibyte.\n" + " --BlockDeviceMappings.INDEX.Bsu.SnapshotId: string\n" " The ID of the snapshot used to create the volume.\n" - " -VolumeSize: int\n" - " The size of the volume, in gibibytes (GiB).\nIf you \n" - " specify a snapshot ID, the volume size must be at least equal \n" - " to the snapshot size.\nIf you specify a snapshot ID but \n" - " no volume size, the volume is created with a size similar to \n" - " the snapshot one.\n" - " -VolumeType: string\n" - " The type of the volume (`standard` \\| `io1` \\| `gp2`). If \n" - " not specified in the request, a `standard` volume is \n" - " created.\nFor more information about volume types, see \n" - " [About Volumes > Volume Types and \n" - " IOPS](https://docs.outscale.com/en/userguide/About-Volumes.html#\n" - " _volume_types_and_iops).\n" - " -DeviceName: string\n" - " The device name for the volume. For a root device, you must \n" - " use `/dev/sda1`. For other volumes, you must use `/dev/sdX`, \n" - " `/dev/sdXX`, `/dev/xvdX`, or `/dev/xvdXX` (where the first `X` \n" - " is a letter between `b` and `z`, and the second `X` is a letter \n" - " between `a` and `z`).\n" - " -NoDevice: string\n" - " Removes the device which is included in the block device \n" - " mapping of the OMI.\n" - " -VirtualDeviceName: string\n" + " --BlockDeviceMappings.INDEX.Bsu.VolumeSize: int\n" + " The size of the volume, in gibibytes (GiB).\nIf you specify a \n" + " snapshot ID, the volume size must be at least equal to the snapshot \n" + " size.\nIf you specify a snapshot ID but no volume size, the volume \n" + " is created with a size similar to the snapshot one.\n" + " --BlockDeviceMappings.INDEX.Bsu.VolumeType: string\n" + " The type of the volume (`standard` \\| `io1` \\| `gp2`). If not \n" + " specified in the request, a `standard` volume is created.\nFor more \n" + " information about volume types, see [About Volumes > Volume Types and \n" + " IOPS](https://docs.outscale.com/en/userguide/About-Volumes.html#_volume_ty\n" + " pes_and_iops).\n" + " --BlockDeviceMappings.INDEX.DeviceName: string\n" + " The device name for the volume. For a root device, you must use \n" + " `/dev/sda1`. For other volumes, you must use `/dev/sdX`, `/dev/sdXX`, \n" + " `/dev/xvdX`, or `/dev/xvdXX` (where the first `X` is a letter between `b` \n" + " and `z`, and the second `X` is a letter between `a` and `z`).\n" + " --BlockDeviceMappings.INDEX.NoDevice: string\n" + " Removes the device which is included in the block device mapping of the \n" + " OMI.\n" + " --BlockDeviceMappings.INDEX.VirtualDeviceName: string\n" " The name of the virtual device (`ephemeralN`).\n" -"BootOnCreation: bool\n" - " By default or if true, the VM is started on creation. If false, the VM \n" - " is stopped on creation.\n" -"BsuOptimized: bool\n" - " This parameter is not available. It is present in our API for the sake \n" - " of historical compatibility with AWS.\n" -"ClientToken: string\n" +"--BootOnCreation: bool\n" + " By default or if true, the VM is started on creation. If false, the VM is stopped on \n" + " creation.\n" +"--BsuOptimized: bool\n" + " This parameter is not available. It is present in our API for the sake of historical \n" + " compatibility with AWS.\n" +"--ClientToken: string\n" " A unique identifier which enables you to manage the idempotency.\n" -"DeletionProtection: bool\n" - " If true, you cannot delete the VM unless you change this parameter back \n" - " to false.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"ImageId: string\n" - " The ID of the OMI used to create the VM. You can find the list of OMIs \n" - " by calling the [ReadImages](#readimages) method.\n" -"KeypairName: string\n" +"--DeletionProtection: bool\n" + " If true, you cannot delete the VM unless you change this parameter back to false.\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--ImageId: string\n" + " The ID of the OMI used to create the VM. You can find the list of OMIs by calling the \n" + " [ReadImages](#readimages) method.\n" +"--KeypairName: string\n" " The name of the keypair.\n" -"MaxVmsCount: int\n" - " The maximum number of VMs you want to create. If all the VMs cannot be \n" - " created, the largest possible number of VMs above MinVmsCount is \n" - " created.\n" -"MinVmsCount: int\n" - " The minimum number of VMs you want to create. If this number of VMs \n" - " cannot be created, no VMs are created.\n" -"NestedVirtualization: bool\n" - " (dedicated tenancy only) If true, nested virtualization is enabled. If \n" - " false, it is disabled.\n" -"Nics: array ref NicForVmCreation\n" - " One or more NICs. If you specify this parameter, you must not specify \n" - " the `SubnetId` and `SubregionName` parameters. You also must define one \n" - " NIC as the primary network interface of the VM with `0` as its device \n" - " number.\n" - " Information about the network interface card (NIC) when \n" - " creating a virtual machine (VM).\n" - " -DeleteOnVmDeletion: bool\n" - " If true, the NIC is deleted when the VM is terminated. You can \n" - " specify this parameter only for a new NIC. To modify this value \n" - " for an existing NIC, see [UpdateNic](#updatenic).\n" - " -Description: string\n" - " The description of the NIC, if you are creating a NIC when \n" +"--MaxVmsCount: int\n" + " The maximum number of VMs you want to create. If all the VMs cannot be created, the largest \n" + " possible number of VMs above MinVmsCount is created.\n" +"--MinVmsCount: int\n" + " The minimum number of VMs you want to create. If this number of VMs cannot be created, no \n" + " VMs are created.\n" +"--NestedVirtualization: bool\n" + " (dedicated tenancy only) If true, nested virtualization is enabled. If false, it is \n" + " disabled.\n" +"--Nics: array ref NicForVmCreation\n" + " One or more NICs. If you specify this parameter, you must not specify the `SubnetId` and \n" + " `SubregionName` parameters. You also must define one NIC as the primary network interface \n" + " of the VM with `0` as its device number.\n" + " Information about the network interface card (NIC) when creating a \n" + " virtual machine (VM).\n" + " --Nics.INDEX.DeleteOnVmDeletion: bool\n" + " If true, the NIC is deleted when the VM is terminated. You can specify \n" + " this parameter only for a new NIC. To modify this value for an existing \n" + " NIC, see [UpdateNic](#updatenic).\n" + " --Nics.INDEX.Description: string\n" + " The description of the NIC, if you are creating a NIC when creating the \n" + " VM.\n" + " --Nics.INDEX.DeviceNumber: int\n" + " The index of the VM device for the NIC attachment (between `0` and `7`, \n" + " both included). This parameter is required if you create a NIC when \n" " creating the VM.\n" - " -DeviceNumber: int\n" - " The index of the VM device for the NIC attachment (between `0` \n" - " and `7`, both included). This parameter is required if you \n" - " create a NIC when creating the VM.\n" - " -NicId: string\n" - " The ID of the NIC, if you are attaching an existing NIC when \n" - " creating a VM.\n" - " -PrivateIps: array ref PrivateIpLight\n" - " One or more private IPs to assign to the NIC, if you create a \n" - " NIC when creating a VM. Only one private IP can be the primary \n" - " private IP.\n" + " --Nics.INDEX.NicId: string\n" + " The ID of the NIC, if you are attaching an existing NIC when creating a \n" + " VM.\n" + " --Nics.INDEX.PrivateIps: array ref PrivateIpLight\n" + " One or more private IPs to assign to the NIC, if you create a NIC when \n" + " creating a VM. Only one private IP can be the primary private IP.\n" " Information about the private IP.\n" - " -IsPrimary: bool\n" + " --Nics.INDEX.PrivateIps.INDEX.IsPrimary: bool\n" " If true, the IP is the primary private IP of the NIC.\n" - " -PrivateIp: string\n" + " --Nics.INDEX.PrivateIps.INDEX.PrivateIp: string\n" " The private IP of the NIC.\n" - " -SecondaryPrivateIpCount: int\n" - " The number of secondary private IPs, if you create a NIC when \n" - " creating a VM. This parameter cannot be specified if you \n" - " specified more than one private IP in the `PrivateIps` \n" - " parameter.\n" - " -SecurityGroupIds: array string\n" - " One or more IDs of security groups for the NIC, if you create \n" - " a NIC when creating a VM.\n" - " -SubnetId: string\n" - " The ID of the Subnet for the NIC, if you create a NIC when \n" - " creating a VM. This parameter is required if you create a NIC \n" - " when creating the VM.\n" -"Performance: string\n" - " The performance of the VM (`medium` \\| `high` \\| `highest`). By \n" - " default, `high`. This parameter is ignored if you specify a performance \n" - " flag directly in the `VmType` parameter.\n" -"Placement: ref Placement\n" + " --Nics.INDEX.SecondaryPrivateIpCount: int\n" + " The number of secondary private IPs, if you create a NIC when creating a \n" + " VM. This parameter cannot be specified if you specified more than one \n" + " private IP in the `PrivateIps` parameter.\n" + " --Nics.INDEX.SecurityGroupIds: array string\n" + " One or more IDs of security groups for the NIC, if you create a NIC when \n" + " creating a VM.\n" + " --Nics.INDEX.SubnetId: string\n" + " The ID of the Subnet for the NIC, if you create a NIC when creating a \n" + " VM. This parameter is required if you create a NIC when creating the VM.\n" +"--Performance: string\n" + " The performance of the VM (`medium` \\| `high` \\| `highest`). By default, `high`. This \n" + " parameter is ignored if you specify a performance flag directly in the `VmType` parameter.\n" +"--Placement: ref Placement\n" " Information about the placement of the VM.\n" - " -SubregionName: string\n" - " The name of the Subregion. If you specify this parameter, you \n" - " must not specify the `Nics` parameter.\n" - " -Tenancy: string\n" - " The tenancy of the VM (`default`, `dedicated`, or a dedicated \n" - " group ID).\n" -"PrivateIps: array string\n" + " --Placement.SubregionName: string\n" + " The name of the Subregion. If you specify this parameter, you must not \n" + " specify the `Nics` parameter.\n" + " --Placement.Tenancy: string\n" + " The tenancy of the VM (`default`, `dedicated`, or a dedicated group ID).\n" +"--PrivateIps: array string\n" " One or more private IPs of the VM.\n" -"SecurityGroupIds: array string\n" +"--SecurityGroupIds: array string\n" " One or more IDs of security group for the VMs.\n" -"SecurityGroups: array string\n" +"--SecurityGroups: array string\n" " One or more names of security groups for the VMs.\n" -"SubnetId: string\n" - " The ID of the Subnet in which you want to create the VM. If you specify \n" - " this parameter, you must not specify the `Nics` parameter.\n" -"UserData: string\n" - " Data or script used to add a specific configuration to the VM. It must \n" - " be Base64-encoded and is limited to 500 kibibytes (KiB).\n" -"VmInitiatedShutdownBehavior: string\n" - " The VM behavior when you stop it. By default or if set to `stop`, the \n" - " VM stops. If set to `restart`, the VM stops then automatically \n" - " restarts. If set to `terminate`, the VM stops and is terminated.\n" -"VmType: string\n" - " The type of VM. You can specify a TINA type (in the `tinavW.cXrYpZ` or \n" - " `tinavW.cXrY` format), or an AWS type (for example, `t2.small`, which \n" - " is the default value).\nIf you specify an AWS type, it is converted in \n" - " the background to its corresponding TINA type, but the AWS type is \n" - " still returned. If the specified or converted TINA type includes a \n" - " performance flag, this performance flag is applied regardless of the \n" - " value you may have provided in the `Performance` parameter. For more \n" - " information, see [VM \n" +"--SubnetId: string\n" + " The ID of the Subnet in which you want to create the VM. If you specify this parameter, you \n" + " must not specify the `Nics` parameter.\n" +"--UserData: string\n" + " Data or script used to add a specific configuration to the VM. It must be Base64-encoded \n" + " and is limited to 500 kibibytes (KiB).\n" +"--VmInitiatedShutdownBehavior: string\n" + " The VM behavior when you stop it. By default or if set to `stop`, the VM stops. If set to \n" + " `restart`, the VM stops then automatically restarts. If set to `terminate`, the VM stops \n" + " and is terminated.\n" +"--VmType: string\n" + " The type of VM. You can specify a TINA type (in the `tinavW.cXrYpZ` or `tinavW.cXrY` \n" + " format), or an AWS type (for example, `t2.small`, which is the default value).\nIf you \n" + " specify an AWS type, it is converted in the background to its corresponding TINA type, but \n" + " the AWS type is still returned. If the specified or converted TINA type includes a \n" + " performance flag, this performance flag is applied regardless of the value you may have \n" + " provided in the `Performance` parameter. For more information, see [VM \n" " Types](https://docs.outscale.com/en/userguide/VM-Types.html).\n" , - "CpuCores: int\n" + "--CpuCores: int\n" " The number of vCores to use for each VM.\n" -"CpuGeneration: string\n" +"--CpuGeneration: string\n" " The processor generation to use for each VM (for example, `v4`).\n" -"CpuPerformance: string\n" +"--CpuPerformance: string\n" " The performance of the VMs (`medium` \\| `high` \\| `highest`).\n" -"Description: string\n" +"--Description: string\n" " A description for the VM template.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"ImageId: string\n" - " The ID of the OMI to use for each VM. You can find a list of OMIs by \n" - " calling the [ReadImages](#readimages) method.\n" -"KeypairName: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--ImageId: string\n" + " The ID of the OMI to use for each VM. You can find a list of OMIs by calling the \n" + " [ReadImages](#readimages) method.\n" +"--KeypairName: string\n" " The name of the keypair to use for each VM.\n" -"Ram: int\n" +"--Ram: int\n" " The amount of RAM to use for each VM.\n" -"Tags: array ref ResourceTag\n" +"--Tags: array ref ResourceTag\n" " One or more tags to add to the VM template.\n" " Information about the tag.\n" - " -Key: string\n" + " --Tags.INDEX.Key: string\n" " The key of the tag, with a minimum of 1 character.\n" - " -Value: string\n" + " --Tags.INDEX.Value: string\n" " The value of the tag, between 0 and 255 characters.\n" -"VmTemplateName: string\n" +"--VmTemplateName: string\n" " The name of the VM template.\n" , - "Description: string\n" + "--Description: string\n" " A description for the VM group.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"PositioningStrategy: string\n" - " The positioning strategy of VMs on hypervisors. By default, or if set \n" - " to `no-strategy` our orchestrator determines the most adequate position \n" - " for your VMs. If set to `attract`, your VMs are deployed on the same \n" - " hypervisor, which improves network performance. If set to `repulse`, \n" - " your VMs are deployed on a different hypervisor, which improves fault \n" - " tolerance.\n" -"SecurityGroupIds: array string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--PositioningStrategy: string\n" + " The positioning strategy of VMs on hypervisors. By default, or if set to `no-strategy` our \n" + " orchestrator determines the most adequate position for your VMs. If set to `attract`, your \n" + " VMs are deployed on the same hypervisor, which improves network performance. If set to \n" + " `repulse`, your VMs are deployed on a different hypervisor, which improves fault tolerance.\n" +"--SecurityGroupIds: array string\n" " One or more IDs of security groups for the VM group.\n" -"SubnetId: string\n" +"--SubnetId: string\n" " The ID of the Subnet in which you want to create the VM group.\n" -"Tags: array ref ResourceTag\n" +"--Tags: array ref ResourceTag\n" " One or more tags to add to the VM group.\n" " Information about the tag.\n" - " -Key: string\n" + " --Tags.INDEX.Key: string\n" " The key of the tag, with a minimum of 1 character.\n" - " -Value: string\n" + " --Tags.INDEX.Value: string\n" " The value of the tag, between 0 and 255 characters.\n" -"VmCount: int\n" +"--VmCount: int\n" " The number of VMs deployed in the VM group.\n" -"VmGroupName: string\n" +"--VmGroupName: string\n" " The name of the VM group.\n" -"VmTemplateId: string\n" +"--VmTemplateId: string\n" " The ID of the VM template used to launch VMs in the VM group.\n" , - "ConnectionType: string\n" - " The type of VPN connection supported by the virtual gateway (only \n" - " `ipsec.1` is supported).\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Path: string\n" + "--ConnectionType: string\n" + " The type of VPN connection supported by the virtual gateway (only `ipsec.1` is supported).\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Path: string\n" " The path to the group. If not specified, it is set to a slash (`/`).\n" -"UserGroupName: string\n" +"--UserGroupName: string\n" " The name of the group.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Path: string\n" - " The path to the EIM user you want to create (by default, `/`). This \n" - " path name must begin and end with a slash (`/`), and contain between 1 \n" - " and 512 alphanumeric characters and/or slashes (`/`), or underscores \n" - " (_).\n" -"UserName: string\n" - " The name of the EIM user. This user name must contain between 1 and 64 \n" - " alphanumeric characters and/or pluses (+), equals (=), commas (,), \n" - " periods (.), at signs (@), dashes (-), or underscores (_).\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"ResourceIds: array string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Path: string\n" + " The path to the EIM user you want to create (by default, `/`). This path name must begin \n" + " and end with a slash (`/`), and contain between 1 and 512 alphanumeric characters and/or \n" + " slashes (`/`), or underscores (_).\n" +"--UserName: string\n" + " The name of the EIM user. This user name must contain between 1 and 64 alphanumeric \n" + " characters and/or pluses (+), equals (=), commas (,), periods (.), at signs (@), dashes \n" + " (-), or underscores (_).\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--ResourceIds: array string\n" " One or more resource IDs.\n" -"Tags: array ref ResourceTag\n" +"--Tags: array ref ResourceTag\n" " One or more tags to add to the specified resources.\n" " Information about the tag.\n" - " -Key: string\n" + " --Tags.INDEX.Key: string\n" " The key of the tag, with a minimum of 1 character.\n" - " -Value: string\n" + " --Tags.INDEX.Value: string\n" " The value of the tag, between 0 and 255 characters.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"IpRange: string\n" - " The IP range in the Subnet, in CIDR notation (for example, \n" - " `10.0.0.0/16`).\nThe IP range of the Subnet can be either the same as \n" - " the Net one if you create only a single Subnet in this Net, or a subset \n" - " of the Net one. In case of several Subnets in a Net, their IP ranges \n" - " must not overlap. The smallest Subnet you can create uses a /29 netmask \n" - " (eight IPs). For more information, see [About \n" - " Nets](https://docs.outscale.com/en/userguide/About-Nets.html).\n" -"NetId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--IpRange: string\n" + " The IP range in the Subnet, in CIDR notation (for example, `10.0.0.0/16`).\nThe IP range of \n" + " the Subnet can be either the same as the Net one if you create only a single Subnet in this \n" + " Net, or a subset of the Net one. In case of several Subnets in a Net, their IP ranges must \n" + " not overlap. The smallest Subnet you can create uses a /29 netmask (eight IPs). For more \n" + " information, see [About Nets](https://docs.outscale.com/en/userguide/About-Nets.html).\n" +"--NetId: string\n" " The ID of the Net for which you want to create a Subnet.\n" -"SubregionName: string\n" +"--SubregionName: string\n" " The name of the Subregion in which you want to create the Subnet.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"OsuExport: ref OsuExportToCreate\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--OsuExport: ref OsuExportToCreate\n" " Information about the OOS export task to create.\n" - " -DiskImageFormat: string\n" + " --OsuExport.DiskImageFormat: string\n" " The format of the export disk (`qcow2` \\| `raw`).\n" - " -OsuApiKey: ref OsuApiKey\n" + " --OsuExport.OsuApiKey: ref OsuApiKey\n" " Information about the OOS API key.\n" - " -ApiKeyId: string\n" - " The API key of the OOS account that enables you to access the \n" - " bucket.\n" - " -SecretKey: string\n" - " The secret key of the OOS account that enables you to access \n" - " the bucket.\n" - " -OsuBucket: string\n" - " The name of the OOS bucket where you want to export the \n" - " object.\n" - " -OsuManifestUrl: string\n" + " --OsuExport.OsuApiKey.ApiKeyId: string\n" + " The API key of the OOS account that enables you to access the bucket.\n" + " --OsuExport.OsuApiKey.SecretKey: string\n" + " The secret key of the OOS account that enables you to access the bucket.\n" + " --OsuExport.OsuBucket: string\n" + " The name of the OOS bucket where you want to export the object.\n" + " --OsuExport.OsuManifestUrl: string\n" " The URL of the manifest file.\n" - " -OsuPrefix: string\n" + " --OsuExport.OsuPrefix: string\n" " The prefix for the key of the OOS object.\n" -"SnapshotId: string\n" +"--SnapshotId: string\n" " The ID of the snapshot to export.\n" , - "Description: string\n" + "--Description: string\n" " A description for the snapshot.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"FileLocation: string\n" - " **(when importing from a bucket)** The pre-signed URL of the snapshot \n" - " you want to import, or the normal URL of the snapshot if you have \n" - " permission on the OOS bucket. For more information, see [Configuring a \n" - " Pre-signed \n" - " URL](https://docs.outscale.com/en/userguide/Configuring-a-Pre-signed-URL\n" - " .html) or [Managing Access to Your Buckets and \n" - " Objects](https://docs.outscale.com/en/userguide/Managing-Access-to-Your-\n" - " Buckets-and-Objects.html).\n" -"SnapshotSize: int\n" - " **(when importing from a bucket)** The size of the snapshot you want to \n" - " create in your account, in bytes. This size must be greater than or \n" - " equal to the size of the original, uncompressed snapshot.\n" -"SourceRegionName: string\n" - " **(when copying a snapshot)** The name of the source Region, which must \n" - " be the same as the Region of your account.\n" -"SourceSnapshotId: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--FileLocation: string\n" + " **(when importing from a bucket)** The pre-signed URL of the snapshot you want to import, \n" + " or the normal URL of the snapshot if you have permission on the OOS bucket. For more \n" + " information, see [Configuring a Pre-signed \n" + " URL](https://docs.outscale.com/en/userguide/Configuring-a-Pre-signed-URL.html) or [Managing \n" + " Access to Your Buckets and \n" + " Objects](https://docs.outscale.com/en/userguide/Managing-Access-to-Your-Buckets-and-Objects.\n" + " html).\n" +"--SnapshotSize: int\n" + " **(when importing from a bucket)** The size of the snapshot you want to create in your \n" + " account, in bytes. This size must be greater than or equal to the size of the original, \n" + " uncompressed snapshot.\n" +"--SourceRegionName: string\n" + " **(when copying a snapshot)** The name of the source Region, which must be the same as the \n" + " Region of your account.\n" +"--SourceSnapshotId: string\n" " **(when copying a snapshot)** The ID of the snapshot you want to copy.\n" -"VolumeId: string\n" - " **(when creating from a volume)** The ID of the volume you want to \n" - " create a snapshot of.\n" -, - "Body: string\n" - " The PEM-encoded X509 certificate.With OSC CLI, use the following syntax \n" - " to make sure your certificate file is correctly parsed: \n" - " `--Body=\"$(cat FILENAME)\"`.\n" -"Chain: string\n" - " The PEM-encoded intermediate certification authorities.With OSC CLI, \n" - " use the following syntax to make sure your certificate chain file is \n" - " correctly parsed: `--Chain=\"$(cat FILENAME)\"`.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Name: string\n" - " A unique name for the certificate. Constraints: 1-128 alphanumeric \n" - " characters, pluses (+), equals (=), commas (,), periods (.), at signs \n" - " (@), minuses (-), or underscores (_).\n" -"Path: string\n" +"--VolumeId: string\n" + " **(when creating from a volume)** The ID of the volume you want to create a snapshot of.\n" +, + "--Body: string\n" + " The PEM-encoded X509 certificate.With OSC CLI, use the following syntax to make sure your \n" + " certificate file is correctly parsed: `--Body=\"$(cat FILENAME)\"`.\n" +"--Chain: string\n" + " The PEM-encoded intermediate certification authorities.With OSC CLI, use the following \n" + " syntax to make sure your certificate chain file is correctly parsed: `--Chain=\"$(cat \n" + " FILENAME)\"`.\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Name: string\n" + " A unique name for the certificate. Constraints: 1-128 alphanumeric characters, pluses (+), \n" + " equals (=), commas (,), periods (.), at signs (@), minuses (-), or underscores (_).\n" +"--Path: string\n" " The path to the server certificate, set to a slash (/) if not specified.\n" -"PrivateKey: string\n" - " The PEM-encoded private key matching the certificate.With OSC CLI, use \n" - " the following syntax to make sure your key file is correctly parsed: \n" - " `--PrivateKey=\"$(cat FILENAME)\"`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Flow: string\n" - " The direction of the flow: `Inbound` or `Outbound`. You can specify \n" - " `Outbound` for Nets only.\n" -"FromPortRange: int\n" - " The beginning of the port range for the TCP and UDP protocols, or an \n" - " ICMP type number. If you specify this parameter, you cannot specify the \n" - " `Rules` parameter and its subparameters.\n" -"IpProtocol: string\n" - " The IP protocol name (`tcp`, `udp`, `icmp`, or `-1` for all protocols). \n" - " By default, `-1`. In a Net, this can also be an IP protocol number. For \n" - " more information, see the [IANA.org \n" - " website](https://www.iana.org/assignments/protocol-numbers/protocol-numb\n" - " ers.xhtml). If you specify this parameter, you cannot specify the \n" - " `Rules` parameter and its subparameters.\n" -"IpRange: string\n" - " The IP range for the security group rule, in CIDR notation (for \n" - " example, 10.0.0.0/16). If you specify this parameter, you cannot \n" - " specify the `Rules` parameter and its subparameters.\n" -"Rules: array ref SecurityGroupRule\n" - " Information about the security group rule to create. If you specify \n" - " this parent parameter and its subparameters, you cannot specify the \n" - " following parent parameters: `FromPortRange`, `IpProtocol`, `IpRange`, \n" - " and `ToPortRange`.\n" +"--PrivateKey: string\n" + " The PEM-encoded private key matching the certificate.With OSC CLI, use the following syntax \n" + " to make sure your key file is correctly parsed: `--PrivateKey=\"$(cat FILENAME)\"`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Flow: string\n" + " The direction of the flow: `Inbound` or `Outbound`. You can specify `Outbound` for Nets \n" + " only.\n" +"--FromPortRange: int\n" + " The beginning of the port range for the TCP and UDP protocols, or an ICMP type number. If \n" + " you specify this parameter, you cannot specify the `Rules` parameter and its subparameters.\n" +"--IpProtocol: string\n" + " The IP protocol name (`tcp`, `udp`, `icmp`, or `-1` for all protocols). By default, `-1`. \n" + " In a Net, this can also be an IP protocol number. For more information, see the [IANA.org \n" + " website](https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). If you \n" + " specify this parameter, you cannot specify the `Rules` parameter and its subparameters.\n" +"--IpRange: string\n" + " The IP range for the security group rule, in CIDR notation (for example, 10.0.0.0/16). If \n" + " you specify this parameter, you cannot specify the `Rules` parameter and its subparameters.\n" +"--Rules: array ref SecurityGroupRule\n" + " Information about the security group rule to create. If you specify this parent parameter \n" + " and its subparameters, you cannot specify the following parent parameters: `FromPortRange`, \n" + " `IpProtocol`, `IpRange`, and `ToPortRange`.\n" " Information about the security group rule.\n" - " -FromPortRange: int\n" - " The beginning of the port range for the TCP and UDP protocols, \n" - " or an ICMP type number.\n" - " -IpProtocol: string\n" - " The IP protocol name (`tcp`, `udp`, `icmp`, or `-1` for all \n" - " protocols). By default, `-1`. In a Net, this can also be an IP \n" - " protocol number. For more information, see the [IANA.org \n" - " website](https://www.iana.org/assignments/protocol-numbers/proto\n" - " col-numbers.xhtml).\n" - " -IpRanges: array string\n" - " One or more IP ranges for the security group rules, in CIDR \n" - " notation (for example, `10.0.0.0/16`).\n" - " -SecurityGroupsMembers: array ref SecurityGroupsMember\n" - " Information about one or more source or destination security \n" - " groups.\n" + " --Rules.INDEX.FromPortRange: int\n" + " The beginning of the port range for the TCP and UDP protocols, or an \n" + " ICMP type number.\n" + " --Rules.INDEX.IpProtocol: string\n" + " The IP protocol name (`tcp`, `udp`, `icmp`, or `-1` for all protocols). \n" + " By default, `-1`. In a Net, this can also be an IP protocol number. For \n" + " more information, see the [IANA.org \n" + " website](https://www.iana.org/assignments/protocol-numbers/protocol-number\n" + " s.xhtml).\n" + " --Rules.INDEX.IpRanges: array string\n" + " One or more IP ranges for the security group rules, in CIDR notation \n" + " (for example, `10.0.0.0/16`).\n" + " --Rules.INDEX.SecurityGroupsMembers: array ref SecurityGroupsMember\n" + " Information about one or more source or destination security groups.\n" " Information about a source or destination security group.\n" - " -AccountId: string\n" - " The account ID that owns the source or destination security \n" - " group.\n" - " -SecurityGroupId: string\n" - " The ID of a source or destination security group that you want \n" - " to link to the security group of the rule.\n" - " -SecurityGroupName: string\n" - " (Public Cloud only) The name of a source or destination \n" - " security group that you want to link to the security group of \n" - " the rule.\n" - " -ServiceIds: array string\n" - " One or more service IDs to allow traffic from a Net to access \n" - " the corresponding OUTSCALE services. For more information, see \n" + " --Rules.INDEX.SecurityGroupsMembers.INDEX.AccountId: string\n" + " The account ID that owns the source or destination security group.\n" + " --Rules.INDEX.SecurityGroupsMembers.INDEX.SecurityGroupId: string\n" + " The ID of a source or destination security group that you want to link \n" + " to the security group of the rule.\n" + " --Rules.INDEX.SecurityGroupsMembers.INDEX.SecurityGroupName: string\n" + " (Public Cloud only) The name of a source or destination security group \n" + " that you want to link to the security group of the rule.\n" + " --Rules.INDEX.ServiceIds: array string\n" + " One or more service IDs to allow traffic from a Net to access the \n" + " corresponding OUTSCALE services. For more information, see \n" " [ReadNetAccessPointServices](#readnetaccesspointservices).\n" - " -ToPortRange: int\n" - " The end of the port range for the TCP and UDP protocols, or an \n" - " ICMP code number.\n" -"SecurityGroupAccountIdToLink: string\n" - " The account ID that owns the source or destination security group \n" - " specified in the `SecurityGroupNameToLink` parameter.\n" -"SecurityGroupId: string\n" + " --Rules.INDEX.ToPortRange: int\n" + " The end of the port range for the TCP and UDP protocols, or an ICMP code \n" + " number.\n" +"--SecurityGroupAccountIdToLink: string\n" + " The account ID that owns the source or destination security group specified in the \n" + " `SecurityGroupNameToLink` parameter.\n" +"--SecurityGroupId: string\n" " The ID of the security group for which you want to create a rule.\n" -"SecurityGroupNameToLink: string\n" - " The ID of a source or destination security group that you want to link \n" - " to the security group of the rule.\n" -"ToPortRange: int\n" - " The end of the port range for the TCP and UDP protocols, or an ICMP \n" - " code number. If you specify this parameter, you cannot specify the \n" - " `Rules` parameter and its subparameters.\n" -, - "Description: string\n" - " A description for the security group.\nThis description can contain \n" - " between 1 and 255 characters. Allowed characters are `a-z`, `A-Z`, \n" - " `0-9`, accented letters, spaces, and `_.-:/()#,@[]+=&;{}!$*`.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"NetId: string\n" - " The ID of the Net for the security group.\n" -"SecurityGroupName: string\n" - " The name of the security group.\nThis name must not start with \n" - " `sg-`.\nThis name must be unique and contain between 1 and 255 \n" - " characters. Allowed characters are `a-z`, `A-Z`, `0-9`, spaces, and \n" +"--SecurityGroupNameToLink: string\n" + " The ID of a source or destination security group that you want to link to the security \n" + " group of the rule.\n" +"--ToPortRange: int\n" + " The end of the port range for the TCP and UDP protocols, or an ICMP code number. If you \n" + " specify this parameter, you cannot specify the `Rules` parameter and its subparameters.\n" +, + "--Description: string\n" + " A description for the security group.\nThis description can contain between 1 and 255 \n" + " characters. Allowed characters are `a-z`, `A-Z`, `0-9`, accented letters, spaces, and \n" " `_.-:/()#,@[]+=&;{}!$*`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"NetId: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--NetId: string\n" + " The ID of the Net for the security group.\n" +"--SecurityGroupName: string\n" + " The name of the security group.\nThis name must not start with `sg-`.\nThis name must be \n" + " unique and contain between 1 and 255 characters. Allowed characters are `a-z`, `A-Z`, \n" + " `0-9`, spaces, and `_.-:/()#,@[]+=&;{}!$*`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--NetId: string\n" " The ID of the Net for which you want to create a route table.\n" , - "DestinationIpRange: string\n" - " The IP range used for the destination match, in CIDR notation (for \n" - " example, `10.0.0.0/24`).\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"GatewayId: string\n" + "--DestinationIpRange: string\n" + " The IP range used for the destination match, in CIDR notation (for example, `10.0.0.0/24`).\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--GatewayId: string\n" " The ID of an Internet service or virtual gateway attached to your Net.\n" -"NatServiceId: string\n" +"--NatServiceId: string\n" " The ID of a NAT service.\n" -"NetPeeringId: string\n" +"--NetPeeringId: string\n" " The ID of a Net peering.\n" -"NicId: string\n" +"--NicId: string\n" " The ID of a NIC.\n" -"RouteTableId: string\n" +"--RouteTableId: string\n" " The ID of the route table for which you want to create a route.\n" -"VmId: string\n" +"--VmId: string\n" " The ID of a NAT VM in your Net (attached to exactly one NIC).\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" , - "Description: string\n" + "--Description: string\n" " The description of the product type.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Vendor: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Vendor: string\n" " The vendor of the product type.\n" , - "Document: string\n" - " The policy document, corresponding to a JSON string that contains the \n" - " policy. For more information, see [EIM Reference \n" - " Information](https://docs.outscale.com/en/userguide/EIM-Reference-Inform\n" - " ation.html).\n" -"PolicyOrn: string\n" - " The OUTSCALE Resource Name (ORN) of the policy. For more information, \n" - " see [Resource \n" - " Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifiers\n" - " .html).\n" -"SetAsDefault: bool\n" - " If set to true, the new policy version is set as the default version \n" - " and becomes the operative one.\n" -, - "Description: string\n" + "--Document: string\n" + " The policy document, corresponding to a JSON string that contains the policy. For more \n" + " information, see [EIM Reference \n" + " Information](https://docs.outscale.com/en/userguide/EIM-Reference-Information.html).\n" +"--PolicyOrn: string\n" + " The OUTSCALE Resource Name (ORN) of the policy. For more information, see [Resource \n" + " Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifiers.html).\n" +"--SetAsDefault: bool\n" + " If set to true, the new policy version is set as the default version and becomes the \n" + " operative one.\n" +, + "--Description: string\n" " A description for the policy.\n" -"Document: string\n" - " The policy document, corresponding to a JSON string that contains the \n" - " policy. For more information, see [EIM Reference \n" - " Information](https://docs.outscale.com/en/userguide/EIM-Reference-Inform\n" - " ation.html).\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Path: string\n" +"--Document: string\n" + " The policy document, corresponding to a JSON string that contains the policy. For more \n" + " information, see [EIM Reference \n" + " Information](https://docs.outscale.com/en/userguide/EIM-Reference-Information.html).\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Path: string\n" " The path of the policy.\n" -"PolicyName: string\n" +"--PolicyName: string\n" " The name of the policy.\n" , - "Description: string\n" + "--Description: string\n" " A description for the NIC.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"PrivateIps: array ref PrivateIpLight\n" - " The primary private IP for the NIC.\nThis IP must be within the IP \n" - " range of the Subnet that you specify with the `SubnetId` attribute.\nIf \n" - " you do not specify this attribute, a random private IP is selected \n" - " within the IP range of the Subnet.\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--PrivateIps: array ref PrivateIpLight\n" + " The primary private IP for the NIC.\nThis IP must be within the IP range of the Subnet that \n" + " you specify with the `SubnetId` attribute.\nIf you do not specify this attribute, a random \n" + " private IP is selected within the IP range of the Subnet.\n" " Information about the private IP.\n" - " -IsPrimary: bool\n" + " --PrivateIps.INDEX.IsPrimary: bool\n" " If true, the IP is the primary private IP of the NIC.\n" - " -PrivateIp: string\n" + " --PrivateIps.INDEX.PrivateIp: string\n" " The private IP of the NIC.\n" -"SecurityGroupIds: array string\n" +"--SecurityGroupIds: array string\n" " One or more IDs of security groups for the NIC.\n" -"SubnetId: string\n" +"--SubnetId: string\n" " The ID of the Subnet in which you want to create the NIC.\n" , - "AccepterNetId: string\n" + "--AccepterNetId: string\n" " The ID of the Net you want to connect with.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"SourceNetId: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--SourceNetId: string\n" " The ID of the Net you send the peering request from.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"NetId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--NetId: string\n" " The ID of the Net.\n" -"RouteTableIds: array string\n" +"--RouteTableIds: array string\n" " One or more IDs of route tables to use for the connection.\n" -"ServiceName: string\n" +"--ServiceName: string\n" " The name of the service (in the format `com.outscale.region.service`).\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"IpRange: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--IpRange: string\n" " The IP range for the Net, in CIDR notation (for example, `10.0.0.0/16`).\n" -"Tenancy: string\n" - " The tenancy options for the VMs:\n- `default` if a VM created in a Net \n" - " can be launched with any tenancy.\n- `dedicated` if it can be launched \n" - " with dedicated tenancy VMs running on single-tenant hardware.\n- \n" - " `dedicated group ID`: if it can be launched in a dedicated group on \n" - " single-tenant hardware.\n" -, - "ClientToken: string\n" +"--Tenancy: string\n" + " The tenancy options for the VMs:\n- `default` if a VM created in a Net can be launched with \n" + " any tenancy.\n- `dedicated` if it can be launched with dedicated tenancy VMs running on \n" + " single-tenant hardware.\n- `dedicated group ID`: if it can be launched in a dedicated group \n" + " on single-tenant hardware.\n" +, + "--ClientToken: string\n" " A unique identifier which enables you to manage the idempotency.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"PublicIpId: string\n" - " The allocation ID of the public IP to associate with the NAT \n" - " service.\nIf the public IP is already associated with another resource, \n" - " you must first disassociate it.\n" -"SubnetId: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--PublicIpId: string\n" + " The allocation ID of the public IP to associate with the NAT service.\nIf the public IP is \n" + " already associated with another resource, you must first disassociate it.\n" +"--SubnetId: string\n" " The ID of the Subnet in which you want to create the NAT service.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"LoadBalancerNames: array string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--LoadBalancerNames: array string\n" " One or more load balancer names.\n" -"Tags: array ref ResourceTag\n" +"--Tags: array ref ResourceTag\n" " One or more tags to add to the specified load balancers.\n" " Information about the tag.\n" - " -Key: string\n" + " --Tags.INDEX.Key: string\n" " The key of the tag, with a minimum of 1 character.\n" - " -Value: string\n" + " --Tags.INDEX.Value: string\n" " The value of the tag, between 0 and 255 characters.\n" , - "CookieExpirationPeriod: int\n" - " The lifetime of the cookie, in seconds. If not specified, the default \n" - " value of this parameter is `1`, which means that the sticky session \n" - " lasts for the duration of the browser session.\n" -"CookieName: string\n" - " The name of the application cookie used for stickiness. This parameter \n" - " is required if you create a stickiness policy based on an \n" - " application-generated cookie.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"LoadBalancerName: string\n" + "--CookieExpirationPeriod: int\n" + " The lifetime of the cookie, in seconds. If not specified, the default value of this \n" + " parameter is `1`, which means that the sticky session lasts for the duration of the browser \n" + " session.\n" +"--CookieName: string\n" + " The name of the application cookie used for stickiness. This parameter is required if you \n" + " create a stickiness policy based on an application-generated cookie.\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--LoadBalancerName: string\n" " The name of the load balancer for which you want to create a policy.\n" -"PolicyName: string\n" - " The name of the policy. This name must be unique and consist of \n" - " alphanumeric characters and dashes (-).\n" -"PolicyType: string\n" - " The type of stickiness policy you want to create: `app` or \n" - " `load_balancer`.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Listeners: array ref ListenerForCreation\n" +"--PolicyName: string\n" + " The name of the policy. This name must be unique and consist of alphanumeric characters and \n" + " dashes (-).\n" +"--PolicyType: string\n" + " The type of stickiness policy you want to create: `app` or `load_balancer`.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Listeners: array ref ListenerForCreation\n" " One or more listeners for the load balancer.\n" " Information about the listener to create.\n" - " -BackendPort: int\n" - " The port on which the backend VM is listening (between `1` and \n" + " --Listeners.INDEX.BackendPort: int\n" + " The port on which the backend VM is listening (between `1` and `65535`, \n" + " both included).\n" + " --Listeners.INDEX.BackendProtocol: string\n" + " The protocol for routing traffic to backend VMs (`HTTP` \\| `HTTPS` \\| \n" + " `TCP` \\| `SSL`).\n" + " --Listeners.INDEX.LoadBalancerPort: int\n" + " The port on which the load balancer is listening (between `1` and \n" " `65535`, both included).\n" - " -BackendProtocol: string\n" - " The protocol for routing traffic to backend VMs (`HTTP` \\| \n" - " `HTTPS` \\| `TCP` \\| `SSL`).\n" - " -LoadBalancerPort: int\n" - " The port on which the load balancer is listening (between `1` \n" - " and `65535`, both included).\n" - " -LoadBalancerProtocol: string\n" + " --Listeners.INDEX.LoadBalancerProtocol: string\n" " The routing protocol (`HTTP` \\| `HTTPS` \\| `TCP` \\| `SSL`).\n" - " -ServerCertificateId: string\n" - " The OUTSCALE Resource Name (ORN) of the server certificate. \n" - " For more information, see [Resource Identifiers > OUTSCALE \n" - " Resource Names \n" - " (ORNs)](https://docs.outscale.com/en/userguide/Resource-Identifi\n" - " ers.html#_outscale_resource_names_orns).\n" -"LoadBalancerName: string\n" + " --Listeners.INDEX.ServerCertificateId: string\n" + " The OUTSCALE Resource Name (ORN) of the server certificate. For more \n" + " information, see [Resource Identifiers > OUTSCALE Resource Names \n" + " (ORNs)](https://docs.outscale.com/en/userguide/Resource-Identifiers.html#_\n" + " outscale_resource_names_orns).\n" +"--LoadBalancerName: string\n" " The name of the load balancer for which you want to create listeners.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Listeners: array ref ListenerForCreation\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Listeners: array ref ListenerForCreation\n" " One or more listeners to create.\n" " Information about the listener to create.\n" - " -BackendPort: int\n" - " The port on which the backend VM is listening (between `1` and \n" + " --Listeners.INDEX.BackendPort: int\n" + " The port on which the backend VM is listening (between `1` and `65535`, \n" + " both included).\n" + " --Listeners.INDEX.BackendProtocol: string\n" + " The protocol for routing traffic to backend VMs (`HTTP` \\| `HTTPS` \\| \n" + " `TCP` \\| `SSL`).\n" + " --Listeners.INDEX.LoadBalancerPort: int\n" + " The port on which the load balancer is listening (between `1` and \n" " `65535`, both included).\n" - " -BackendProtocol: string\n" - " The protocol for routing traffic to backend VMs (`HTTP` \\| \n" - " `HTTPS` \\| `TCP` \\| `SSL`).\n" - " -LoadBalancerPort: int\n" - " The port on which the load balancer is listening (between `1` \n" - " and `65535`, both included).\n" - " -LoadBalancerProtocol: string\n" + " --Listeners.INDEX.LoadBalancerProtocol: string\n" " The routing protocol (`HTTP` \\| `HTTPS` \\| `TCP` \\| `SSL`).\n" - " -ServerCertificateId: string\n" - " The OUTSCALE Resource Name (ORN) of the server certificate. \n" - " For more information, see [Resource Identifiers > OUTSCALE \n" - " Resource Names \n" - " (ORNs)](https://docs.outscale.com/en/userguide/Resource-Identifi\n" - " ers.html#_outscale_resource_names_orns).\n" -"LoadBalancerName: string\n" - " The unique name of the load balancer (32 alphanumeric or hyphen \n" - " characters maximum, but cannot start or end with a hyphen).\n" -"LoadBalancerType: string\n" - " The type of load balancer: `internet-facing` or `internal`. Use this \n" - " parameter only for load balancers in a Net.\n" -"PublicIp: string\n" - " (internet-facing only) The public IP you want to associate with the \n" - " load balancer. If not specified, a public IP owned by 3DS OUTSCALE is \n" - " associated.\n" -"SecurityGroups: array string\n" - " (Net only) One or more IDs of security groups you want to assign to the \n" - " load balancer. If not specified, the default security group of the Net \n" - " is assigned to the load balancer.\n" -"Subnets: array string\n" - " (Net only) The ID of the Subnet in which you want to create the load \n" - " balancer. Regardless of this Subnet, the load balancer can distribute \n" - " traffic to all Subnets. This parameter is required in a Net.\n" -"SubregionNames: array string\n" - " (public Cloud only) The Subregion in which you want to create the load \n" - " balancer. Regardless of this Subregion, the load balancer can \n" - " distribute traffic to all Subregions. This parameter is required in the \n" - " public Cloud.\n" -"Tags: array ref ResourceTag\n" + " --Listeners.INDEX.ServerCertificateId: string\n" + " The OUTSCALE Resource Name (ORN) of the server certificate. For more \n" + " information, see [Resource Identifiers > OUTSCALE Resource Names \n" + " (ORNs)](https://docs.outscale.com/en/userguide/Resource-Identifiers.html#_\n" + " outscale_resource_names_orns).\n" +"--LoadBalancerName: string\n" + " The unique name of the load balancer (32 alphanumeric or hyphen characters maximum, but \n" + " cannot start or end with a hyphen).\n" +"--LoadBalancerType: string\n" + " The type of load balancer: `internet-facing` or `internal`. Use this parameter only for \n" + " load balancers in a Net.\n" +"--PublicIp: string\n" + " (internet-facing only) The public IP you want to associate with the load balancer. If not \n" + " specified, a public IP owned by 3DS OUTSCALE is associated.\n" +"--SecurityGroups: array string\n" + " (Net only) One or more IDs of security groups you want to assign to the load balancer. If \n" + " not specified, the default security group of the Net is assigned to the load balancer.\n" +"--Subnets: array string\n" + " (Net only) The ID of the Subnet in which you want to create the load balancer. Regardless \n" + " of this Subnet, the load balancer can distribute traffic to all Subnets. This parameter is \n" + " required in a Net.\n" +"--SubregionNames: array string\n" + " (public Cloud only) The Subregion in which you want to create the load balancer. Regardless \n" + " of this Subregion, the load balancer can distribute traffic to all Subregions. This \n" + " parameter is required in the public Cloud.\n" +"--Tags: array ref ResourceTag\n" " One or more tags assigned to the load balancer.\n" " Information about the tag.\n" - " -Key: string\n" + " --Tags.INDEX.Key: string\n" " The key of the tag, with a minimum of 1 character.\n" - " -Value: string\n" + " --Tags.INDEX.Value: string\n" " The value of the tag, between 0 and 255 characters.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Listener: ref LoadBalancerLight\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Listener: ref LoadBalancerLight\n" " Information about the load balancer.\n" - " -LoadBalancerName: string\n" - " The name of the load balancer to which the listener is \n" - " attached.\n" - " -LoadBalancerPort: int\n" - " The port of load balancer on which the load balancer is \n" - " listening (between `1` and `65535` both included).\n" -"ListenerRule: ref ListenerRuleForCreation\n" + " --Listener.LoadBalancerName: string\n" + " The name of the load balancer to which the listener is attached.\n" + " --Listener.LoadBalancerPort: int\n" + " The port of load balancer on which the load balancer is listening \n" + " (between `1` and `65535` both included).\n" +"--ListenerRule: ref ListenerRuleForCreation\n" " Information about the listener rule.\n" - " -Action: string\n" + " --ListenerRule.Action: string\n" " The type of action for the rule (always `forward`).\n" - " -HostNamePattern: string\n" + " --ListenerRule.HostNamePattern: string\n" " A host-name pattern for the rule, with a maximum length of 128 \n" - " characters. This host-name pattern supports maximum three \n" - " wildcards, and must not contain any special characters except \n" - " [-.?].\n" - " -ListenerRuleName: string\n" + " characters. This host-name pattern supports maximum three wildcards, and \n" + " must not contain any special characters except [-.?].\n" + " --ListenerRule.ListenerRuleName: string\n" " A human-readable name for the listener rule.\n" - " -PathPattern: string\n" - " A path pattern for the rule, with a maximum length of 128 \n" - " characters. This path pattern supports maximum three wildcards, \n" - " and must not contain any special characters except \n" - " [_-.$/~\"'@:+?].\n" - " -Priority: int\n" - " The priority level of the listener rule, between `1` and \n" - " `19999` both included. Each rule must have a unique priority \n" - " level. Otherwise, an error is returned.\n" -"VmIds: array string\n" + " --ListenerRule.PathPattern: string\n" + " A path pattern for the rule, with a maximum length of 128 characters. \n" + " This path pattern supports maximum three wildcards, and must not contain \n" + " any special characters except [_-.$/~\"'@:+?].\n" + " --ListenerRule.Priority: int\n" + " The priority level of the listener rule, between `1` and `19999` both \n" + " included. Each rule must have a unique priority level. Otherwise, an \n" + " error is returned.\n" +"--VmIds: array string\n" " The IDs of the backend VMs.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"KeypairName: string\n" - " A unique name for the keypair, with a maximum length of 255 [ASCII \n" - " printable \n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--KeypairName: string\n" + " A unique name for the keypair, with a maximum length of 255 [ASCII printable \n" " characters](https://en.wikipedia.org/wiki/ASCII#Printable_characters).\n" -"PublicKey: string\n" - " The public key to import in your account, if you are importing an \n" - " existing keypair. This value must be Base64-encoded.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"ImageId: string\n" +"--PublicKey: string\n" + " The public key to import in your account, if you are importing an existing keypair. This \n" + " value must be Base64-encoded.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--ImageId: string\n" " The ID of the OMI to export.\n" -"OsuExport: ref OsuExportToCreate\n" +"--OsuExport: ref OsuExportToCreate\n" " Information about the OOS export task to create.\n" - " -DiskImageFormat: string\n" + " --OsuExport.DiskImageFormat: string\n" " The format of the export disk (`qcow2` \\| `raw`).\n" - " -OsuApiKey: ref OsuApiKey\n" + " --OsuExport.OsuApiKey: ref OsuApiKey\n" " Information about the OOS API key.\n" - " -ApiKeyId: string\n" - " The API key of the OOS account that enables you to access the \n" - " bucket.\n" - " -SecretKey: string\n" - " The secret key of the OOS account that enables you to access \n" - " the bucket.\n" - " -OsuBucket: string\n" - " The name of the OOS bucket where you want to export the \n" - " object.\n" - " -OsuManifestUrl: string\n" + " --OsuExport.OsuApiKey.ApiKeyId: string\n" + " The API key of the OOS account that enables you to access the bucket.\n" + " --OsuExport.OsuApiKey.SecretKey: string\n" + " The secret key of the OOS account that enables you to access the bucket.\n" + " --OsuExport.OsuBucket: string\n" + " The name of the OOS bucket where you want to export the object.\n" + " --OsuExport.OsuManifestUrl: string\n" " The URL of the manifest file.\n" - " -OsuPrefix: string\n" + " --OsuExport.OsuPrefix: string\n" " The prefix for the key of the OOS object.\n" , - "Architecture: string\n" - " **(when registering from a snapshot, or from a bucket without using a \n" - " manifest file)** The architecture of the OMI (`i386` or `x86_64`).\n" -"BlockDeviceMappings: array ref BlockDeviceMappingImage\n" - " **(when registering from a snapshot, or from a bucket without using a \n" - " manifest file)** One or more block device mappings.\n" - " One or more parameters used to automatically set up volumes \n" - " when the VM is created.\n" - " -Bsu: ref BsuToCreate\n" + "--Architecture: string\n" + " **(when registering from a snapshot, or from a bucket without using a manifest file)** The \n" + " architecture of the OMI (`i386` or `x86_64`).\n" +"--BlockDeviceMappings: array ref BlockDeviceMappingImage\n" + " **(when registering from a snapshot, or from a bucket without using a manifest file)** One \n" + " or more block device mappings.\n" + " One or more parameters used to automatically set up volumes when the VM \n" + " is created.\n" + " --BlockDeviceMappings.INDEX.Bsu: ref BsuToCreate\n" " Information about the BSU volume to create.\n" - " -DeleteOnVmDeletion: bool\n" - " By default or if set to true, the volume is deleted when \n" - " terminating the VM. If false, the volume is not deleted when \n" - " terminating the VM.\n" - " -Iops: int\n" - " The number of I/O operations per second (IOPS). This parameter \n" - " must be specified only if you create an `io1` volume. The \n" - " maximum number of IOPS allowed for `io1` volumes is `13000` \n" - " with a maximum performance ratio of 300 IOPS per gibibyte.\n" - " -SnapshotId: string\n" + " --BlockDeviceMappings.INDEX.Bsu.DeleteOnVmDeletion: bool\n" + " By default or if set to true, the volume is deleted when terminating the \n" + " VM. If false, the volume is not deleted when terminating the VM.\n" + " --BlockDeviceMappings.INDEX.Bsu.Iops: int\n" + " The number of I/O operations per second (IOPS). This parameter must be \n" + " specified only if you create an `io1` volume. The maximum number of IOPS \n" + " allowed for `io1` volumes is `13000` with a maximum performance ratio of \n" + " 300 IOPS per gibibyte.\n" + " --BlockDeviceMappings.INDEX.Bsu.SnapshotId: string\n" " The ID of the snapshot used to create the volume.\n" - " -VolumeSize: int\n" - " The size of the volume, in gibibytes (GiB).\nIf you \n" - " specify a snapshot ID, the volume size must be at least equal \n" - " to the snapshot size.\nIf you specify a snapshot ID but \n" - " no volume size, the volume is created with a size similar to \n" - " the snapshot one.\n" - " -VolumeType: string\n" - " The type of the volume (`standard` \\| `io1` \\| `gp2`). If \n" - " not specified in the request, a `standard` volume is \n" - " created.\nFor more information about volume types, see \n" - " [About Volumes > Volume Types and \n" - " IOPS](https://docs.outscale.com/en/userguide/About-Volumes.html#\n" - " _volume_types_and_iops).\n" - " -DeviceName: string\n" - " The device name for the volume. For a root device, you must \n" - " use `/dev/sda1`. For other volumes, you must use `/dev/sdX`, \n" - " `/dev/sdXX`, `/dev/xvdX`, or `/dev/xvdXX` (where the first `X` \n" - " is a letter between `b` and `z`, and the second `X` is a letter \n" - " between `a` and `z`).\n" - " -VirtualDeviceName: string\n" + " --BlockDeviceMappings.INDEX.Bsu.VolumeSize: int\n" + " The size of the volume, in gibibytes (GiB).\nIf you specify a \n" + " snapshot ID, the volume size must be at least equal to the snapshot \n" + " size.\nIf you specify a snapshot ID but no volume size, the volume \n" + " is created with a size similar to the snapshot one.\n" + " --BlockDeviceMappings.INDEX.Bsu.VolumeType: string\n" + " The type of the volume (`standard` \\| `io1` \\| `gp2`). If not \n" + " specified in the request, a `standard` volume is created.\nFor more \n" + " information about volume types, see [About Volumes > Volume Types and \n" + " IOPS](https://docs.outscale.com/en/userguide/About-Volumes.html#_volume_ty\n" + " pes_and_iops).\n" + " --BlockDeviceMappings.INDEX.DeviceName: string\n" + " The device name for the volume. For a root device, you must use \n" + " `/dev/sda1`. For other volumes, you must use `/dev/sdX`, `/dev/sdXX`, \n" + " `/dev/xvdX`, or `/dev/xvdXX` (where the first `X` is a letter between `b` \n" + " and `z`, and the second `X` is a letter between `a` and `z`).\n" + " --BlockDeviceMappings.INDEX.VirtualDeviceName: string\n" " The name of the virtual device (`ephemeralN`).\n" -"Description: string\n" +"--Description: string\n" " A description for the new OMI.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"FileLocation: string\n" - " **(when registering from a bucket by using a manifest file)** The \n" - " pre-signed URL of the manifest file for the OMI you want to register. \n" - " For more information, see [Configuring a Pre-signed \n" - " URL](https://docs.outscale.com/en/userguide/Configuring-a-Pre-signed-URL\n" - " .html) or [Managing Access to Your Buckets and \n" - " Objects](https://docs.outscale.com/en/userguide/Managing-Access-to-Your-\n" - " Buckets-and-Objects.html).\nYou can also specify the normal URL of the \n" - " OMI if you have permission on the OOS bucket, without using the \n" - " manifest file, but in that case, you need to manually specify through \n" - " the other parameters all the information that would otherwise be read \n" - " from the manifest file.\n" -"ImageName: string\n" - " A unique name for the new OMI.\nConstraints: 3-128 alphanumeric \n" - " characters, underscores (`_`), spaces (` `), parentheses (`()`), \n" - " slashes (`/`), periods (`.`), or dashes (`-`).\n" -"NoReboot: bool\n" - " **(when creating from a VM)** If false, the VM shuts down before \n" - " creating the OMI and then reboots. If true, the VM does not.\n" -"ProductCodes: array string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--FileLocation: string\n" + " **(when registering from a bucket by using a manifest file)** The pre-signed URL of the \n" + " manifest file for the OMI you want to register. For more information, see [Configuring a \n" + " Pre-signed URL](https://docs.outscale.com/en/userguide/Configuring-a-Pre-signed-URL.html) \n" + " or [Managing Access to Your Buckets and \n" + " Objects](https://docs.outscale.com/en/userguide/Managing-Access-to-Your-Buckets-and-Objects.\n" + " html).\nYou can also specify the normal URL of the OMI if you have permission on the OOS \n" + " bucket, without using the manifest file, but in that case, you need to manually specify \n" + " through the other parameters all the information that would otherwise be read from the \n" + " manifest file.\n" +"--ImageName: string\n" + " A unique name for the new OMI.\nConstraints: 3-128 alphanumeric characters, underscores \n" + " (`_`), spaces (` `), parentheses (`()`), slashes (`/`), periods (`.`), or dashes (`-`).\n" +"--NoReboot: bool\n" + " **(when creating from a VM)** If false, the VM shuts down before creating the OMI and then \n" + " reboots. If true, the VM does not.\n" +"--ProductCodes: array string\n" " The product codes associated with the OMI.\n" -"RootDeviceName: string\n" - " **(when registering from a snapshot, or from a bucket without using a \n" - " manifest file)** The name of the root device for the new OMI.\n" -"SourceImageId: string\n" +"--RootDeviceName: string\n" + " **(when registering from a snapshot, or from a bucket without using a manifest file)** The \n" + " name of the root device for the new OMI.\n" +"--SourceImageId: string\n" " **(when copying an OMI)** The ID of the OMI you want to copy.\n" -"SourceRegionName: string\n" - " **(when copying an OMI)** The name of the source Region (always the \n" - " same as the Region of your account).\n" -"VmId: string\n" - " **(when creating from a VM)** The ID of the VM from which you want to \n" - " create the OMI.\n" -, - "DeleteOnVmDeletion: bool\n" +"--SourceRegionName: string\n" + " **(when copying an OMI)** The name of the source Region (always the same as the Region of \n" + " your account).\n" +"--VmId: string\n" + " **(when creating from a VM)** The ID of the VM from which you want to create the OMI.\n" +, + "--DeleteOnVmDeletion: bool\n" " If true, the fGPU is deleted when the VM is terminated.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Generation: string\n" - " The processor generation that the fGPU must be compatible with. If not \n" - " specified, the oldest possible processor generation is selected (as \n" - " provided by [ReadFlexibleGpuCatalog](#readflexiblegpucatalog) for the \n" - " specified model of fGPU).\n" -"ModelName: string\n" - " The model of fGPU you want to allocate. For more information, see \n" - " [About Flexible \n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Generation: string\n" + " The processor generation that the fGPU must be compatible with. If not specified, the \n" + " oldest possible processor generation is selected (as provided by \n" + " [ReadFlexibleGpuCatalog](#readflexiblegpucatalog) for the specified model of fGPU).\n" +"--ModelName: string\n" + " The model of fGPU you want to allocate. For more information, see [About Flexible \n" " GPUs](https://docs.outscale.com/en/userguide/About-Flexible-GPUs.html).\n" -"SubregionName: string\n" +"--SubregionName: string\n" " The Subregion in which you want to create the fGPU.\n" , - "DirectLinkId: string\n" - " The ID of the existing DirectLink for which you want to create the \n" - " DirectLink interface.\n" -"DirectLinkInterface: ref DirectLinkInterface\n" + "--DirectLinkId: string\n" + " The ID of the existing DirectLink for which you want to create the DirectLink interface.\n" +"--DirectLinkInterface: ref DirectLinkInterface\n" " Information about the DirectLink interface.\n" - " -BgpAsn: int\n" - " The BGP (Border Gateway Protocol) ASN (Autonomous System \n" - " Number) on the customer's side of the DirectLink interface. \n" - " This number must be between `64512` and `65534`.\n" - " -BgpKey: string\n" + " --DirectLinkInterface.BgpAsn: int\n" + " The BGP (Border Gateway Protocol) ASN (Autonomous System Number) on the \n" + " customer's side of the DirectLink interface. This number must be between \n" + " `64512` and `65534`.\n" + " --DirectLinkInterface.BgpKey: string\n" " The BGP authentication key.\n" - " -ClientPrivateIp: string\n" + " --DirectLinkInterface.ClientPrivateIp: string\n" " The IP on the customer's side of the DirectLink interface.\n" - " -DirectLinkInterfaceName: string\n" + " --DirectLinkInterface.DirectLinkInterfaceName: string\n" " The name of the DirectLink interface.\n" - " -OutscalePrivateIp: string\n" + " --DirectLinkInterface.OutscalePrivateIp: string\n" " The IP on the OUTSCALE side of the DirectLink interface.\n" - " -VirtualGatewayId: string\n" + " --DirectLinkInterface.VirtualGatewayId: string\n" " The ID of the target virtual gateway.\n" - " -Vlan: int\n" - " The VLAN number associated with the DirectLink interface. This \n" - " number must be unique and be between `2` and `4094`.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -, - "Bandwidth: string\n" + " --DirectLinkInterface.Vlan: int\n" + " The VLAN number associated with the DirectLink interface. This number \n" + " must be unique and be between `2` and `4094`.\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +, + "--Bandwidth: string\n" " The bandwidth of the DirectLink (`1Gbps` \\| `10Gbps`).\n" -"DirectLinkName: string\n" +"--DirectLinkName: string\n" " The name of the DirectLink.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Location: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Location: string\n" " The code of the requested location for the DirectLink, returned by the \n" " [ReadLocations](#readlocations) method.\n" , - "DomainName: string\n" - " Specify a domain name (for example, `MyCompany.com`). You can specify \n" - " only one domain name. You must specify at least one of the following \n" - " parameters: `DomainName`, `DomainNameServers`, `LogServers`, or \n" - " `NtpServers`.\n" -"DomainNameServers: array string\n" - " The IPs of domain name servers. If no IPs are specified, the \n" - " `OutscaleProvidedDNS` value is set by default. You must specify at \n" - " least one of the following parameters: `DomainName`, \n" + "--DomainName: string\n" + " Specify a domain name (for example, `MyCompany.com`). You can specify only one domain name. \n" + " You must specify at least one of the following parameters: `DomainName`, \n" " `DomainNameServers`, `LogServers`, or `NtpServers`.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"LogServers: array string\n" - " The IPs of the log servers. You must specify at least one of the \n" - " following parameters: `DomainName`, `DomainNameServers`, `LogServers`, \n" - " or `NtpServers`.\n" -"NtpServers: array string\n" - " The IPs of the Network Time Protocol (NTP) servers. You must specify at \n" - " least one of the following parameters: `DomainName`, \n" +"--DomainNameServers: array string\n" + " The IPs of domain name servers. If no IPs are specified, the `OutscaleProvidedDNS` value is \n" + " set by default. You must specify at least one of the following parameters: `DomainName`, \n" " `DomainNameServers`, `LogServers`, or `NtpServers`.\n" -, - "CpuGeneration: int\n" - " The processor generation for the VMs in the dedicated group (for \n" - " example, `4`).\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Name: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--LogServers: array string\n" + " The IPs of the log servers. You must specify at least one of the following parameters: \n" + " `DomainName`, `DomainNameServers`, `LogServers`, or `NtpServers`.\n" +"--NtpServers: array string\n" + " The IPs of the Network Time Protocol (NTP) servers. You must specify at least one of the \n" + " following parameters: `DomainName`, `DomainNameServers`, `LogServers`, or `NtpServers`.\n" +, + "--CpuGeneration: int\n" + " The processor generation for the VMs in the dedicated group (for example, `4`).\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Name: string\n" " A name for the dedicated group.\n" -"SubregionName: string\n" +"--SubregionName: string\n" " The Subregion in which you want to create the dedicated group.\n" , - "BgpAsn: int\n" - " The Autonomous System Number (ASN) used by the Border Gateway Protocol \n" - " (BGP) to find the path to your client gateway through the Internet. \n" - "
\nThis number must be between `1` and `4294967295`. If you do not \n" - " have an ASN, you can choose one between 64512 and 65534, or between \n" - " 4200000000 and 4294967294.\n" -"ConnectionType: string\n" - " The communication protocol used to establish tunnel with your client \n" - " gateway (only `ipsec.1` is supported).\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"PublicIp: string\n" + "--BgpAsn: int\n" + " The Autonomous System Number (ASN) used by the Border Gateway Protocol (BGP) to find the \n" + " path to your client gateway through the Internet.
\nThis number must be between `1` \n" + " and `4294967295`. If you do not have an ASN, you can choose one between 64512 and 65534, or \n" + " between 4200000000 and 4294967294.\n" +"--ConnectionType: string\n" + " The communication protocol used to establish tunnel with your client gateway (only \n" + " `ipsec.1` is supported).\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--PublicIp: string\n" " The public fixed IPv4 address of your client gateway.\n" , - "CaPem: string\n" - " The CA in PEM format.With OSC CLI, use the following syntax to make \n" - " sure your CA file is correctly parsed: `--CaPem=\"$(cat \n" - " FILENAME)\"`.\n" -"Description: string\n" + "--CaPem: string\n" + " The CA in PEM format.With OSC CLI, use the following syntax to make sure your CA file is \n" + " correctly parsed: `--CaPem=\"$(cat FILENAME)\"`.\n" +"--Description: string\n" " The description of the CA.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" , - "CaIds: array string\n" + "--CaIds: array string\n" " One or more IDs of Client Certificate Authorities (CAs).\n" -"Cns: array string\n" - " One or more Client Certificate Common Names (CNs). If this parameter is \n" - " specified, you must also specify the `CaIds` parameter.\n" -"Description: string\n" +"--Cns: array string\n" + " One or more Client Certificate Common Names (CNs). If this parameter is specified, you must \n" + " also specify the `CaIds` parameter.\n" +"--Description: string\n" " A description for the API access rule.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"IpRanges: array string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--IpRanges: array string\n" " One or more IPs or CIDR blocks (for example, `192.0.2.0/16`).\n" , - "AdditionalEmails: array string\n" - " One or more additional email addresses for the account. These addresses \n" - " are used for notifications only. If you already have a list of \n" - " additional emails registered, you cannot add to it, only replace it. To \n" - " remove all registered additional emails, specify an empty list.\n" -"City: string\n" + "--AdditionalEmails: array string\n" + " One or more additional email addresses for the account. These addresses are used for \n" + " notifications only. If you already have a list of additional emails registered, you cannot \n" + " add to it, only replace it. To remove all registered additional emails, specify an empty \n" + " list.\n" +"--City: string\n" " The city of the account owner.\n" -"CompanyName: string\n" +"--CompanyName: string\n" " The name of the company for the account.\n" -"Country: string\n" +"--Country: string\n" " The country of the account owner.\n" -"CustomerId: string\n" +"--CustomerId: string\n" " The ID of the customer. It must be 8 digits.\n" -"DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Email: string\n" - " The main email address for the account. This address is used for your \n" - " credentials and notifications.\n" -"FirstName: string\n" +"--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Email: string\n" + " The main email address for the account. This address is used for your credentials and \n" + " notifications.\n" +"--FirstName: string\n" " The first name of the account owner.\n" -"JobTitle: string\n" +"--JobTitle: string\n" " The job title of the account owner.\n" -"LastName: string\n" +"--LastName: string\n" " The last name of the account owner.\n" -"MobileNumber: string\n" +"--MobileNumber: string\n" " The mobile phone number of the account owner.\n" -"PhoneNumber: string\n" +"--PhoneNumber: string\n" " The landline phone number of the account owner.\n" -"StateProvince: string\n" +"--StateProvince: string\n" " The state/province of the account.\n" -"VatNumber: string\n" +"--VatNumber: string\n" " The value added tax (VAT) number for the account.\n" -"ZipCode: string\n" +"--ZipCode: string\n" " The ZIP code of the city.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"ExpirationDate: string\n" - " The date and time, or the date, at which you want the access key to \n" - " expire, in ISO 8601 format (for example, `2020-06-14T00:00:00.000Z`, or \n" - " `2020-06-14`). To remove an existing expiration date, use the method \n" - " without specifying this parameter.\n" -"UserName: string\n" - " The name of the EIM user that owns the key to be created. If you do not \n" - " specify a user name, this action creates an access key for the user who \n" - " sends the request (which can be the root account).\n" -, - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"Login: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--ExpirationDate: string\n" + " The date and time, or the date, at which you want the access key to expire, in ISO 8601 \n" + " format (for example, `2020-06-14T00:00:00.000Z`, or `2020-06-14`). To remove an existing \n" + " expiration date, use the method without specifying this parameter.\n" +"--UserName: string\n" + " The name of the EIM user that owns the key to be created. If you do not specify a user \n" + " name, this action creates an access key for the user who sends the request (which can be \n" + " the root account).\n" +, + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--Login: string\n" " The email address of the account.\n" -"Password: string\n" +"--Password: string\n" " The password of the account.\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"UserGroupName: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--UserGroupName: string\n" " The name of the group you want to add a user to.\n" -"UserGroupPath: string\n" +"--UserGroupPath: string\n" " The path to the group. If not specified, it is set to a slash (`/`).\n" -"UserName: string\n" +"--UserName: string\n" " The name of the user you want to add to the group.\n" -"UserPath: string\n" +"--UserPath: string\n" " The path to the user. If not specified, it is set to a slash (`/`).\n" , - "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" - " the action.\n" -"NetPeeringId: string\n" + "--DryRun: bool\n" + " If true, checks whether you have the required permissions to perform the action.\n" +"--NetPeeringId: string\n" " The ID of the Net peering you want to accept.\n" , NULL @@ -5349,6 +4853,7 @@ static int accepter_net_setter(struct accepter_net *args, struct osc_str *data) ARG_TO_JSON_STR("\"NetId\":", args->net_id); ret += 1; } + return !!ret; } static int access_key_setter(struct access_key *args, struct osc_str *data) { @@ -5379,6 +4884,7 @@ static int access_key_setter(struct access_key *args, struct osc_str *data) { ARG_TO_JSON_STR("\"State\":", args->state); ret += 1; } + return !!ret; } static int access_key_secret_key_setter(struct access_key_secret_key *args, struct osc_str *data) { @@ -5414,6 +4920,7 @@ static int access_key_secret_key_setter(struct access_key_secret_key *args, stru ARG_TO_JSON_STR("\"State\":", args->state); ret += 1; } + return !!ret; } static int access_log_setter(struct access_log *args, struct osc_str *data) { @@ -5437,6 +4944,7 @@ static int access_log_setter(struct access_log *args, struct osc_str *data) { ARG_TO_JSON(PublicationInterval, int, args->publication_interval); ret += 1; } + return !!ret; } static int account_setter(struct account *args, struct osc_str *data) { @@ -5528,6 +5036,7 @@ static int account_setter(struct account *args, struct osc_str *data) { ARG_TO_JSON_STR("\"ZipCode\":", args->zip_code); ret += 1; } + return !!ret; } static int api_access_policy_setter(struct api_access_policy *args, struct osc_str *data) { @@ -5541,6 +5050,7 @@ static int api_access_policy_setter(struct api_access_policy *args, struct osc_s ARG_TO_JSON(RequireTrustedEnv, bool, args->require_trusted_env); ret += 1; } + return !!ret; } static int api_access_rule_setter(struct api_access_rule *args, struct osc_str *data) { @@ -5604,6 +5114,7 @@ static int api_access_rule_setter(struct api_access_rule *args, struct osc_str * ARG_TO_JSON(IpRanges, string, args->ip_ranges_str); ret += 1; } + return !!ret; } static int application_sticky_cookie_policy_setter(struct application_sticky_cookie_policy *args, struct osc_str *data) { @@ -5619,6 +5130,7 @@ static int application_sticky_cookie_policy_setter(struct application_sticky_coo ARG_TO_JSON_STR("\"PolicyName\":", args->policy_name); ret += 1; } + return !!ret; } static int backend_vm_health_setter(struct backend_vm_health *args, struct osc_str *data) { @@ -5644,6 +5156,7 @@ static int backend_vm_health_setter(struct backend_vm_health *args, struct osc_s ARG_TO_JSON_STR("\"VmId\":", args->vm_id); ret += 1; } + return !!ret; } static int block_device_mapping_created_setter(struct block_device_mapping_created *args, struct osc_str *data) { @@ -5664,6 +5177,7 @@ static int block_device_mapping_created_setter(struct block_device_mapping_creat ARG_TO_JSON_STR("\"DeviceName\":", args->device_name); ret += 1; } + return !!ret; } static int block_device_mapping_image_setter(struct block_device_mapping_image *args, struct osc_str *data) { @@ -5689,6 +5203,7 @@ static int block_device_mapping_image_setter(struct block_device_mapping_image * ARG_TO_JSON_STR("\"VirtualDeviceName\":", args->virtual_device_name); ret += 1; } + return !!ret; } static int block_device_mapping_vm_creation_setter(struct block_device_mapping_vm_creation *args, struct osc_str *data) { @@ -5719,6 +5234,7 @@ static int block_device_mapping_vm_creation_setter(struct block_device_mapping_v ARG_TO_JSON_STR("\"VirtualDeviceName\":", args->virtual_device_name); ret += 1; } + return !!ret; } static int block_device_mapping_vm_update_setter(struct block_device_mapping_vm_update *args, struct osc_str *data) { @@ -5749,6 +5265,7 @@ static int block_device_mapping_vm_update_setter(struct block_device_mapping_vm_ ARG_TO_JSON_STR("\"VirtualDeviceName\":", args->virtual_device_name); ret += 1; } + return !!ret; } static int bsu_created_setter(struct bsu_created *args, struct osc_str *data) { @@ -5773,6 +5290,7 @@ static int bsu_created_setter(struct bsu_created *args, struct osc_str *data) { ARG_TO_JSON_STR("\"VolumeId\":", args->volume_id); ret += 1; } + return !!ret; } static int bsu_to_create_setter(struct bsu_to_create *args, struct osc_str *data) { @@ -5800,6 +5318,7 @@ static int bsu_to_create_setter(struct bsu_to_create *args, struct osc_str *data ARG_TO_JSON_STR("\"VolumeType\":", args->volume_type); ret += 1; } + return !!ret; } static int bsu_to_update_vm_setter(struct bsu_to_update_vm *args, struct osc_str *data) { @@ -5814,6 +5333,7 @@ static int bsu_to_update_vm_setter(struct bsu_to_update_vm *args, struct osc_str ARG_TO_JSON_STR("\"VolumeId\":", args->volume_id); ret += 1; } + return !!ret; } static int ca_setter(struct ca *args, struct osc_str *data) { @@ -5834,6 +5354,7 @@ static int ca_setter(struct ca *args, struct osc_str *data) { ARG_TO_JSON_STR("\"Description\":", args->description); ret += 1; } + return !!ret; } static int catalog_setter(struct catalog *args, struct osc_str *data) { @@ -5857,6 +5378,7 @@ static int catalog_setter(struct catalog *args, struct osc_str *data) { ARG_TO_JSON(Entries, string, args->entries_str); ret += 1; } + return !!ret; } static int catalog_entry_setter(struct catalog_entry *args, struct osc_str *data) { @@ -5901,6 +5423,7 @@ static int catalog_entry_setter(struct catalog_entry *args, struct osc_str *data ARG_TO_JSON(UnitPrice, double, args->unit_price); ret += 1; } + return !!ret; } static int catalogs_setter(struct catalogs *args, struct osc_str *data) { @@ -5939,6 +5462,7 @@ static int catalogs_setter(struct catalogs *args, struct osc_str *data) { ARG_TO_JSON_STR("\"ToDate\":", args->to_date); ret += 1; } + return !!ret; } static int client_gateway_setter(struct client_gateway *args, struct osc_str *data) { @@ -5986,6 +5510,7 @@ static int client_gateway_setter(struct client_gateway *args, struct osc_str *da ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int consumption_entry_setter(struct consumption_entry *args, struct osc_str *data) { @@ -6053,6 +5578,7 @@ static int consumption_entry_setter(struct consumption_entry *args, struct osc_s ARG_TO_JSON(Value, double, args->value); ret += 1; } + return !!ret; } static int dedicated_group_setter(struct dedicated_group *args, struct osc_str *data) { @@ -6114,6 +5640,7 @@ static int dedicated_group_setter(struct dedicated_group *args, struct osc_str * ARG_TO_JSON(VmIds, string, args->vm_ids_str); ret += 1; } + return !!ret; } static int dhcp_options_set_setter(struct dhcp_options_set *args, struct osc_str *data) { @@ -6199,6 +5726,7 @@ static int dhcp_options_set_setter(struct dhcp_options_set *args, struct osc_str ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int direct_link_setter(struct direct_link *args, struct osc_str *data) { @@ -6239,6 +5767,7 @@ static int direct_link_setter(struct direct_link *args, struct osc_str *data) { ARG_TO_JSON_STR("\"State\":", args->state); ret += 1; } + return !!ret; } static int direct_link_interface_setter(struct direct_link_interface *args, struct osc_str *data) { @@ -6277,6 +5806,7 @@ static int direct_link_interface_setter(struct direct_link_interface *args, stru ARG_TO_JSON(Vlan, int, args->vlan); ret += 1; } + return !!ret; } static int direct_link_interfaces_setter(struct direct_link_interfaces *args, struct osc_str *data) { @@ -6349,6 +5879,7 @@ static int direct_link_interfaces_setter(struct direct_link_interfaces *args, st ARG_TO_JSON(Vlan, int, args->vlan); ret += 1; } + return !!ret; } static int errors_setter(struct errors *args, struct osc_str *data) { @@ -6369,6 +5900,7 @@ static int errors_setter(struct errors *args, struct osc_str *data) { ARG_TO_JSON_STR("\"Type\":", args->type); ret += 1; } + return !!ret; } static int filters_access_keys_setter(struct filters_access_keys *args, struct osc_str *data) { @@ -6406,6 +5938,7 @@ static int filters_access_keys_setter(struct filters_access_keys *args, struct o ARG_TO_JSON(States, string, args->states_str); ret += 1; } + return !!ret; } static int filters_api_access_rule_setter(struct filters_api_access_rule *args, struct osc_str *data) { @@ -6491,6 +6024,7 @@ static int filters_api_access_rule_setter(struct filters_api_access_rule *args, ARG_TO_JSON(IpRanges, string, args->ip_ranges_str); ret += 1; } + return !!ret; } static int filters_api_log_setter(struct filters_api_log *args, struct osc_str *data) { @@ -6618,6 +6152,7 @@ static int filters_api_log_setter(struct filters_api_log *args, struct osc_str * ARG_TO_JSON(ResponseStatusCodes, string, args->response_status_codes_str); ret += 1; } + return !!ret; } static int filters_ca_setter(struct filters_ca *args, struct osc_str *data) { @@ -6671,6 +6206,7 @@ static int filters_ca_setter(struct filters_ca *args, struct osc_str *data) { ARG_TO_JSON(Descriptions, string, args->descriptions_str); ret += 1; } + return !!ret; } static int filters_catalogs_setter(struct filters_catalogs *args, struct osc_str *data) { @@ -6690,6 +6226,7 @@ static int filters_catalogs_setter(struct filters_catalogs *args, struct osc_str ARG_TO_JSON_STR("\"ToDate\":", args->to_date); ret += 1; } + return !!ret; } static int filters_client_gateway_setter(struct filters_client_gateway *args, struct osc_str *data) { @@ -6823,6 +6360,7 @@ static int filters_client_gateway_setter(struct filters_client_gateway *args, st ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int filters_dedicated_group_setter(struct filters_dedicated_group *args, struct osc_str *data) { @@ -6892,6 +6430,7 @@ static int filters_dedicated_group_setter(struct filters_dedicated_group *args, ARG_TO_JSON(SubregionNames, string, args->subregion_names_str); ret += 1; } + return !!ret; } static int filters_dhcp_options_setter(struct filters_dhcp_options *args, struct osc_str *data) { @@ -7029,6 +6568,7 @@ static int filters_dhcp_options_setter(struct filters_dhcp_options *args, struct ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int filters_direct_link_setter(struct filters_direct_link *args, struct osc_str *data) { @@ -7050,6 +6590,7 @@ static int filters_direct_link_setter(struct filters_direct_link *args, struct o ARG_TO_JSON(DirectLinkIds, string, args->direct_link_ids_str); ret += 1; } + return !!ret; } static int filters_direct_link_interface_setter(struct filters_direct_link_interface *args, struct osc_str *data) { @@ -7087,6 +6628,7 @@ static int filters_direct_link_interface_setter(struct filters_direct_link_inter ARG_TO_JSON(DirectLinkInterfaceIds, string, args->direct_link_interface_ids_str); ret += 1; } + return !!ret; } static int filters_export_task_setter(struct filters_export_task *args, struct osc_str *data) { @@ -7108,6 +6650,7 @@ static int filters_export_task_setter(struct filters_export_task *args, struct o ARG_TO_JSON(TaskIds, string, args->task_ids_str); ret += 1; } + return !!ret; } static int filters_flexible_gpu_setter(struct filters_flexible_gpu *args, struct osc_str *data) { @@ -7213,6 +6756,7 @@ static int filters_flexible_gpu_setter(struct filters_flexible_gpu *args, struct ARG_TO_JSON(VmIds, string, args->vm_ids_str); ret += 1; } + return !!ret; } static int filters_image_setter(struct filters_image *args, struct osc_str *data) { @@ -7578,6 +7122,7 @@ static int filters_image_setter(struct filters_image *args, struct osc_str *data ARG_TO_JSON(VirtualizationTypes, string, args->virtualization_types_str); ret += 1; } + return !!ret; } static int filters_internet_service_setter(struct filters_internet_service *args, struct osc_str *data) { @@ -7679,6 +7224,7 @@ static int filters_internet_service_setter(struct filters_internet_service *args ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int filters_keypair_setter(struct filters_keypair *args, struct osc_str *data) { @@ -7732,6 +7278,7 @@ static int filters_keypair_setter(struct filters_keypair *args, struct osc_str * ARG_TO_JSON(KeypairTypes, string, args->keypair_types_str); ret += 1; } + return !!ret; } static int filters_listener_rule_setter(struct filters_listener_rule *args, struct osc_str *data) { @@ -7753,6 +7300,7 @@ static int filters_listener_rule_setter(struct filters_listener_rule *args, stru ARG_TO_JSON(ListenerRuleNames, string, args->listener_rule_names_str); ret += 1; } + return !!ret; } static int filters_load_balancer_setter(struct filters_load_balancer *args, struct osc_str *data) { @@ -7774,6 +7322,7 @@ static int filters_load_balancer_setter(struct filters_load_balancer *args, stru ARG_TO_JSON(LoadBalancerNames, string, args->load_balancer_names_str); ret += 1; } + return !!ret; } static int filters_nat_service_setter(struct filters_nat_service *args, struct osc_str *data) { @@ -7907,6 +7456,7 @@ static int filters_nat_service_setter(struct filters_nat_service *args, struct o ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int filters_net_setter(struct filters_net *args, struct osc_str *data) { @@ -8028,6 +7578,7 @@ static int filters_net_setter(struct filters_net *args, struct osc_str *data) { ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int filters_net_access_point_setter(struct filters_net_access_point *args, struct osc_str *data) { @@ -8145,6 +7696,7 @@ static int filters_net_access_point_setter(struct filters_net_access_point *args ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int filters_net_peering_setter(struct filters_net_peering *args, struct osc_str *data) { @@ -8358,6 +7910,7 @@ static int filters_net_peering_setter(struct filters_net_peering *args, struct o ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int filters_nic_setter(struct filters_nic *args, struct osc_str *data) { @@ -8791,6 +8344,7 @@ static int filters_nic_setter(struct filters_nic *args, struct osc_str *data) { ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int filters_product_type_setter(struct filters_product_type *args, struct osc_str *data) { @@ -8812,6 +8366,7 @@ static int filters_product_type_setter(struct filters_product_type *args, struct ARG_TO_JSON(ProductTypeIds, string, args->product_type_ids_str); ret += 1; } + return !!ret; } static int filters_public_ip_setter(struct filters_public_ip *args, struct osc_str *data) { @@ -8993,6 +8548,7 @@ static int filters_public_ip_setter(struct filters_public_ip *args, struct osc_s ARG_TO_JSON(VmIds, string, args->vm_ids_str); ret += 1; } + return !!ret; } static int filters_quota_setter(struct filters_quota *args, struct osc_str *data) { @@ -9062,6 +8618,7 @@ static int filters_quota_setter(struct filters_quota *args, struct osc_str *data ARG_TO_JSON(ShortDescriptions, string, args->short_descriptions_str); ret += 1; } + return !!ret; } static int filters_route_table_setter(struct filters_route_table *args, struct osc_str *data) { @@ -9327,6 +8884,7 @@ static int filters_route_table_setter(struct filters_route_table *args, struct o ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int filters_security_group_setter(struct filters_security_group *args, struct osc_str *data) { @@ -9668,6 +9226,7 @@ static int filters_security_group_setter(struct filters_security_group *args, st ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int filters_server_certificate_setter(struct filters_server_certificate *args, struct osc_str *data) { @@ -9689,6 +9248,7 @@ static int filters_server_certificate_setter(struct filters_server_certificate * ARG_TO_JSON(Paths, string, args->paths_str); ret += 1; } + return !!ret; } static int filters_service_setter(struct filters_service *args, struct osc_str *data) { @@ -9726,6 +9286,7 @@ static int filters_service_setter(struct filters_service *args, struct osc_str * ARG_TO_JSON(ServiceNames, string, args->service_names_str); ret += 1; } + return !!ret; } static int filters_snapshot_setter(struct filters_snapshot *args, struct osc_str *data) { @@ -9937,6 +9498,7 @@ static int filters_snapshot_setter(struct filters_snapshot *args, struct osc_str ARG_TO_JSON(VolumeSizes, string, args->volume_sizes_str); ret += 1; } + return !!ret; } static int filters_subnet_setter(struct filters_subnet *args, struct osc_str *data) { @@ -10086,6 +9648,7 @@ static int filters_subnet_setter(struct filters_subnet *args, struct osc_str *da ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int filters_subregion_setter(struct filters_subregion *args, struct osc_str *data) { @@ -10139,6 +9702,7 @@ static int filters_subregion_setter(struct filters_subregion *args, struct osc_s ARG_TO_JSON(SubregionNames, string, args->subregion_names_str); ret += 1; } + return !!ret; } static int filters_tag_setter(struct filters_tag *args, struct osc_str *data) { @@ -10208,6 +9772,7 @@ static int filters_tag_setter(struct filters_tag *args, struct osc_str *data) { ARG_TO_JSON(Values, string, args->values_str); ret += 1; } + return !!ret; } static int filters_user_group_setter(struct filters_user_group *args, struct osc_str *data) { @@ -10234,6 +9799,7 @@ static int filters_user_group_setter(struct filters_user_group *args, struct osc ARG_TO_JSON(UserGroupIds, string, args->user_group_ids_str); ret += 1; } + return !!ret; } static int filters_virtual_gateway_setter(struct filters_virtual_gateway *args, struct osc_str *data) { @@ -10367,6 +9933,7 @@ static int filters_virtual_gateway_setter(struct filters_virtual_gateway *args, ARG_TO_JSON(VirtualGatewayIds, string, args->virtual_gateway_ids_str); ret += 1; } + return !!ret; } static int filters_vm_setter(struct filters_vm *args, struct osc_str *data) { @@ -11336,6 +10903,7 @@ static int filters_vm_setter(struct filters_vm *args, struct osc_str *data) { ARG_TO_JSON(VmTypes, string, args->vm_types_str); ret += 1; } + return !!ret; } static int filters_vm_group_setter(struct filters_vm_group *args, struct osc_str *data) { @@ -11501,6 +11069,7 @@ static int filters_vm_group_setter(struct filters_vm_group *args, struct osc_str ARG_TO_JSON(VmTemplateIds, string, args->vm_template_ids_str); ret += 1; } + return !!ret; } static int filters_vm_template_setter(struct filters_vm_template *args, struct osc_str *data) { @@ -11698,6 +11267,7 @@ static int filters_vm_template_setter(struct filters_vm_template *args, struct o ARG_TO_JSON(VmTemplateNames, string, args->vm_template_names_str); ret += 1; } + return !!ret; } static int filters_vm_type_setter(struct filters_vm_type *args, struct osc_str *data) { @@ -11835,6 +11405,7 @@ static int filters_vm_type_setter(struct filters_vm_type *args, struct osc_str * ARG_TO_JSON(VolumeSizes, string, args->volume_sizes_str); ret += 1; } + return !!ret; } static int filters_vms_state_setter(struct filters_vms_state *args, struct osc_str *data) { @@ -11952,6 +11523,7 @@ static int filters_vms_state_setter(struct filters_vms_state *args, struct osc_s ARG_TO_JSON(VmStates, string, args->vm_states_str); ret += 1; } + return !!ret; } static int filters_volume_setter(struct filters_volume *args, struct osc_str *data) { @@ -12185,6 +11757,7 @@ static int filters_volume_setter(struct filters_volume *args, struct osc_str *da ARG_TO_JSON(VolumeTypes, string, args->volume_types_str); ret += 1; } + return !!ret; } static int filters_vpn_connection_setter(struct filters_vpn_connection *args, struct osc_str *data) { @@ -12354,6 +11927,7 @@ static int filters_vpn_connection_setter(struct filters_vpn_connection *args, st ARG_TO_JSON(VpnConnectionIds, string, args->vpn_connection_ids_str); ret += 1; } + return !!ret; } static int flexible_gpu_setter(struct flexible_gpu *args, struct osc_str *data) { @@ -12393,6 +11967,7 @@ static int flexible_gpu_setter(struct flexible_gpu *args, struct osc_str *data) ARG_TO_JSON_STR("\"VmId\":", args->vm_id); ret += 1; } + return !!ret; } static int flexible_gpu_catalog_setter(struct flexible_gpu_catalog *args, struct osc_str *data) { @@ -12431,6 +12006,7 @@ static int flexible_gpu_catalog_setter(struct flexible_gpu_catalog *args, struct ARG_TO_JSON(VRam, int, args->vram); ret += 1; } + return !!ret; } static int health_check_setter(struct health_check *args, struct osc_str *data) { @@ -12466,6 +12042,7 @@ static int health_check_setter(struct health_check *args, struct osc_str *data) ARG_TO_JSON(UnhealthyThreshold, int, args->unhealthy_threshold); ret += 1; } + return !!ret; } static int image_setter(struct image *args, struct osc_str *data) { @@ -12603,6 +12180,7 @@ static int image_setter(struct image *args, struct osc_str *data) { ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int image_export_task_setter(struct image_export_task *args, struct osc_str *data) { @@ -12660,6 +12238,7 @@ static int image_export_task_setter(struct image_export_task *args, struct osc_s ARG_TO_JSON_STR("\"TaskId\":", args->task_id); ret += 1; } + return !!ret; } static int inline_policy_setter(struct inline_policy *args, struct osc_str *data) { @@ -12675,6 +12254,7 @@ static int inline_policy_setter(struct inline_policy *args, struct osc_str *data ARG_TO_JSON_STR("\"Name\":", args->name); ret += 1; } + return !!ret; } static int internet_service_setter(struct internet_service *args, struct osc_str *data) { @@ -12713,6 +12293,7 @@ static int internet_service_setter(struct internet_service *args, struct osc_str ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int keypair_setter(struct keypair *args, struct osc_str *data) { @@ -12733,6 +12314,7 @@ static int keypair_setter(struct keypair *args, struct osc_str *data) { ARG_TO_JSON_STR("\"KeypairType\":", args->keypair_type); ret += 1; } + return !!ret; } static int keypair_created_setter(struct keypair_created *args, struct osc_str *data) { @@ -12758,6 +12340,7 @@ static int keypair_created_setter(struct keypair_created *args, struct osc_str * ARG_TO_JSON_STR("\"PrivateKey\":", args->private_key); ret += 1; } + return !!ret; } static int link_nic_setter(struct link_nic *args, struct osc_str *data) { @@ -12791,6 +12374,7 @@ static int link_nic_setter(struct link_nic *args, struct osc_str *data) { ARG_TO_JSON_STR("\"VmId\":", args->vm_id); ret += 1; } + return !!ret; } static int link_nic_light_setter(struct link_nic_light *args, struct osc_str *data) { @@ -12814,6 +12398,7 @@ static int link_nic_light_setter(struct link_nic_light *args, struct osc_str *da ARG_TO_JSON_STR("\"State\":", args->state); ret += 1; } + return !!ret; } static int link_nic_to_update_setter(struct link_nic_to_update *args, struct osc_str *data) { @@ -12828,6 +12413,7 @@ static int link_nic_to_update_setter(struct link_nic_to_update *args, struct osc ARG_TO_JSON_STR("\"LinkNicId\":", args->link_nic_id); ret += 1; } + return !!ret; } static int link_public_ip_setter(struct link_public_ip *args, struct osc_str *data) { @@ -12858,6 +12444,7 @@ static int link_public_ip_setter(struct link_public_ip *args, struct osc_str *da ARG_TO_JSON_STR("\"PublicIpId\":", args->public_ip_id); ret += 1; } + return !!ret; } static int link_public_ip_light_for_vm_setter(struct link_public_ip_light_for_vm *args, struct osc_str *data) { @@ -12878,6 +12465,7 @@ static int link_public_ip_light_for_vm_setter(struct link_public_ip_light_for_vm ARG_TO_JSON_STR("\"PublicIpAccountId\":", args->public_ip_account_id); ret += 1; } + return !!ret; } static int link_route_table_setter(struct link_route_table *args, struct osc_str *data) { @@ -12907,6 +12495,7 @@ static int link_route_table_setter(struct link_route_table *args, struct osc_str ARG_TO_JSON_STR("\"SubnetId\":", args->subnet_id); ret += 1; } + return !!ret; } static int linked_policy_setter(struct linked_policy *args, struct osc_str *data) { @@ -12937,6 +12526,7 @@ static int linked_policy_setter(struct linked_policy *args, struct osc_str *data ARG_TO_JSON_STR("\"PolicyName\":", args->policy_name); ret += 1; } + return !!ret; } static int linked_volume_setter(struct linked_volume *args, struct osc_str *data) { @@ -12966,6 +12556,7 @@ static int linked_volume_setter(struct linked_volume *args, struct osc_str *data ARG_TO_JSON_STR("\"VolumeId\":", args->volume_id); ret += 1; } + return !!ret; } static int listener_setter(struct listener *args, struct osc_str *data) { @@ -13010,6 +12601,7 @@ static int listener_setter(struct listener *args, struct osc_str *data) { ARG_TO_JSON_STR("\"ServerCertificateId\":", args->server_certificate_id); ret += 1; } + return !!ret; } static int listener_for_creation_setter(struct listener_for_creation *args, struct osc_str *data) { @@ -13038,6 +12630,7 @@ static int listener_for_creation_setter(struct listener_for_creation *args, stru ARG_TO_JSON_STR("\"ServerCertificateId\":", args->server_certificate_id); ret += 1; } + return !!ret; } static int listener_rule_setter(struct listener_rule *args, struct osc_str *data) { @@ -13091,6 +12684,7 @@ static int listener_rule_setter(struct listener_rule *args, struct osc_str *data ARG_TO_JSON(VmIds, string, args->vm_ids_str); ret += 1; } + return !!ret; } static int listener_rule_for_creation_setter(struct listener_rule_for_creation *args, struct osc_str *data) { @@ -13120,6 +12714,7 @@ static int listener_rule_for_creation_setter(struct listener_rule_for_creation * ARG_TO_JSON(Priority, int, args->priority); ret += 1; } + return !!ret; } static int load_balancer_setter(struct load_balancer *args, struct osc_str *data) { @@ -13336,6 +12931,7 @@ static int load_balancer_setter(struct load_balancer *args, struct osc_str *data ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int load_balancer_light_setter(struct load_balancer_light *args, struct osc_str *data) { @@ -13350,6 +12946,7 @@ static int load_balancer_light_setter(struct load_balancer_light *args, struct o ARG_TO_JSON(LoadBalancerPort, int, args->load_balancer_port); ret += 1; } + return !!ret; } static int load_balancer_sticky_cookie_policy_setter(struct load_balancer_sticky_cookie_policy *args, struct osc_str *data) { @@ -13364,6 +12961,7 @@ static int load_balancer_sticky_cookie_policy_setter(struct load_balancer_sticky ARG_TO_JSON_STR("\"PolicyName\":", args->policy_name); ret += 1; } + return !!ret; } static int load_balancer_tag_setter(struct load_balancer_tag *args, struct osc_str *data) { @@ -13384,6 +12982,7 @@ static int load_balancer_tag_setter(struct load_balancer_tag *args, struct osc_s ARG_TO_JSON_STR("\"Value\":", args->value); ret += 1; } + return !!ret; } static int location_setter(struct location *args, struct osc_str *data) { @@ -13399,6 +12998,7 @@ static int location_setter(struct location *args, struct osc_str *data) { ARG_TO_JSON_STR("\"Name\":", args->name); ret += 1; } + return !!ret; } static int log_setter(struct log *args, struct osc_str *data) { @@ -13479,6 +13079,7 @@ static int log_setter(struct log *args, struct osc_str *data) { ARG_TO_JSON(ResponseStatusCode, int, args->response_status_code); ret += 1; } + return !!ret; } static int maintenance_event_setter(struct maintenance_event *args, struct osc_str *data) { @@ -13504,6 +13105,7 @@ static int maintenance_event_setter(struct maintenance_event *args, struct osc_s ARG_TO_JSON_STR("\"NotBefore\":", args->not_before); ret += 1; } + return !!ret; } static int nat_service_setter(struct nat_service *args, struct osc_str *data) { @@ -13570,6 +13172,7 @@ static int nat_service_setter(struct nat_service *args, struct osc_str *data) { ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int net_setter(struct net *args, struct osc_str *data) { @@ -13618,6 +13221,7 @@ static int net_setter(struct net *args, struct osc_str *data) { ARG_TO_JSON_STR("\"Tenancy\":", args->tenancy); ret += 1; } + return !!ret; } static int net_access_point_setter(struct net_access_point *args, struct osc_str *data) { @@ -13677,6 +13281,7 @@ static int net_access_point_setter(struct net_access_point *args, struct osc_str ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int net_peering_setter(struct net_peering *args, struct osc_str *data) { @@ -13740,6 +13345,7 @@ static int net_peering_setter(struct net_peering *args, struct osc_str *data) { ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int net_peering_state_setter(struct net_peering_state *args, struct osc_str *data) { @@ -13755,6 +13361,7 @@ static int net_peering_state_setter(struct net_peering_state *args, struct osc_s ARG_TO_JSON_STR("\"Name\":", args->name); ret += 1; } + return !!ret; } static int net_to_virtual_gateway_link_setter(struct net_to_virtual_gateway_link *args, struct osc_str *data) { @@ -13770,6 +13377,7 @@ static int net_to_virtual_gateway_link_setter(struct net_to_virtual_gateway_link ARG_TO_JSON_STR("\"State\":", args->state); ret += 1; } + return !!ret; } static int nic_setter(struct nic *args, struct osc_str *data) { @@ -13898,6 +13506,7 @@ static int nic_setter(struct nic *args, struct osc_str *data) { ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int nic_for_vm_creation_setter(struct nic_for_vm_creation *args, struct osc_str *data) { @@ -13964,6 +13573,7 @@ static int nic_for_vm_creation_setter(struct nic_for_vm_creation *args, struct o ARG_TO_JSON_STR("\"SubnetId\":", args->subnet_id); ret += 1; } + return !!ret; } static int nic_light_setter(struct nic_light *args, struct osc_str *data) { @@ -14069,6 +13679,7 @@ static int nic_light_setter(struct nic_light *args, struct osc_str *data) { ARG_TO_JSON_STR("\"SubnetId\":", args->subnet_id); ret += 1; } + return !!ret; } static int osu_api_key_setter(struct osu_api_key *args, struct osc_str *data) { @@ -14084,6 +13695,7 @@ static int osu_api_key_setter(struct osu_api_key *args, struct osc_str *data) { ARG_TO_JSON_STR("\"SecretKey\":", args->secret_key); ret += 1; } + return !!ret; } static int osu_export_image_export_task_setter(struct osu_export_image_export_task *args, struct osc_str *data) { @@ -14109,6 +13721,7 @@ static int osu_export_image_export_task_setter(struct osu_export_image_export_ta ARG_TO_JSON_STR("\"OsuPrefix\":", args->osu_prefix); ret += 1; } + return !!ret; } static int osu_export_snapshot_export_task_setter(struct osu_export_snapshot_export_task *args, struct osc_str *data) { @@ -14129,6 +13742,7 @@ static int osu_export_snapshot_export_task_setter(struct osu_export_snapshot_exp ARG_TO_JSON_STR("\"OsuPrefix\":", args->osu_prefix); ret += 1; } + return !!ret; } static int osu_export_to_create_setter(struct osu_export_to_create *args, struct osc_str *data) { @@ -14164,6 +13778,7 @@ static int osu_export_to_create_setter(struct osu_export_to_create *args, struct ARG_TO_JSON_STR("\"OsuPrefix\":", args->osu_prefix); ret += 1; } + return !!ret; } static int permissions_on_resource_setter(struct permissions_on_resource *args, struct osc_str *data) { @@ -14189,6 +13804,7 @@ static int permissions_on_resource_setter(struct permissions_on_resource *args, ARG_TO_JSON(GlobalPermission, bool, args->global_permission); ret += 1; } + return !!ret; } static int permissions_on_resource_creation_setter(struct permissions_on_resource_creation *args, struct osc_str *data) { @@ -14214,6 +13830,7 @@ static int permissions_on_resource_creation_setter(struct permissions_on_resourc STRY(osc_str_append_string(data, "}" )); ret += 1; } + return !!ret; } static int phase1_options_setter(struct phase1_options *args, struct osc_str *data) { @@ -14305,6 +13922,7 @@ static int phase1_options_setter(struct phase1_options *args, struct osc_str *da ARG_TO_JSON_STR("\"StartupAction\":", args->startup_action); ret += 1; } + return !!ret; } static int phase2_options_setter(struct phase2_options *args, struct osc_str *data) { @@ -14367,6 +13985,7 @@ static int phase2_options_setter(struct phase2_options *args, struct osc_str *da ARG_TO_JSON_STR("\"PreSharedKey\":", args->pre_shared_key); ret += 1; } + return !!ret; } static int placement_setter(struct placement *args, struct osc_str *data) { @@ -14382,6 +14001,7 @@ static int placement_setter(struct placement *args, struct osc_str *data) { ARG_TO_JSON_STR("\"Tenancy\":", args->tenancy); ret += 1; } + return !!ret; } static int policy_setter(struct policy *args, struct osc_str *data) { @@ -14435,6 +14055,7 @@ static int policy_setter(struct policy *args, struct osc_str *data) { ARG_TO_JSON(ResourcesCount, int, args->resources_count); ret += 1; } + return !!ret; } static int policy_version_setter(struct policy_version *args, struct osc_str *data) { @@ -14459,6 +14080,7 @@ static int policy_version_setter(struct policy_version *args, struct osc_str *da ARG_TO_JSON_STR("\"VersionId\":", args->version_id); ret += 1; } + return !!ret; } static int private_ip_setter(struct private_ip *args, struct osc_str *data) { @@ -14488,6 +14110,7 @@ static int private_ip_setter(struct private_ip *args, struct osc_str *data) { ARG_TO_JSON_STR("\"PrivateIp\":", args->private_ip); ret += 1; } + return !!ret; } static int private_ip_light_setter(struct private_ip_light *args, struct osc_str *data) { @@ -14502,6 +14125,7 @@ static int private_ip_light_setter(struct private_ip_light *args, struct osc_str ARG_TO_JSON_STR("\"PrivateIp\":", args->private_ip); ret += 1; } + return !!ret; } static int private_ip_light_for_vm_setter(struct private_ip_light_for_vm *args, struct osc_str *data) { @@ -14531,6 +14155,7 @@ static int private_ip_light_for_vm_setter(struct private_ip_light_for_vm *args, ARG_TO_JSON_STR("\"PrivateIp\":", args->private_ip); ret += 1; } + return !!ret; } static int product_type_setter(struct product_type *args, struct osc_str *data) { @@ -14551,6 +14176,7 @@ static int product_type_setter(struct product_type *args, struct osc_str *data) ARG_TO_JSON_STR("\"Vendor\":", args->vendor); ret += 1; } + return !!ret; } static int public_ip_setter(struct public_ip *args, struct osc_str *data) { @@ -14609,6 +14235,7 @@ static int public_ip_setter(struct public_ip *args, struct osc_str *data) { ARG_TO_JSON_STR("\"VmId\":", args->vm_id); ret += 1; } + return !!ret; } static int public_ip_light_setter(struct public_ip_light *args, struct osc_str *data) { @@ -14624,6 +14251,7 @@ static int public_ip_light_setter(struct public_ip_light *args, struct osc_str * ARG_TO_JSON_STR("\"PublicIpId\":", args->public_ip_id); ret += 1; } + return !!ret; } static int quota_setter(struct quota *args, struct osc_str *data) { @@ -14662,6 +14290,7 @@ static int quota_setter(struct quota *args, struct osc_str *data) { ARG_TO_JSON(UsedValue, int, args->used_value); ret += 1; } + return !!ret; } static int quota_types_setter(struct quota_types *args, struct osc_str *data) { @@ -14690,6 +14319,7 @@ static int quota_types_setter(struct quota_types *args, struct osc_str *data) { ARG_TO_JSON(Quotas, string, args->quotas_str); ret += 1; } + return !!ret; } static int read_linked_policies_filters_setter(struct read_linked_policies_filters *args, struct osc_str *data) { @@ -14700,6 +14330,7 @@ static int read_linked_policies_filters_setter(struct read_linked_policies_filte ARG_TO_JSON_STR("\"PathPrefix\":", args->path_prefix); ret += 1; } + return !!ret; } static int read_policies_filters_setter(struct read_policies_filters *args, struct osc_str *data) { @@ -14719,6 +14350,7 @@ static int read_policies_filters_setter(struct read_policies_filters *args, stru ARG_TO_JSON_STR("\"Scope\":", args->scope); ret += 1; } + return !!ret; } static int region_setter(struct region *args, struct osc_str *data) { @@ -14734,6 +14366,7 @@ static int region_setter(struct region *args, struct osc_str *data) { ARG_TO_JSON_STR("\"RegionName\":", args->region_name); ret += 1; } + return !!ret; } static int resource_load_balancer_tag_setter(struct resource_load_balancer_tag *args, struct osc_str *data) { @@ -14744,6 +14377,7 @@ static int resource_load_balancer_tag_setter(struct resource_load_balancer_tag * ARG_TO_JSON_STR("\"Key\":", args->key); ret += 1; } + return !!ret; } static int resource_tag_setter(struct resource_tag *args, struct osc_str *data) { @@ -14759,6 +14393,7 @@ static int resource_tag_setter(struct resource_tag *args, struct osc_str *data) ARG_TO_JSON_STR("\"Value\":", args->value); ret += 1; } + return !!ret; } static int route_setter(struct route *args, struct osc_str *data) { @@ -14819,6 +14454,7 @@ static int route_setter(struct route *args, struct osc_str *data) { ARG_TO_JSON_STR("\"VmId\":", args->vm_id); ret += 1; } + return !!ret; } static int route_light_setter(struct route_light *args, struct osc_str *data) { @@ -14839,6 +14475,7 @@ static int route_light_setter(struct route_light *args, struct osc_str *data) { ARG_TO_JSON_STR("\"State\":", args->state); ret += 1; } + return !!ret; } static int route_propagating_virtual_gateway_setter(struct route_propagating_virtual_gateway *args, struct osc_str *data) { @@ -14849,6 +14486,7 @@ static int route_propagating_virtual_gateway_setter(struct route_propagating_vir ARG_TO_JSON_STR("\"VirtualGatewayId\":", args->virtual_gateway_id); ret += 1; } + return !!ret; } static int route_table_setter(struct route_table *args, struct osc_str *data) { @@ -14936,6 +14574,7 @@ static int route_table_setter(struct route_table *args, struct osc_str *data) { ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int security_group_setter(struct security_group *args, struct osc_str *data) { @@ -15020,6 +14659,7 @@ static int security_group_setter(struct security_group *args, struct osc_str *da ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int security_group_light_setter(struct security_group_light *args, struct osc_str *data) { @@ -15035,6 +14675,7 @@ static int security_group_light_setter(struct security_group_light *args, struct ARG_TO_JSON_STR("\"SecurityGroupName\":", args->security_group_name); ret += 1; } + return !!ret; } static int security_group_rule_setter(struct security_group_rule *args, struct osc_str *data) { @@ -15103,6 +14744,7 @@ static int security_group_rule_setter(struct security_group_rule *args, struct o ARG_TO_JSON(ToPortRange, int, args->to_port_range); ret += 1; } + return !!ret; } static int security_groups_member_setter(struct security_groups_member *args, struct osc_str *data) { @@ -15123,6 +14765,7 @@ static int security_groups_member_setter(struct security_groups_member *args, st ARG_TO_JSON_STR("\"SecurityGroupName\":", args->security_group_name); ret += 1; } + return !!ret; } static int server_certificate_setter(struct server_certificate *args, struct osc_str *data) { @@ -15158,6 +14801,7 @@ static int server_certificate_setter(struct server_certificate *args, struct osc ARG_TO_JSON_STR("\"UploadDate\":", args->upload_date); ret += 1; } + return !!ret; } static int service_setter(struct service *args, struct osc_str *data) { @@ -15189,6 +14833,7 @@ static int service_setter(struct service *args, struct osc_str *data) { ARG_TO_JSON_STR("\"ServiceName\":", args->service_name); ret += 1; } + return !!ret; } static int snapshot_setter(struct snapshot *args, struct osc_str *data) { @@ -15265,6 +14910,7 @@ static int snapshot_setter(struct snapshot *args, struct osc_str *data) { ARG_TO_JSON(VolumeSize, int, args->volume_size); ret += 1; } + return !!ret; } static int snapshot_export_task_setter(struct snapshot_export_task *args, struct osc_str *data) { @@ -15322,6 +14968,7 @@ static int snapshot_export_task_setter(struct snapshot_export_task *args, struct ARG_TO_JSON_STR("\"TaskId\":", args->task_id); ret += 1; } + return !!ret; } static int source_net_setter(struct source_net *args, struct osc_str *data) { @@ -15342,6 +14989,7 @@ static int source_net_setter(struct source_net *args, struct osc_str *data) { ARG_TO_JSON_STR("\"NetId\":", args->net_id); ret += 1; } + return !!ret; } static int source_security_group_setter(struct source_security_group *args, struct osc_str *data) { @@ -15357,6 +15005,7 @@ static int source_security_group_setter(struct source_security_group *args, stru ARG_TO_JSON_STR("\"SecurityGroupName\":", args->security_group_name); ret += 1; } + return !!ret; } static int state_comment_setter(struct state_comment *args, struct osc_str *data) { @@ -15372,6 +15021,7 @@ static int state_comment_setter(struct state_comment *args, struct osc_str *data ARG_TO_JSON_STR("\"StateMessage\":", args->state_message); ret += 1; } + return !!ret; } static int subnet_setter(struct subnet *args, struct osc_str *data) { @@ -15428,6 +15078,7 @@ static int subnet_setter(struct subnet *args, struct osc_str *data) { ARG_TO_JSON(Tags, string, args->tags_str); ret += 1; } + return !!ret; } static int subregion_setter(struct subregion *args, struct osc_str *data) { @@ -15453,6 +15104,7 @@ static int subregion_setter(struct subregion *args, struct osc_str *data) { ARG_TO_JSON_STR("\"SubregionName\":", args->subregion_name); ret += 1; } + return !!ret; } static int tag_setter(struct tag *args, struct osc_str *data) { @@ -15478,6 +15130,7 @@ static int tag_setter(struct tag *args, struct osc_str *data) { ARG_TO_JSON_STR("\"Value\":", args->value); ret += 1; } + return !!ret; } static int user_setter(struct user *args, struct osc_str *data) { @@ -15508,6 +15161,7 @@ static int user_setter(struct user *args, struct osc_str *data) { ARG_TO_JSON_STR("\"UserName\":", args->user_name); ret += 1; } + return !!ret; } static int user_group_setter(struct user_group *args, struct osc_str *data) { @@ -15543,6 +15197,7 @@ static int user_group_setter(struct user_group *args, struct osc_str *data) { ARG_TO_JSON_STR("\"UserGroupId\":", args->user_group_id); ret += 1; } + return !!ret; } static int vgw_telemetry_setter(struct vgw_telemetry *args, struct osc_str *data) { @@ -15572,6 +15227,7 @@ static int vgw_telemetry_setter(struct vgw_telemetry *args, struct osc_str *data ARG_TO_JSON_STR("\"StateDescription\":", args->state_description); ret += 1; } + return !!ret; } static int virtual_gateway_setter(struct virtual_gateway *args, struct osc_str *data) { @@ -15628,6 +15284,7 @@ static int virtual_gateway_setter(struct virtual_gateway *args, struct osc_str * ARG_TO_JSON_STR("\"VirtualGatewayId\":", args->virtual_gateway_id); ret += 1; } + return !!ret; } static int vm_setter(struct vm *args, struct osc_str *data) { @@ -15866,6 +15523,7 @@ static int vm_setter(struct vm *args, struct osc_str *data) { ARG_TO_JSON_STR("\"VmType\":", args->vm_type); ret += 1; } + return !!ret; } static int vm_group_setter(struct vm_group *args, struct osc_str *data) { @@ -15965,6 +15623,7 @@ static int vm_group_setter(struct vm_group *args, struct osc_str *data) { ARG_TO_JSON_STR("\"VmTemplateId\":", args->vm_template_id); ret += 1; } + return !!ret; } static int vm_state_setter(struct vm_state *args, struct osc_str *data) { @@ -15985,6 +15644,7 @@ static int vm_state_setter(struct vm_state *args, struct osc_str *data) { ARG_TO_JSON_STR("\"VmId\":", args->vm_id); ret += 1; } + return !!ret; } static int vm_states_setter(struct vm_states *args, struct osc_str *data) { @@ -16023,6 +15683,7 @@ static int vm_states_setter(struct vm_states *args, struct osc_str *data) { ARG_TO_JSON_STR("\"VmState\":", args->vm_state); ret += 1; } + return !!ret; } static int vm_template_setter(struct vm_template *args, struct osc_str *data) { @@ -16094,6 +15755,7 @@ static int vm_template_setter(struct vm_template *args, struct osc_str *data) { ARG_TO_JSON_STR("\"VmTemplateName\":", args->vm_template_name); ret += 1; } + return !!ret; } static int vm_type_setter(struct vm_type *args, struct osc_str *data) { @@ -16141,6 +15803,7 @@ static int vm_type_setter(struct vm_type *args, struct osc_str *data) { ARG_TO_JSON(VolumeSize, int, args->volume_size); ret += 1; } + return !!ret; } static int volume_setter(struct volume *args, struct osc_str *data) { @@ -16220,6 +15883,7 @@ static int volume_setter(struct volume *args, struct osc_str *data) { ARG_TO_JSON_STR("\"VolumeType\":", args->volume_type); ret += 1; } + return !!ret; } static int vpn_connection_setter(struct vpn_connection *args, struct osc_str *data) { @@ -16323,6 +15987,7 @@ static int vpn_connection_setter(struct vpn_connection *args, struct osc_str *da STRY(osc_str_append_string(data, "}" )); ret += 1; } + return !!ret; } static int vpn_options_setter(struct vpn_options *args, struct osc_str *data) { @@ -16353,6 +16018,7 @@ static int vpn_options_setter(struct vpn_options *args, struct osc_str *data) { ARG_TO_JSON_STR("\"TunnelInsideIpRange\":", args->tunnel_inside_ip_range); ret += 1; } + return !!ret; } static int with_setter(struct with *args, struct osc_str *data) { @@ -16422,6 +16088,7 @@ static int with_setter(struct with *args, struct osc_str *data) { ARG_TO_JSON(ResponseStatusCode, bool, args->response_status_code); ret += 1; } + return !!ret; } diff --git a/osc_sdk.h b/osc_sdk.h index 7c44d0f..19da5dd 100644 --- a/osc_sdk.h +++ b/osc_sdk.h @@ -131,68 +131,68 @@ struct accepter_net { /* * The account ID of the owner of the accepter Net. */ - char *account_id; /* string */ + char *account_id; /* * The IP range for the accepter Net, in CIDR notation (for example, * `10.0.0.0/16`). */ - char *ip_range; /* string */ + char *ip_range; /* * The ID of the accepter Net. */ - char *net_id; /* string */ + char *net_id; }; struct access_key { /* * The ID of the access key. */ - char *access_key_id; /* string */ + char *access_key_id; /* * The date and time (UTC) of creation of the access key. */ - char *creation_date; /* string */ + char *creation_date; /* * The date (UTC) at which the access key expires. */ - char *expiration_date; /* string */ + char *expiration_date; /* * The date and time (UTC) of the last modification of the access key. */ - char *last_modification_date; /* string */ + char *last_modification_date; /* * The state of the access key (`ACTIVE` if the key is valid for API * calls, or `INACTIVE` if not). */ - char *state; /* string */ + char *state; }; struct access_key_secret_key { /* * The ID of the access key. */ - char *access_key_id; /* string */ + char *access_key_id; /* * The date and time (UTC) of creation of the access key. */ - char *creation_date; /* string */ + char *creation_date; /* * The date and time (UTC) at which the access key expires. */ - char *expiration_date; /* string */ + char *expiration_date; /* * The date and time (UTC) of the last modification of the access key. */ - char *last_modification_date; /* string */ + char *last_modification_date; /* * The access key that enables you to send requests. */ - char *secret_key; /* string */ + char *secret_key; /* * The state of the access key (`ACTIVE` if the key is valid for API * calls, or `INACTIVE` if not). */ - char *state; /* string */ + char *state; }; struct access_log { @@ -202,89 +202,89 @@ struct access_log { * `OsuBucketName` parameter is required. */ int is_set_is_enabled; - int is_enabled; /* bool */ + int is_enabled; /* * The name of the OOS bucket for the access logs. */ - char *osu_bucket_name; /* string */ + char *osu_bucket_name; /* * The path to the folder of the access logs in your OOS bucket (by * default, the `root` level of your bucket). */ - char *osu_bucket_prefix; /* string */ + char *osu_bucket_prefix; /* * The time interval for the publication of access logs in the OOS * bucket, in minutes. This value can be either `5` or `60` (by default, * `60`). */ int is_set_publication_interval; - int publication_interval; /* int */ + int publication_interval; }; struct account { /* * The ID of the account. */ - char *account_id; /* string */ + char *account_id; /* * One or more additional email addresses for the account. These * addresses are used for notifications only. */ char *additional_emails_str; - char **additional_emails; /* array string */ + char **additional_emails; /* * The city of the account owner. */ - char *city; /* string */ + char *city; /* * The name of the company for the account. */ - char *company_name; /* string */ + char *company_name; /* * The country of the account owner. */ - char *country; /* string */ + char *country; /* * The ID of the customer. */ - char *customer_id; /* string */ + char *customer_id; /* * The main email address for the account. This address is used for your * credentials and for notifications. */ - char *email; /* string */ + char *email; /* * The first name of the account owner. */ - char *first_name; /* string */ + char *first_name; /* * The job title of the account owner. */ - char *job_title; /* string */ + char *job_title; /* * The last name of the account owner. */ - char *last_name; /* string */ + char *last_name; /* * The mobile phone number of the account owner. */ - char *mobile_number; /* string */ + char *mobile_number; /* * The landline phone number of the account owner. */ - char *phone_number; /* string */ + char *phone_number; /* * The state/province of the account. */ - char *state_province; /* string */ + char *state_province; /* * The value added tax (VAT) number for the account. */ - char *vat_number; /* string */ + char *vat_number; /* * The ZIP code of the city. */ - char *zip_code; /* string */ + char *zip_code; }; struct api_access_policy { @@ -293,7 +293,7 @@ struct api_access_policy { * `0`, your access keys can have unlimited lifetimes. */ int is_set_max_access_key_expiration_seconds; - int max_access_key_expiration_seconds; /* int */ + int max_access_key_expiration_seconds; /* * If true, a trusted session is activated, allowing you to bypass * Certificate Authorities (CAs) enforcement. For more information, see @@ -307,69 +307,69 @@ struct api_access_policy { * ation.html#_multi_factor_authentication). */ int is_set_require_trusted_env; - int require_trusted_env; /* bool */ + int require_trusted_env; }; struct api_access_rule { /* * The ID of the API access rule. */ - char *api_access_rule_id; /* string */ + char *api_access_rule_id; /* * One or more IDs of Client Certificate Authorities (CAs) used for the * API access rule. */ char *ca_ids_str; - char **ca_ids; /* array string */ + char **ca_ids; /* * One or more Client Certificate Common Names (CNs). */ char *cns_str; - char **cns; /* array string */ + char **cns; /* * The description of the API access rule. */ - char *description; /* string */ + char *description; /* * One or more IP ranges used for the API access rule, in CIDR notation * (for example, `192.0.2.0/16`). */ char *ip_ranges_str; - char **ip_ranges; /* array string */ + char **ip_ranges; }; struct application_sticky_cookie_policy { /* * The name of the application cookie used for stickiness. */ - char *cookie_name; /* string */ + char *cookie_name; /* * The mnemonic name for the policy being created. The name must be * unique within a set of policies for this load balancer. */ - char *policy_name; /* string */ + char *policy_name; }; struct backend_vm_health { /* * The description of the state of the backend VM. */ - char *description; /* string */ + char *description; /* * The state of the backend VM (`InService` \\| `OutOfService` \\| * `Unknown`). */ - char *state; /* string */ + char *state; /* * Information about the cause of `OutOfService` VMs.
\nSpecifically, whether the cause is Elastic Load Balancing or the * VM (`ELB` \\| `Instance` \\| `N/A`). */ - char *state_reason; /* string */ + char *state_reason; /* * The ID of the backend VM. */ - char *vm_id; /* string */ + char *vm_id; }; struct bsu_created { @@ -378,43 +378,45 @@ struct bsu_created { * volume is not deleted when terminating the VM. */ int is_set_delete_on_vm_deletion; - int delete_on_vm_deletion; /* bool */ + int delete_on_vm_deletion; /* * The date and time (UTC) of attachment of the volume to the VM, in ISO * 8601 date-time format. */ - char *link_date; /* string */ + char *link_date; /* * The state of the volume. */ - char *state; /* string */ + char *state; /* * The ID of the volume. */ - char *volume_id; /* string */ + char *volume_id; }; struct block_device_mapping_created { /* * Information about the created BSU volume. - * -DeleteOnVmDeletion: bool - * If true, the volume is deleted when terminating the VM. If - * false, the volume is not deleted when terminating the VM. - * -LinkDate: string - * The date and time (UTC) of attachment of the volume to the VM, - * in ISO 8601 date-time format. - * -State: string + * --Bsu.DeleteOnVmDeletion: bool + * If true, the volume is deleted when terminating the VM. If false, + * the + * volume is not deleted when terminating the VM. + * --Bsu.LinkDate: string + * The date and time (UTC) of attachment of the volume to the VM, in + * ISO + * 8601 date-time format. + * --Bsu.State: string * The state of the volume. - * -VolumeId: string + * --Bsu.VolumeId: string * The ID of the volume. */ char *bsu_str; int is_set_bsu; - struct bsu_created bsu; /* ref BsuCreated */ + struct bsu_created bsu; /* * The name of the device. */ - char *device_name; /* string */ + char *device_name; }; struct bsu_to_create { @@ -423,7 +425,7 @@ struct bsu_to_create { * the VM. If false, the volume is not deleted when terminating the VM. */ int is_set_delete_on_vm_deletion; - int delete_on_vm_deletion; /* bool */ + int delete_on_vm_deletion; /* * The number of I/O operations per second (IOPS). This parameter must * be specified only if you create an `io1` volume. The maximum number @@ -431,11 +433,11 @@ struct bsu_to_create { * performance ratio of 300 IOPS per gibibyte. */ int is_set_iops; - int iops; /* int */ + int iops; /* * The ID of the snapshot used to create the volume. */ - char *snapshot_id; /* string */ + char *snapshot_id; /* * The size of the volume, in gibibytes (GiB).
\nIf you specify a * snapshot ID, the volume size must be at least equal to the snapshot @@ -443,7 +445,7 @@ struct bsu_to_create { * volume is created with a size similar to the snapshot one. */ int is_set_volume_size; - int volume_size; /* int */ + int volume_size; /* * The type of the volume (`standard` \\| `io1` \\| `gp2`). If not * specified in the request, a `standard` volume is created.
\nFor @@ -452,100 +454,116 @@ struct bsu_to_create { * IOPS](https://docs.outscale.com/en/userguide/About-Volumes.html#_volum * e_types_and_iops). */ - char *volume_type; /* string */ + char *volume_type; }; struct block_device_mapping_image { /* * Information about the BSU volume to create. - * -DeleteOnVmDeletion: bool + * --Bsu.DeleteOnVmDeletion: bool * By default or if set to true, the volume is deleted when - * terminating the VM. If false, the volume is not deleted when - * terminating the VM. - * -Iops: int + * terminating the + * VM. If false, the volume is not deleted when terminating the VM. + * --Bsu.Iops: int * The number of I/O operations per second (IOPS). This parameter - * must be specified only if you create an `io1` volume. The - * maximum number of IOPS allowed for `io1` volumes is `13000` - * with a maximum performance ratio of 300 IOPS per gibibyte. - * -SnapshotId: string + * must be + * specified only if you create an `io1` volume. The maximum number + * of IOPS + * allowed for `io1` volumes is `13000` with a maximum performance + * ratio of + * 300 IOPS per gibibyte. + * --Bsu.SnapshotId: string * The ID of the snapshot used to create the volume. - * -VolumeSize: int - * The size of the volume, in gibibytes (GiB).
\nIf you - * specify a snapshot ID, the volume size must be at least equal - * to the snapshot size.
\nIf you specify a snapshot ID but - * no volume size, the volume is created with a size similar to - * the snapshot one. - * -VolumeType: string - * The type of the volume (`standard` \\| `io1` \\| `gp2`). If - * not specified in the request, a `standard` volume is - * created.
\nFor more information about volume types, see - * [About Volumes > Volume Types and - * IOPS](https://docs.outscale.com/en/userguide/About-Volumes.html# - * _volume_types_and_iops). + * --Bsu.VolumeSize: int + * The size of the volume, in gibibytes (GiB).
\nIf you specify + * a + * snapshot ID, the volume size must be at least equal to the + * snapshot + * size.
\nIf you specify a snapshot ID but no volume size, the + * volume + * is created with a size similar to the snapshot one. + * --Bsu.VolumeType: string + * The type of the volume (`standard` \\| `io1` \\| `gp2`). If not + * specified in the request, a `standard` volume is created.
\nFor more + * information about volume types, see [About Volumes > Volume Types + * and + * + * IOPS](https://docs.outscale.com/en/userguide/About-Volumes.html#_volum + * e_ty + * pes_and_iops). */ char *bsu_str; int is_set_bsu; - struct bsu_to_create bsu; /* ref BsuToCreate */ + struct bsu_to_create bsu; /* * The device name for the volume. For a root device, you must use * `/dev/sda1`. For other volumes, you must use `/dev/sdX`, `/dev/sdXX`, * `/dev/xvdX`, or `/dev/xvdXX` (where the first `X` is a letter between * `b` and `z`, and the second `X` is a letter between `a` and `z`). */ - char *device_name; /* string */ + char *device_name; /* * The name of the virtual device (`ephemeralN`). */ - char *virtual_device_name; /* string */ + char *virtual_device_name; }; struct block_device_mapping_vm_creation { /* * Information about the BSU volume to create. - * -DeleteOnVmDeletion: bool + * --Bsu.DeleteOnVmDeletion: bool * By default or if set to true, the volume is deleted when - * terminating the VM. If false, the volume is not deleted when - * terminating the VM. - * -Iops: int + * terminating the + * VM. If false, the volume is not deleted when terminating the VM. + * --Bsu.Iops: int * The number of I/O operations per second (IOPS). This parameter - * must be specified only if you create an `io1` volume. The - * maximum number of IOPS allowed for `io1` volumes is `13000` - * with a maximum performance ratio of 300 IOPS per gibibyte. - * -SnapshotId: string + * must be + * specified only if you create an `io1` volume. The maximum number + * of IOPS + * allowed for `io1` volumes is `13000` with a maximum performance + * ratio of + * 300 IOPS per gibibyte. + * --Bsu.SnapshotId: string * The ID of the snapshot used to create the volume. - * -VolumeSize: int - * The size of the volume, in gibibytes (GiB).
\nIf you - * specify a snapshot ID, the volume size must be at least equal - * to the snapshot size.
\nIf you specify a snapshot ID but - * no volume size, the volume is created with a size similar to - * the snapshot one. - * -VolumeType: string - * The type of the volume (`standard` \\| `io1` \\| `gp2`). If - * not specified in the request, a `standard` volume is - * created.
\nFor more information about volume types, see - * [About Volumes > Volume Types and - * IOPS](https://docs.outscale.com/en/userguide/About-Volumes.html# - * _volume_types_and_iops). + * --Bsu.VolumeSize: int + * The size of the volume, in gibibytes (GiB).
\nIf you specify + * a + * snapshot ID, the volume size must be at least equal to the + * snapshot + * size.
\nIf you specify a snapshot ID but no volume size, the + * volume + * is created with a size similar to the snapshot one. + * --Bsu.VolumeType: string + * The type of the volume (`standard` \\| `io1` \\| `gp2`). If not + * specified in the request, a `standard` volume is created.
\nFor more + * information about volume types, see [About Volumes > Volume Types + * and + * + * IOPS](https://docs.outscale.com/en/userguide/About-Volumes.html#_volum + * e_ty + * pes_and_iops). */ char *bsu_str; int is_set_bsu; - struct bsu_to_create bsu; /* ref BsuToCreate */ + struct bsu_to_create bsu; /* * The device name for the volume. For a root device, you must use * `/dev/sda1`. For other volumes, you must use `/dev/sdX`, `/dev/sdXX`, * `/dev/xvdX`, or `/dev/xvdXX` (where the first `X` is a letter between * `b` and `z`, and the second `X` is a letter between `a` and `z`). */ - char *device_name; /* string */ + char *device_name; /* * Removes the device which is included in the block device mapping of * the OMI. */ - char *no_device; /* string */ + char *no_device; /* * The name of the virtual device (`ephemeralN`). */ - char *virtual_device_name; /* string */ + char *virtual_device_name; }; struct bsu_to_update_vm { @@ -554,169 +572,175 @@ struct bsu_to_update_vm { * to false, the volume is not deleted when terminating the VM. */ int is_set_delete_on_vm_deletion; - int delete_on_vm_deletion; /* bool */ + int delete_on_vm_deletion; /* * The ID of the volume. */ - char *volume_id; /* string */ + char *volume_id; }; struct block_device_mapping_vm_update { /* * Information about the BSU volume. - * -DeleteOnVmDeletion: bool - * If set to true, the volume is deleted when terminating the VM. - * If set to false, the volume is not deleted when terminating the - * VM. - * -VolumeId: string + * --Bsu.DeleteOnVmDeletion: bool + * If set to true, the volume is deleted when terminating the VM. If + * set to + * false, the volume is not deleted when terminating the VM. + * --Bsu.VolumeId: string * The ID of the volume. */ char *bsu_str; int is_set_bsu; - struct bsu_to_update_vm bsu; /* ref BsuToUpdateVm */ + struct bsu_to_update_vm bsu; /* * The device name for the volume. For a root device, you must use * `/dev/sda1`. For other volumes, you must use `/dev/sdX`, `/dev/sdXX`, * `/dev/xvdX`, or `/dev/xvdXX` (where the first `X` is a letter between * `b` and `z`, and the second `X` is a letter between `a` and `z`). */ - char *device_name; /* string */ + char *device_name; /* * Removes the device which is included in the block device mapping of * the OMI. */ - char *no_device; /* string */ + char *no_device; /* * The name of the virtual device (`ephemeralN`). */ - char *virtual_device_name; /* string */ + char *virtual_device_name; }; struct ca { /* * The fingerprint of the CA. */ - char *ca_fingerprint; /* string */ + char *ca_fingerprint; /* * The ID of the CA. */ - char *ca_id; /* string */ + char *ca_id; /* * The description of the CA. */ - char *description; /* string */ + char *description; }; struct catalog { /* * One or more catalog entries. * Information about the catalog entry. - * -Category: string + * --Entries.INDEX.Category: string * The category of the catalog entry (for example, `network`). - * -Flags: string - * When returned and equal to `PER_MONTH`, the price of the - * catalog entry is calculated on a monthly basis. - * -Operation: string + * --Entries.INDEX.Flags: string + * When returned and equal to `PER_MONTH`, the price of the catalog + * entry + * is calculated on a monthly basis. + * --Entries.INDEX.Operation: string * The API call associated with the catalog entry (for example, - * `CreateVms` or `RunInstances`). - * -Service: string + * `CreateVms` + * or `RunInstances`). + * --Entries.INDEX.Service: string * The service associated with the catalog entry (`TinaOS-FCU`, * `TinaOS-LBU`, `TinaOS-DirectLink`, or `TinaOS-OOS`). - * -SubregionName: string + * --Entries.INDEX.SubregionName: string * The Subregion associated with the catalog entry. - * -Title: string + * --Entries.INDEX.Title: string * The description of the catalog entry. - * -Type: string + * --Entries.INDEX.Type: string * The type of resource associated with the catalog entry. - * -UnitPrice: double + * --Entries.INDEX.UnitPrice: double * The unit price of the catalog entry, in the currency of the - * Region's catalog. + * Region's + * catalog. */ char *entries_str; int nb_entries; - struct catalog_entry *entries; /* array ref CatalogEntry */ + struct catalog_entry *entries; }; struct catalog_entry { /* * The category of the catalog entry (for example, `network`). */ - char *category; /* string */ + char *category; /* * When returned and equal to `PER_MONTH`, the price of the catalog * entry is calculated on a monthly basis. */ - char *flags; /* string */ + char *flags; /* * The API call associated with the catalog entry (for example, * `CreateVms` or `RunInstances`). */ - char *operation; /* string */ + char *operation; /* * The service associated with the catalog entry (`TinaOS-FCU`, * `TinaOS-LBU`, `TinaOS-DirectLink`, or `TinaOS-OOS`). */ - char *service; /* string */ + char *service; /* * The Subregion associated with the catalog entry. */ - char *subregion_name; /* string */ + char *subregion_name; /* * The description of the catalog entry. */ - char *title; /* string */ + char *title; /* * The type of resource associated with the catalog entry. */ - char *type; /* string */ + char *type; /* * The unit price of the catalog entry, in the currency of the Region's * catalog. */ int is_set_unit_price; - double unit_price; /* double */ + double unit_price; }; struct catalogs { /* * One or more catalog entries. * Information about the catalog entry. - * -Category: string + * --Entries.INDEX.Category: string * The category of the catalog entry (for example, `network`). - * -Flags: string - * When returned and equal to `PER_MONTH`, the price of the - * catalog entry is calculated on a monthly basis. - * -Operation: string + * --Entries.INDEX.Flags: string + * When returned and equal to `PER_MONTH`, the price of the catalog + * entry + * is calculated on a monthly basis. + * --Entries.INDEX.Operation: string * The API call associated with the catalog entry (for example, - * `CreateVms` or `RunInstances`). - * -Service: string + * `CreateVms` + * or `RunInstances`). + * --Entries.INDEX.Service: string * The service associated with the catalog entry (`TinaOS-FCU`, * `TinaOS-LBU`, `TinaOS-DirectLink`, or `TinaOS-OOS`). - * -SubregionName: string + * --Entries.INDEX.SubregionName: string * The Subregion associated with the catalog entry. - * -Title: string + * --Entries.INDEX.Title: string * The description of the catalog entry. - * -Type: string + * --Entries.INDEX.Type: string * The type of resource associated with the catalog entry. - * -UnitPrice: double + * --Entries.INDEX.UnitPrice: double * The unit price of the catalog entry, in the currency of the - * Region's catalog. + * Region's + * catalog. */ char *entries_str; int nb_entries; - struct catalog_entry *entries; /* array ref CatalogEntry */ + struct catalog_entry *entries; /* * The beginning of the time period (UTC). */ - char *from_date; /* string */ + char *from_date; /* * The state of the catalog (`CURRENT` \\| `OBSOLETE`). */ - char *state; /* string */ + char *state; /* * The end of the time period (UTC). */ - char *to_date; /* string */ + char *to_date; }; struct client_gateway { @@ -726,135 +750,135 @@ struct client_gateway { * Internet. */ int is_set_bgp_asn; - int bgp_asn; /* int */ + int bgp_asn; /* * The ID of the client gateway. */ - char *client_gateway_id; /* string */ + char *client_gateway_id; /* * The type of communication tunnel used by the client gateway (only * `ipsec.1` is supported). */ - char *connection_type; /* string */ + char *connection_type; /* * The public IPv4 address of the client gateway (must be a fixed * address into a NATed network). */ - char *public_ip; /* string */ + char *public_ip; /* * The state of the client gateway (`pending` \\| `available` \\| * `deleting` \\| `deleted`). */ - char *state; /* string */ + char *state; /* * One or more tags associated with the client gateway. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; }; struct consumption_entry { /* * The ID of your TINA account. */ - char *account_id; /* string */ + char *account_id; /* * The category of the resource (for example, `network`). */ - char *category; /* string */ + char *category; /* * The beginning of the time period (UTC). */ - char *from_date; /* string */ + char *from_date; /* * The API call that triggered the resource consumption (for example, * `RunInstances` or `CreateVolume`). */ - char *operation; /* string */ + char *operation; /* * The ID of the TINA account which is billed for your consumption. It * can be different from your account in the `AccountId` parameter. */ - char *paying_account_id; /* string */ + char *paying_account_id; /* * The total price of the consumed resource during the specified time * period, in the currency of the Region's catalog. */ int is_set_price; - double price; /* double */ + double price; /* * The service of the API call (`TinaOS-FCU`, `TinaOS-LBU`, * `TinaOS-DirectLink`, `TinaOS-OOS`, or `TinaOS-OSU`). */ - char *service; /* string */ + char *service; /* * The name of the Subregion. */ - char *subregion_name; /* string */ + char *subregion_name; /* * A description of the consumed resource. */ - char *title; /* string */ + char *title; /* * The end of the time period (UTC). */ - char *to_date; /* string */ + char *to_date; /* * The type of resource, depending on the API call. */ - char *type; /* string */ + char *type; /* * The unit price of the consumed resource, in the currency of the * Region's catalog. */ int is_set_unit_price; - double unit_price; /* double */ + double unit_price; /* * The consumed amount for the resource. The unit depends on the * resource type. For more information, see the `Title` element. */ int is_set_value; - double value; /* double */ + double value; }; struct dedicated_group { /* * The account ID of the owners of the dedicated group. */ - char *account_id; /* string */ + char *account_id; /* * The processor generation. */ int is_set_cpu_generation; - int cpu_generation; /* int */ + int cpu_generation; /* * The ID of the dedicated group. */ - char *dedicated_group_id; /* string */ + char *dedicated_group_id; /* * The name of the dedicated group. */ - char *name; /* string */ + char *name; /* * The IDs of the Nets in the dedicated group. */ char *net_ids_str; - char **net_ids; /* array string */ + char **net_ids; /* * The name of the Subregion in which the dedicated group is located. */ - char *subregion_name; /* string */ + char *subregion_name; /* * The IDs of the VMs in the dedicated group. */ char *vm_ids_str; - char **vm_ids; /* array string */ + char **vm_ids; }; struct dhcp_options_set { @@ -862,68 +886,68 @@ struct dhcp_options_set { * If true, the DHCP options set is a default one. If false, it is not. */ int is_set_default_arg; - int default_arg; /* bool */ + int default_arg; /* * The ID of the DHCP options set. */ - char *dhcp_options_set_id; /* string */ + char *dhcp_options_set_id; /* * The domain name. */ - char *domain_name; /* string */ + char *domain_name; /* * One or more IPs for the domain name servers. */ char *domain_name_servers_str; - char **domain_name_servers; /* array string */ + char **domain_name_servers; /* * One or more IPs for the log servers. */ char *log_servers_str; - char **log_servers; /* array string */ + char **log_servers; /* * One or more IPs for the NTP servers. */ char *ntp_servers_str; - char **ntp_servers; /* array string */ + char **ntp_servers; /* * One or more tags associated with the DHCP options set. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; }; struct direct_link { /* * The account ID of the owner of the DirectLink. */ - char *account_id; /* string */ + char *account_id; /* * The physical link bandwidth (either 1 Gbps or 10 Gbps). */ - char *bandwidth; /* string */ + char *bandwidth; /* * The ID of the DirectLink (for example, `dxcon-xxxxxxxx`). */ - char *direct_link_id; /* string */ + char *direct_link_id; /* * The name of the DirectLink. */ - char *direct_link_name; /* string */ + char *direct_link_name; /* * The datacenter where the DirectLink is located. */ - char *location; /* string */ + char *location; /* * The Region in which the DirectLink has been created. */ - char *region_name; /* string */ + char *region_name; /* * The state of the DirectLink.
\n* `requested`: The DirectLink is * requested but the request has not been validated yet.
\n* @@ -933,7 +957,7 @@ struct direct_link { * ready to use.
\n* `deleting`: The deletion process is in * progress.
\n* `deleted`: The DirectLink is deleted. */ - char *state; /* string */ + char *state; }; struct direct_link_interface { @@ -943,99 +967,99 @@ struct direct_link_interface { * between `64512` and `65534`. */ int is_set_bgp_asn; - int bgp_asn; /* int */ + int bgp_asn; /* * The BGP authentication key. */ - char *bgp_key; /* string */ + char *bgp_key; /* * The IP on the customer's side of the DirectLink interface. */ - char *client_private_ip; /* string */ + char *client_private_ip; /* * The name of the DirectLink interface. */ - char *direct_link_interface_name; /* string */ + char *direct_link_interface_name; /* * The IP on the OUTSCALE side of the DirectLink interface. */ - char *outscale_private_ip; /* string */ + char *outscale_private_ip; /* * The ID of the target virtual gateway. */ - char *virtual_gateway_id; /* string */ + char *virtual_gateway_id; /* * The VLAN number associated with the DirectLink interface. This number * must be unique and be between `2` and `4094`. */ int is_set_vlan; - int vlan; /* int */ + int vlan; }; struct direct_link_interfaces { /* * The account ID of the owner of the DirectLink interface. */ - char *account_id; /* string */ + char *account_id; /* * The BGP (Border Gateway Protocol) ASN (Autonomous System Number) on * the customer's side of the DirectLink interface. */ int is_set_bgp_asn; - int bgp_asn; /* int */ + int bgp_asn; /* * The BGP authentication key. */ - char *bgp_key; /* string */ + char *bgp_key; /* * The IP on the customer's side of the DirectLink interface. */ - char *client_private_ip; /* string */ + char *client_private_ip; /* * The ID of the DirectLink. */ - char *direct_link_id; /* string */ + char *direct_link_id; /* * The ID of the DirectLink interface. */ - char *direct_link_interface_id; /* string */ + char *direct_link_interface_id; /* * The name of the DirectLink interface. */ - char *direct_link_interface_name; /* string */ + char *direct_link_interface_name; /* * The type of the DirectLink interface (always `private`). */ - char *interface_type; /* string */ + char *interface_type; /* * The datacenter where the DirectLink interface is located. */ - char *location; /* string */ + char *location; /* * The maximum transmission unit (MTU) of the DirectLink interface, in * bytes (always `1500`). */ int is_set_mtu; - int mtu; /* int */ + int mtu; /* * The IP on the OUTSCALE side of the DirectLink interface. */ - char *outscale_private_ip; /* string */ + char *outscale_private_ip; /* * The state of the DirectLink interface (`pending` \\| `available` \\| * `deleting` \\| `deleted` \\| `confirming` \\| `rejected` \\| * `expired`). */ - char *state; /* string */ + char *state; /* * The ID of the target virtual gateway. */ - char *virtual_gateway_id; /* string */ + char *virtual_gateway_id; /* * The VLAN number associated with the DirectLink interface. */ int is_set_vlan; - int vlan; /* int */ + int vlan; }; struct errors { @@ -1044,15 +1068,15 @@ struct errors { * returned code in the [errors page](api-errors.html) to find more * details about the error. */ - char *code; /* string */ + char *code; /* * A description providing more details about the error. */ - char *details; /* string */ + char *details; /* * The type of the error (for example, `InvalidParameterValue`). */ - char *type; /* string */ + char *type; }; struct filters_access_keys { @@ -1060,12 +1084,12 @@ struct filters_access_keys { * The IDs of the access keys. */ char *access_key_ids_str; - char **access_key_ids; /* array string */ + char **access_key_ids; /* * The states of the access keys (`ACTIVE` \\| `INACTIVE`). */ char *states_str; - char **states; /* array string */ + char **states; }; struct filters_api_access_rule { @@ -1073,27 +1097,27 @@ struct filters_api_access_rule { * One or more IDs of API access rules. */ char *api_access_rule_ids_str; - char **api_access_rule_ids; /* array string */ + char **api_access_rule_ids; /* * One or more IDs of Client Certificate Authorities (CAs). */ char *ca_ids_str; - char **ca_ids; /* array string */ + char **ca_ids; /* * One or more Client Certificate Common Names (CNs). */ char *cns_str; - char **cns; /* array string */ + char **cns; /* * One or more descriptions of API access rules. */ char *descriptions_str; - char **descriptions; /* array string */ + char **descriptions; /* * One or more IPs or CIDR blocks (for example, `192.0.2.0/16`). */ char *ip_ranges_str; - char **ip_ranges; /* array string */ + char **ip_ranges; }; struct filters_api_log { @@ -1101,52 +1125,52 @@ struct filters_api_log { * The access keys used for the logged calls. */ char *query_access_keys_str; - char **query_access_keys; /* array string */ + char **query_access_keys; /* * The names of the APIs of the logged calls (always `oapi` for the * OUTSCALE API). */ char *query_api_names_str; - char **query_api_names; /* array string */ + char **query_api_names; /* * The names of the logged calls. */ char *query_call_names_str; - char **query_call_names; /* array string */ + char **query_call_names; /* * The date and time, or the date, after which you want to retrieve * logged calls, in ISO 8601 format (for example, * `2020-06-14T00:00:00.000Z` or `2020-06-14`). By default, this date is * set to 48 hours before the `QueryDateBefore` parameter value. */ - char *query_date_after; /* string */ + char *query_date_after; /* * The date and time, or the date, before which you want to retrieve * logged calls, in ISO 8601 format (for example, * `2020-06-30T00:00:00.000Z` or `2020-06-14`). By default, this date is * set to now, or 48 hours after the `QueryDateAfter` parameter value. */ - char *query_date_before; /* string */ + char *query_date_before; /* * The IPs used for the logged calls. */ char *query_ip_addresses_str; - char **query_ip_addresses; /* array string */ + char **query_ip_addresses; /* * The user agents of the HTTP requests of the logged calls. */ char *query_user_agents_str; - char **query_user_agents; /* array string */ + char **query_user_agents; /* * The request IDs provided in the responses of the logged calls. */ char *request_ids_str; - char **request_ids; /* array string */ + char **request_ids; /* * The HTTP status codes of the logged calls. */ char *response_status_codes_str; - int *response_status_codes; /* array integer */ + int *response_status_codes; }; struct filters_ca { @@ -1154,17 +1178,17 @@ struct filters_ca { * The fingerprints of the CAs. */ char *ca_fingerprints_str; - char **ca_fingerprints; /* array string */ + char **ca_fingerprints; /* * The IDs of the CAs. */ char *ca_ids_str; - char **ca_ids; /* array string */ + char **ca_ids; /* * The descriptions of the CAs. */ char *descriptions_str; - char **descriptions; /* array string */ + char **descriptions; }; struct filters_catalogs { @@ -1173,19 +1197,19 @@ struct filters_catalogs { * false, returns the current catalog and past catalogs. */ int is_set_current_catalog_only; - int current_catalog_only; /* bool */ + int current_catalog_only; /* * The beginning of the time period, in ISO 8601 date format (for * example, `2020-06-14`). This date cannot be older than 3 years. You * must specify the parameters `FromDate` and `ToDate` together. */ - char *from_date; /* string */ + char *from_date; /* * The end of the time period, in ISO 8601 date format (for example, * `2020-06-30`). You must specify the parameters `FromDate` and * `ToDate` together. */ - char *to_date; /* string */ + char *to_date; }; struct filters_client_gateway { @@ -1194,46 +1218,46 @@ struct filters_client_gateway { * the connections. */ char *bgp_asns_str; - int *bgp_asns; /* array integer */ + int *bgp_asns; /* * The IDs of the client gateways. */ char *client_gateway_ids_str; - char **client_gateway_ids; /* array string */ + char **client_gateway_ids; /* * The types of communication tunnels used by the client gateways (only * `ipsec.1` is supported). */ char *connection_types_str; - char **connection_types; /* array string */ + char **connection_types; /* * The public IPv4 addresses of the client gateways. */ char *public_ips_str; - char **public_ips; /* array string */ + char **public_ips; /* * The states of the client gateways (`pending` \\| `available` \\| * `deleting` \\| `deleted`). */ char *states_str; - char **states; /* array string */ + char **states; /* * The keys of the tags associated with the client gateways. */ char *tag_keys_str; - char **tag_keys; /* array string */ + char **tag_keys; /* * The values of the tags associated with the client gateways. */ char *tag_values_str; - char **tag_values; /* array string */ + char **tag_values; /* * The key/value combination of the tags associated with the client * gateways, in the following format: * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *tags_str; - char **tags; /* array string */ + char **tags; }; struct filters_dedicated_group { @@ -1242,22 +1266,22 @@ struct filters_dedicated_group { * example, `4`). */ char *cpu_generations_str; - int *cpu_generations; /* array integer */ + int *cpu_generations; /* * The IDs of the dedicated groups. */ char *dedicated_group_ids_str; - char **dedicated_group_ids; /* array string */ + char **dedicated_group_ids; /* * The names of the dedicated groups. */ char *names_str; - char **names; /* array string */ + char **names; /* * The names of the Subregions in which the dedicated groups are located. */ char *subregion_names_str; - char **subregion_names; /* array string */ + char **subregion_names; }; struct filters_dhcp_options { @@ -1266,50 +1290,50 @@ struct filters_dhcp_options { * non-default DHCP options set. */ int is_set_default_arg; - int default_arg; /* bool */ + int default_arg; /* * The IDs of the DHCP options sets. */ char *dhcp_options_set_ids_str; - char **dhcp_options_set_ids; /* array string */ + char **dhcp_options_set_ids; /* * The IPs of the domain name servers used for the DHCP options sets. */ char *domain_name_servers_str; - char **domain_name_servers; /* array string */ + char **domain_name_servers; /* * The domain names used for the DHCP options sets. */ char *domain_names_str; - char **domain_names; /* array string */ + char **domain_names; /* * The IPs of the log servers used for the DHCP options sets. */ char *log_servers_str; - char **log_servers; /* array string */ + char **log_servers; /* * The IPs of the Network Time Protocol (NTP) servers used for the DHCP * options sets. */ char *ntp_servers_str; - char **ntp_servers; /* array string */ + char **ntp_servers; /* * The keys of the tags associated with the DHCP options sets. */ char *tag_keys_str; - char **tag_keys; /* array string */ + char **tag_keys; /* * The values of the tags associated with the DHCP options sets. */ char *tag_values_str; - char **tag_values; /* array string */ + char **tag_values; /* * The key/value combination of the tags associated with the DHCP * options sets, in the following format: * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *tags_str; - char **tags; /* array string */ + char **tags; }; struct filters_direct_link { @@ -1317,7 +1341,7 @@ struct filters_direct_link { * The IDs of the DirectLinks. */ char *direct_link_ids_str; - char **direct_link_ids; /* array string */ + char **direct_link_ids; }; struct filters_direct_link_interface { @@ -1325,12 +1349,12 @@ struct filters_direct_link_interface { * The IDs of the DirectLinks. */ char *direct_link_ids_str; - char **direct_link_ids; /* array string */ + char **direct_link_ids; /* * The IDs of the DirectLink interfaces. */ char *direct_link_interface_ids_str; - char **direct_link_interface_ids; /* array string */ + char **direct_link_interface_ids; }; struct filters_export_task { @@ -1338,7 +1362,7 @@ struct filters_export_task { * The IDs of the export tasks. */ char *task_ids_str; - char **task_ids; /* array string */ + char **task_ids; }; struct filters_flexible_gpu { @@ -1346,17 +1370,17 @@ struct filters_flexible_gpu { * Indicates whether the fGPU is deleted when terminating the VM. */ int is_set_delete_on_vm_deletion; - int delete_on_vm_deletion; /* bool */ + int delete_on_vm_deletion; /* * One or more IDs of fGPUs. */ char *flexible_gpu_ids_str; - char **flexible_gpu_ids; /* array string */ + char **flexible_gpu_ids; /* * The processor generations that the fGPUs are compatible with. */ char *generations_str; - char **generations; /* array string */ + char **generations; /* * One or more models of fGPUs. For more information, see [About * Flexible @@ -1364,23 +1388,23 @@ struct filters_flexible_gpu { * . */ char *model_names_str; - char **model_names; /* array string */ + char **model_names; /* * The states of the fGPUs (`allocated` \\| `attaching` \\| `attached` * \\| `detaching`). */ char *states_str; - char **states; /* array string */ + char **states; /* * The Subregions where the fGPUs are located. */ char *subregion_names_str; - char **subregion_names; /* array string */ + char **subregion_names; /* * One or more IDs of VMs. */ char *vm_ids_str; - char **vm_ids; /* array string */ + char **vm_ids; }; struct filters_image { @@ -1388,125 +1412,125 @@ struct filters_image { * The account aliases of the owners of the OMIs. */ char *account_aliases_str; - char **account_aliases; /* array string */ + char **account_aliases; /* * The account IDs of the owners of the OMIs. By default, all the OMIs * for which you have launch permissions are described. */ char *account_ids_str; - char **account_ids; /* array string */ + char **account_ids; /* * The architectures of the OMIs (`i386` \\| `x86_64`). */ char *architectures_str; - char **architectures; /* array string */ + char **architectures; /* * Whether the volumes are deleted or not when terminating the VM. */ int is_set_block_device_mapping_delete_on_vm_deletion; - int block_device_mapping_delete_on_vm_deletion; /* bool */ + int block_device_mapping_delete_on_vm_deletion; /* * The device names for the volumes. */ char *block_device_mapping_device_names_str; - char **block_device_mapping_device_names; /* array string */ + char **block_device_mapping_device_names; /* * The IDs of the snapshots used to create the volumes. */ char *block_device_mapping_snapshot_ids_str; - char **block_device_mapping_snapshot_ids; /* array string */ + char **block_device_mapping_snapshot_ids; /* * The sizes of the volumes, in gibibytes (GiB). */ char *block_device_mapping_volume_sizes_str; - int *block_device_mapping_volume_sizes; /* array integer */ + int *block_device_mapping_volume_sizes; /* * The types of volumes (`standard` \\| `gp2` \\| `io1`). */ char *block_device_mapping_volume_types_str; - char **block_device_mapping_volume_types; /* array string */ + char **block_device_mapping_volume_types; /* * The descriptions of the OMIs, provided when they were created. */ char *descriptions_str; - char **descriptions; /* array string */ + char **descriptions; /* * The locations of the buckets where the OMI files are stored. */ char *file_locations_str; - char **file_locations; /* array string */ + char **file_locations; /* * The hypervisor type of the OMI (always `xen`). */ char *hypervisors_str; - char **hypervisors; /* array string */ + char **hypervisors; /* * The IDs of the OMIs. */ char *image_ids_str; - char **image_ids; /* array string */ + char **image_ids; /* * The names of the OMIs, provided when they were created. */ char *image_names_str; - char **image_names; /* array string */ + char **image_names; /* * The account IDs which have launch permissions for the OMIs. */ char *permissions_to_launch_account_ids_str; - char **permissions_to_launch_account_ids; /* array string */ + char **permissions_to_launch_account_ids; /* * If true, lists all public OMIs. If false, lists all private OMIs. */ int is_set_permissions_to_launch_global_permission; - int permissions_to_launch_global_permission; /* bool */ + int permissions_to_launch_global_permission; /* * The names of the product codes associated with the OMI. */ char *product_code_names_str; - char **product_code_names; /* array string */ + char **product_code_names; /* * The product codes associated with the OMI. */ char *product_codes_str; - char **product_codes; /* array string */ + char **product_codes; /* * The name of the root device. This value must be /dev/sda1. */ char *root_device_names_str; - char **root_device_names; /* array string */ + char **root_device_names; /* * The types of root device used by the OMIs (`bsu` or `ebs`). */ char *root_device_types_str; - char **root_device_types; /* array string */ + char **root_device_types; /* * The states of the OMIs (`pending` \\| `available` \\| `failed`). */ char *states_str; - char **states; /* array string */ + char **states; /* * The keys of the tags associated with the OMIs. */ char *tag_keys_str; - char **tag_keys; /* array string */ + char **tag_keys; /* * The values of the tags associated with the OMIs. */ char *tag_values_str; - char **tag_values; /* array string */ + char **tag_values; /* * The key/value combination of the tags associated with the OMIs, in * the following format: * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *tags_str; - char **tags; /* array string */ + char **tags; /* * The virtualization types (always `hvm`). */ char *virtualization_types_str; - char **virtualization_types; /* array string */ + char **virtualization_types; }; struct filters_internet_service { @@ -1514,36 +1538,36 @@ struct filters_internet_service { * The IDs of the Internet services. */ char *internet_service_ids_str; - char **internet_service_ids; /* array string */ + char **internet_service_ids; /* * The IDs of the Nets the Internet services are attached to. */ char *link_net_ids_str; - char **link_net_ids; /* array string */ + char **link_net_ids; /* * The current states of the attachments between the Internet services * and the Nets (only `available`, if the Internet gateway is attached * to a Net). */ char *link_states_str; - char **link_states; /* array string */ + char **link_states; /* * The keys of the tags associated with the Internet services. */ char *tag_keys_str; - char **tag_keys; /* array string */ + char **tag_keys; /* * The values of the tags associated with the Internet services. */ char *tag_values_str; - char **tag_values; /* array string */ + char **tag_values; /* * The key/value combination of the tags associated with the Internet * services, in the following format: * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *tags_str; - char **tags; /* array string */ + char **tags; }; struct filters_keypair { @@ -1551,19 +1575,19 @@ struct filters_keypair { * The fingerprints of the keypairs. */ char *keypair_fingerprints_str; - char **keypair_fingerprints; /* array string */ + char **keypair_fingerprints; /* * The names of the keypairs. */ char *keypair_names_str; - char **keypair_names; /* array string */ + char **keypair_names; /* * The types of the keypairs (`ssh-rsa`, `ssh-ed25519`, * `ecdsa-sha2-nistp256`, `ecdsa-sha2-nistp384`, or * `ecdsa-sha2-nistp521`). */ char *keypair_types_str; - char **keypair_types; /* array string */ + char **keypair_types; }; struct filters_listener_rule { @@ -1571,7 +1595,7 @@ struct filters_listener_rule { * The names of the listener rules. */ char *listener_rule_names_str; - char **listener_rule_names; /* array string */ + char **listener_rule_names; }; struct filters_load_balancer { @@ -1579,7 +1603,7 @@ struct filters_load_balancer { * The names of the load balancers. */ char *load_balancer_names_str; - char **load_balancer_names; /* array string */ + char **load_balancer_names; }; struct filters_nat_service { @@ -1587,45 +1611,45 @@ struct filters_nat_service { * The idempotency tokens provided when creating the NAT services. */ char *client_tokens_str; - char **client_tokens; /* array string */ + char **client_tokens; /* * The IDs of the NAT services. */ char *nat_service_ids_str; - char **nat_service_ids; /* array string */ + char **nat_service_ids; /* * The IDs of the Nets in which the NAT services are. */ char *net_ids_str; - char **net_ids; /* array string */ + char **net_ids; /* * The states of the NAT services (`pending` \\| `available` \\| * `deleting` \\| `deleted`). */ char *states_str; - char **states; /* array string */ + char **states; /* * The IDs of the Subnets in which the NAT services are. */ char *subnet_ids_str; - char **subnet_ids; /* array string */ + char **subnet_ids; /* * The keys of the tags associated with the NAT services. */ char *tag_keys_str; - char **tag_keys; /* array string */ + char **tag_keys; /* * The values of the tags associated with the NAT services. */ char *tag_values_str; - char **tag_values; /* array string */ + char **tag_values; /* * The key/value combination of the tags associated with the NAT * services, in the following format: * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *tags_str; - char **tags; /* array string */ + char **tags; }; struct filters_net { @@ -1633,45 +1657,45 @@ struct filters_net { * The IDs of the DHCP options sets. */ char *dhcp_options_set_ids_str; - char **dhcp_options_set_ids; /* array string */ + char **dhcp_options_set_ids; /* * The IP ranges for the Nets, in CIDR notation (for example, * `10.0.0.0/16`). */ char *ip_ranges_str; - char **ip_ranges; /* array string */ + char **ip_ranges; /* * If true, the Net used is the default one. */ int is_set_is_default; - int is_default; /* bool */ + int is_default; /* * The IDs of the Nets. */ char *net_ids_str; - char **net_ids; /* array string */ + char **net_ids; /* * The states of the Nets (`pending` \\| `available` \\| `deleting`). */ char *states_str; - char **states; /* array string */ + char **states; /* * The keys of the tags associated with the Nets. */ char *tag_keys_str; - char **tag_keys; /* array string */ + char **tag_keys; /* * The values of the tags associated with the Nets. */ char *tag_values_str; - char **tag_values; /* array string */ + char **tag_values; /* * The key/value combination of the tags associated with the Nets, in * the following format: * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *tags_str; - char **tags; /* array string */ + char **tags; }; struct filters_net_access_point { @@ -1679,41 +1703,41 @@ struct filters_net_access_point { * The IDs of the Net access points. */ char *net_access_point_ids_str; - char **net_access_point_ids; /* array string */ + char **net_access_point_ids; /* * The IDs of the Nets. */ char *net_ids_str; - char **net_ids; /* array string */ + char **net_ids; /* * The names of the services. For more information, see * [ReadNetAccessPointServices](#readnetaccesspointservices). */ char *service_names_str; - char **service_names; /* array string */ + char **service_names; /* * The states of the Net access points (`pending` \\| `available` \\| * `deleting` \\| `deleted`). */ char *states_str; - char **states; /* array string */ + char **states; /* * The keys of the tags associated with the Net access points. */ char *tag_keys_str; - char **tag_keys; /* array string */ + char **tag_keys; /* * The values of the tags associated with the Net access points. */ char *tag_values_str; - char **tag_values; /* array string */ + char **tag_values; /* * The key/value combination of the tags associated with the Net access * points, in the following format: * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *tags_str; - char **tags; /* array string */ + char **tags; }; struct filters_net_peering { @@ -1721,72 +1745,72 @@ struct filters_net_peering { * The account IDs of the owners of the peer Nets. */ char *accepter_net_account_ids_str; - char **accepter_net_account_ids; /* array string */ + char **accepter_net_account_ids; /* * The IP ranges of the peer Nets, in CIDR notation (for example, * `10.0.0.0/24`). */ char *accepter_net_ip_ranges_str; - char **accepter_net_ip_ranges; /* array string */ + char **accepter_net_ip_ranges; /* * The IDs of the peer Nets. */ char *accepter_net_net_ids_str; - char **accepter_net_net_ids; /* array string */ + char **accepter_net_net_ids; /* * The dates and times at which the Net peerings expire, in ISO 8601 * date-time format (for example, `2020-06-14T00:00:00.000Z`). */ char *expiration_dates_str; - char **expiration_dates; /* array string */ + char **expiration_dates; /* * The IDs of the Net peerings. */ char *net_peering_ids_str; - char **net_peering_ids; /* array string */ + char **net_peering_ids; /* * The account IDs of the owners of the peer Nets. */ char *source_net_account_ids_str; - char **source_net_account_ids; /* array string */ + char **source_net_account_ids; /* * The IP ranges of the peer Nets. */ char *source_net_ip_ranges_str; - char **source_net_ip_ranges; /* array string */ + char **source_net_ip_ranges; /* * The IDs of the peer Nets. */ char *source_net_net_ids_str; - char **source_net_net_ids; /* array string */ + char **source_net_net_ids; /* * Additional information about the states of the Net peerings. */ char *state_messages_str; - char **state_messages; /* array string */ + char **state_messages; /* * The states of the Net peerings (`pending-acceptance` \\| `active` \\| * `rejected` \\| `failed` \\| `expired` \\| `deleted`). */ char *state_names_str; - char **state_names; /* array string */ + char **state_names; /* * The keys of the tags associated with the Net peerings. */ char *tag_keys_str; - char **tag_keys; /* array string */ + char **tag_keys; /* * The values of the tags associated with the Net peerings. */ char *tag_values_str; - char **tag_values; /* array string */ + char **tag_values; /* * The key/value combination of the tags associated with the Net * peerings, in the following format: * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *tags_str; - char **tags; /* array string */ + char **tags; }; struct filters_nic { @@ -1794,155 +1818,155 @@ struct filters_nic { * The descriptions of the NICs. */ char *descriptions_str; - char **descriptions; /* array string */ + char **descriptions; /* * Whether the source/destination checking is enabled (true) or disabled * (false). */ int is_set_is_source_dest_check; - int is_source_dest_check; /* bool */ + int is_source_dest_check; /* * Whether the NICs are deleted when the VMs they are attached to are * terminated. */ int is_set_link_nic_delete_on_vm_deletion; - int link_nic_delete_on_vm_deletion; /* bool */ + int link_nic_delete_on_vm_deletion; /* * The device numbers the NICs are attached to. */ char *link_nic_device_numbers_str; - int *link_nic_device_numbers; /* array integer */ + int *link_nic_device_numbers; /* * The attachment IDs of the NICs. */ char *link_nic_link_nic_ids_str; - char **link_nic_link_nic_ids; /* array string */ + char **link_nic_link_nic_ids; /* * The states of the attachments. */ char *link_nic_states_str; - char **link_nic_states; /* array string */ + char **link_nic_states; /* * The account IDs of the owners of the VMs the NICs are attached to. */ char *link_nic_vm_account_ids_str; - char **link_nic_vm_account_ids; /* array string */ + char **link_nic_vm_account_ids; /* * The IDs of the VMs the NICs are attached to. */ char *link_nic_vm_ids_str; - char **link_nic_vm_ids; /* array string */ + char **link_nic_vm_ids; /* * The account IDs of the owners of the public IPs associated with the * NICs. */ char *link_public_ip_account_ids_str; - char **link_public_ip_account_ids; /* array string */ + char **link_public_ip_account_ids; /* * The association IDs returned when the public IPs were associated with * the NICs. */ char *link_public_ip_link_public_ip_ids_str; - char **link_public_ip_link_public_ip_ids; /* array string */ + char **link_public_ip_link_public_ip_ids; /* * The public DNS names associated with the public IPs. */ char *link_public_ip_public_dns_names_str; - char **link_public_ip_public_dns_names; /* array string */ + char **link_public_ip_public_dns_names; /* * The allocation IDs returned when the public IPs were allocated to * their accounts. */ char *link_public_ip_public_ip_ids_str; - char **link_public_ip_public_ip_ids; /* array string */ + char **link_public_ip_public_ip_ids; /* * The public IPs associated with the NICs. */ char *link_public_ip_public_ips_str; - char **link_public_ip_public_ips; /* array string */ + char **link_public_ip_public_ips; /* * The Media Access Control (MAC) addresses of the NICs. */ char *mac_addresses_str; - char **mac_addresses; /* array string */ + char **mac_addresses; /* * The IDs of the Nets where the NICs are located. */ char *net_ids_str; - char **net_ids; /* array string */ + char **net_ids; /* * The IDs of the NICs. */ char *nic_ids_str; - char **nic_ids; /* array string */ + char **nic_ids; /* * The private DNS names associated with the primary private IPs. */ char *private_dns_names_str; - char **private_dns_names; /* array string */ + char **private_dns_names; /* * The account IDs of the owner of the public IPs associated with the * private IPs. */ char *private_ips_link_public_ip_account_ids_str; - char **private_ips_link_public_ip_account_ids; /* array string */ + char **private_ips_link_public_ip_account_ids; /* * The public IPs associated with the private IPs. */ char *private_ips_link_public_ip_public_ips_str; - char **private_ips_link_public_ip_public_ips; /* array string */ + char **private_ips_link_public_ip_public_ips; /* * Whether the private IP is the primary IP associated with the NIC. */ int is_set_private_ips_primary_ip; - int private_ips_primary_ip; /* bool */ + int private_ips_primary_ip; /* * The private IPs of the NICs. */ char *private_ips_private_ips_str; - char **private_ips_private_ips; /* array string */ + char **private_ips_private_ips; /* * The IDs of the security groups associated with the NICs. */ char *security_group_ids_str; - char **security_group_ids; /* array string */ + char **security_group_ids; /* * The names of the security groups associated with the NICs. */ char *security_group_names_str; - char **security_group_names; /* array string */ + char **security_group_names; /* * The states of the NICs. */ char *states_str; - char **states; /* array string */ + char **states; /* * The IDs of the Subnets for the NICs. */ char *subnet_ids_str; - char **subnet_ids; /* array string */ + char **subnet_ids; /* * The Subregions where the NICs are located. */ char *subregion_names_str; - char **subregion_names; /* array string */ + char **subregion_names; /* * The keys of the tags associated with the NICs. */ char *tag_keys_str; - char **tag_keys; /* array string */ + char **tag_keys; /* * The values of the tags associated with the NICs. */ char *tag_values_str; - char **tag_values; /* array string */ + char **tag_values; /* * The key/value combination of the tags associated with the NICs, in * the following format: * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *tags_str; - char **tags; /* array string */ + char **tags; }; struct filters_product_type { @@ -1950,7 +1974,7 @@ struct filters_product_type { * The IDs of the product types. */ char *product_type_ids_str; - char **product_type_ids; /* array string */ + char **product_type_ids; }; struct filters_public_ip { @@ -1958,59 +1982,59 @@ struct filters_public_ip { * The IDs representing the associations of public IPs with VMs or NICs. */ char *link_public_ip_ids_str; - char **link_public_ip_ids; /* array string */ + char **link_public_ip_ids; /* * The account IDs of the owners of the NICs. */ char *nic_account_ids_str; - char **nic_account_ids; /* array string */ + char **nic_account_ids; /* * The IDs of the NICs. */ char *nic_ids_str; - char **nic_ids; /* array string */ + char **nic_ids; /* * Whether the public IPs are for use in the public Cloud or in a Net. */ char *placements_str; - char **placements; /* array string */ + char **placements; /* * The private IPs associated with the public IPs. */ char *private_ips_str; - char **private_ips; /* array string */ + char **private_ips; /* * The IDs of the public IPs. */ char *public_ip_ids_str; - char **public_ip_ids; /* array string */ + char **public_ip_ids; /* * The public IPs. */ char *public_ips_str; - char **public_ips; /* array string */ + char **public_ips; /* * The keys of the tags associated with the public IPs. */ char *tag_keys_str; - char **tag_keys; /* array string */ + char **tag_keys; /* * The values of the tags associated with the public IPs. */ char *tag_values_str; - char **tag_values; /* array string */ + char **tag_values; /* * The key/value combination of the tags associated with the public IPs, * in the following format: * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *tags_str; - char **tags; /* array string */ + char **tags; /* * The IDs of the VMs. */ char *vm_ids_str; - char **vm_ids; /* array string */ + char **vm_ids; }; struct filters_quota { @@ -2018,23 +2042,23 @@ struct filters_quota { * The group names of the quotas. */ char *collections_str; - char **collections; /* array string */ + char **collections; /* * The names of the quotas. */ char *quota_names_str; - char **quota_names; /* array string */ + char **quota_names; /* * The resource IDs if these are resource-specific quotas, `global` if * they are not. */ char *quota_types_str; - char **quota_types; /* array string */ + char **quota_types; /* * The description of the quotas. */ char *short_descriptions_str; - char **short_descriptions; /* array string */ + char **short_descriptions; }; struct filters_route_table { @@ -2042,89 +2066,89 @@ struct filters_route_table { * The IDs of the route tables involved in the associations. */ char *link_route_table_ids_str; - char **link_route_table_ids; /* array string */ + char **link_route_table_ids; /* * The IDs of the associations between the route tables and the Subnets. */ char *link_route_table_link_route_table_ids_str; - char **link_route_table_link_route_table_ids; /* array string */ + char **link_route_table_link_route_table_ids; /* * If true, the route tables are the main ones for their Nets. */ int is_set_link_route_table_main; - int link_route_table_main; /* bool */ + int link_route_table_main; /* * The IDs of the Subnets involved in the associations. */ char *link_subnet_ids_str; - char **link_subnet_ids; /* array string */ + char **link_subnet_ids; /* * The IDs of the Nets for the route tables. */ char *net_ids_str; - char **net_ids; /* array string */ + char **net_ids; /* * The methods used to create a route. */ char *route_creation_methods_str; - char **route_creation_methods; /* array string */ + char **route_creation_methods; /* * The IP ranges specified in routes in the tables. */ char *route_destination_ip_ranges_str; - char **route_destination_ip_ranges; /* array string */ + char **route_destination_ip_ranges; /* * The service IDs specified in routes in the tables. */ char *route_destination_service_ids_str; - char **route_destination_service_ids; /* array string */ + char **route_destination_service_ids; /* * The IDs of the gateways specified in routes in the tables. */ char *route_gateway_ids_str; - char **route_gateway_ids; /* array string */ + char **route_gateway_ids; /* * The IDs of the NAT services specified in routes in the tables. */ char *route_nat_service_ids_str; - char **route_nat_service_ids; /* array string */ + char **route_nat_service_ids; /* * The IDs of the Net peerings specified in routes in the tables. */ char *route_net_peering_ids_str; - char **route_net_peering_ids; /* array string */ + char **route_net_peering_ids; /* * The states of routes in the route tables (always `active`). */ char *route_states_str; - char **route_states; /* array string */ + char **route_states; /* * The IDs of the route tables. */ char *route_table_ids_str; - char **route_table_ids; /* array string */ + char **route_table_ids; /* * The IDs of the VMs specified in routes in the tables. */ char *route_vm_ids_str; - char **route_vm_ids; /* array string */ + char **route_vm_ids; /* * The keys of the tags associated with the route tables. */ char *tag_keys_str; - char **tag_keys; /* array string */ + char **tag_keys; /* * The values of the tags associated with the route tables. */ char *tag_values_str; - char **tag_values; /* array string */ + char **tag_values; /* * The key/value combination of the tags associated with the route * tables, in the following format: * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *tags_str; - char **tags; /* array string */ + char **tags; }; struct filters_security_group { @@ -2132,117 +2156,117 @@ struct filters_security_group { * The descriptions of the security groups. */ char *descriptions_str; - char **descriptions; /* array string */ + char **descriptions; /* * The account IDs that have been granted permissions. */ char *inbound_rule_account_ids_str; - char **inbound_rule_account_ids; /* array string */ + char **inbound_rule_account_ids; /* * The beginnings of the port ranges for the TCP and UDP protocols, or * the ICMP type numbers. */ char *inbound_rule_from_port_ranges_str; - int *inbound_rule_from_port_ranges; /* array integer */ + int *inbound_rule_from_port_ranges; /* * The IP ranges that have been granted permissions, in CIDR notation * (for example, `10.0.0.0/24`). */ char *inbound_rule_ip_ranges_str; - char **inbound_rule_ip_ranges; /* array string */ + char **inbound_rule_ip_ranges; /* * The IP protocols for the permissions (`tcp` \\| `udp` \\| `icmp`, or * a protocol number, or `-1` for all protocols). */ char *inbound_rule_protocols_str; - char **inbound_rule_protocols; /* array string */ + char **inbound_rule_protocols; /* * The IDs of the security groups that have been granted permissions. */ char *inbound_rule_security_group_ids_str; - char **inbound_rule_security_group_ids; /* array string */ + char **inbound_rule_security_group_ids; /* * The names of the security groups that have been granted permissions. */ char *inbound_rule_security_group_names_str; - char **inbound_rule_security_group_names; /* array string */ + char **inbound_rule_security_group_names; /* * The ends of the port ranges for the TCP and UDP protocols, or the * ICMP code numbers. */ char *inbound_rule_to_port_ranges_str; - int *inbound_rule_to_port_ranges; /* array integer */ + int *inbound_rule_to_port_ranges; /* * The IDs of the Nets specified when the security groups were created. */ char *net_ids_str; - char **net_ids; /* array string */ + char **net_ids; /* * The account IDs that have been granted permissions. */ char *outbound_rule_account_ids_str; - char **outbound_rule_account_ids; /* array string */ + char **outbound_rule_account_ids; /* * The beginnings of the port ranges for the TCP and UDP protocols, or * the ICMP type numbers. */ char *outbound_rule_from_port_ranges_str; - int *outbound_rule_from_port_ranges; /* array integer */ + int *outbound_rule_from_port_ranges; /* * The IP ranges that have been granted permissions, in CIDR notation * (for example, `10.0.0.0/24`). */ char *outbound_rule_ip_ranges_str; - char **outbound_rule_ip_ranges; /* array string */ + char **outbound_rule_ip_ranges; /* * The IP protocols for the permissions (`tcp` \\| `udp` \\| `icmp`, or * a protocol number, or `-1` for all protocols). */ char *outbound_rule_protocols_str; - char **outbound_rule_protocols; /* array string */ + char **outbound_rule_protocols; /* * The IDs of the security groups that have been granted permissions. */ char *outbound_rule_security_group_ids_str; - char **outbound_rule_security_group_ids; /* array string */ + char **outbound_rule_security_group_ids; /* * The names of the security groups that have been granted permissions. */ char *outbound_rule_security_group_names_str; - char **outbound_rule_security_group_names; /* array string */ + char **outbound_rule_security_group_names; /* * The ends of the port ranges for the TCP and UDP protocols, or the * ICMP code numbers. */ char *outbound_rule_to_port_ranges_str; - int *outbound_rule_to_port_ranges; /* array integer */ + int *outbound_rule_to_port_ranges; /* * The IDs of the security groups. */ char *security_group_ids_str; - char **security_group_ids; /* array string */ + char **security_group_ids; /* * The names of the security groups. */ char *security_group_names_str; - char **security_group_names; /* array string */ + char **security_group_names; /* * The keys of the tags associated with the security groups. */ char *tag_keys_str; - char **tag_keys; /* array string */ + char **tag_keys; /* * The values of the tags associated with the security groups. */ char *tag_values_str; - char **tag_values; /* array string */ + char **tag_values; /* * The key/value combination of the tags associated with the security * groups, in the following format: * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *tags_str; - char **tags; /* array string */ + char **tags; }; struct filters_server_certificate { @@ -2250,7 +2274,7 @@ struct filters_server_certificate { * The paths to the server certificates. */ char *paths_str; - char **paths; /* array string */ + char **paths; }; struct filters_service { @@ -2258,12 +2282,12 @@ struct filters_service { * The IDs of the services. */ char *service_ids_str; - char **service_ids; /* array string */ + char **service_ids; /* * The names of the services. */ char *service_names_str; - char **service_names; /* array string */ + char **service_names; }; struct filters_snapshot { @@ -2271,82 +2295,82 @@ struct filters_snapshot { * The account aliases of the owners of the snapshots. */ char *account_aliases_str; - char **account_aliases; /* array string */ + char **account_aliases; /* * The account IDs of the owners of the snapshots. */ char *account_ids_str; - char **account_ids; /* array string */ + char **account_ids; /* * The descriptions of the snapshots. */ char *descriptions_str; - char **descriptions; /* array string */ + char **descriptions; /* * The beginning of the time period, in ISO 8601 date-time format (for * example, `2020-06-14T00:00:00.000Z`). */ - char *from_creation_date; /* string */ + char *from_creation_date; /* * The account IDs which have permissions to create volumes. */ char *permissions_to_create_volume_account_ids_str; - char **permissions_to_create_volume_account_ids; /* array string */ + char **permissions_to_create_volume_account_ids; /* * If true, lists all public volumes. If false, lists all private * volumes. */ int is_set_permissions_to_create_volume_global_permission; - int permissions_to_create_volume_global_permission; /* bool */ + int permissions_to_create_volume_global_permission; /* * The progresses of the snapshots, as a percentage. */ char *progresses_str; - int *progresses; /* array integer */ + int *progresses; /* * The IDs of the snapshots. */ char *snapshot_ids_str; - char **snapshot_ids; /* array string */ + char **snapshot_ids; /* * The states of the snapshots (`in-queue` \\| `pending` \\| `completed` * \\| `error` \\| `deleting`). */ char *states_str; - char **states; /* array string */ + char **states; /* * The keys of the tags associated with the snapshots. */ char *tag_keys_str; - char **tag_keys; /* array string */ + char **tag_keys; /* * The values of the tags associated with the snapshots. */ char *tag_values_str; - char **tag_values; /* array string */ + char **tag_values; /* * The key/value combination of the tags associated with the snapshots, * in the following format: * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *tags_str; - char **tags; /* array string */ + char **tags; /* * The end of the time period, in ISO 8601 date-time format (for * example, `2020-06-30T00:00:00.000Z`). */ - char *to_creation_date; /* string */ + char *to_creation_date; /* * The IDs of the volumes used to create the snapshots. */ char *volume_ids_str; - char **volume_ids; /* array string */ + char **volume_ids; /* * The sizes of the volumes used to create the snapshots, in gibibytes * (GiB). */ char *volume_sizes_str; - int *volume_sizes; /* array integer */ + int *volume_sizes; }; struct filters_subnet { @@ -2354,50 +2378,50 @@ struct filters_subnet { * The number of available IPs. */ char *available_ips_counts_str; - int *available_ips_counts; /* array integer */ + int *available_ips_counts; /* * The IP ranges in the Subnets, in CIDR notation (for example, * `10.0.0.0/16`). */ char *ip_ranges_str; - char **ip_ranges; /* array string */ + char **ip_ranges; /* * The IDs of the Nets in which the Subnets are. */ char *net_ids_str; - char **net_ids; /* array string */ + char **net_ids; /* * The states of the Subnets (`pending` \\| `available` \\| `deleted`). */ char *states_str; - char **states; /* array string */ + char **states; /* * The IDs of the Subnets. */ char *subnet_ids_str; - char **subnet_ids; /* array string */ + char **subnet_ids; /* * The names of the Subregions in which the Subnets are located. */ char *subregion_names_str; - char **subregion_names; /* array string */ + char **subregion_names; /* * The keys of the tags associated with the Subnets. */ char *tag_keys_str; - char **tag_keys; /* array string */ + char **tag_keys; /* * The values of the tags associated with the Subnets. */ char *tag_values_str; - char **tag_values; /* array string */ + char **tag_values; /* * The key/value combination of the tags associated with the Subnets, in * the following format: * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *tags_str; - char **tags; /* array string */ + char **tags; }; struct filters_subregion { @@ -2405,17 +2429,17 @@ struct filters_subregion { * The names of the Regions containing the Subregions. */ char *region_names_str; - char **region_names; /* array string */ + char **region_names; /* * The states of the Subregions. */ char *states_str; - char **states; /* array string */ + char **states; /* * The names of the Subregions. */ char *subregion_names_str; - char **subregion_names; /* array string */ + char **subregion_names; }; struct filters_tag { @@ -2426,12 +2450,12 @@ struct filters_tag { * filter. */ char *keys_str; - char **keys; /* array string */ + char **keys; /* * The IDs of the resources with which the tags are associated. */ char *resource_ids_str; - char **resource_ids; /* array string */ + char **resource_ids; /* * The resource type (`vm` \\| `image` \\| `volume` \\| `snapshot` \\| * `public-ip` \\| `security-group` \\| `route-table` \\| `nic` \\| @@ -2440,7 +2464,7 @@ struct filters_tag { * `virtual-gateway` \\| `vpn-connection` \\| `dhcp-options` \\| `task`). */ char *resource_types_str; - char **resource_types; /* array string */ + char **resource_types; /* * The values of the tags that are assigned to the resources. You can * use this filter alongside the `TagKeys` filter. In that case, you @@ -2448,7 +2472,7 @@ struct filters_tag { * other filter. */ char *values_str; - char **values; /* array string */ + char **values; }; struct filters_user_group { @@ -2456,12 +2480,12 @@ struct filters_user_group { * The path prefix of the groups. If not specified, it is set to a slash * (`/`). */ - char *path_prefix; /* string */ + char *path_prefix; /* * The IDs of the user groups. */ char *user_group_ids_str; - char **user_group_ids; /* array string */ + char **user_group_ids; }; struct filters_virtual_gateway { @@ -2469,47 +2493,47 @@ struct filters_virtual_gateway { * The types of the virtual gateways (only `ipsec.1` is supported). */ char *connection_types_str; - char **connection_types; /* array string */ + char **connection_types; /* * The IDs of the Nets the virtual gateways are attached to. */ char *link_net_ids_str; - char **link_net_ids; /* array string */ + char **link_net_ids; /* * The current states of the attachments between the virtual gateways * and the Nets (`attaching` \\| `attached` \\| `detaching` \\| * `detached`). */ char *link_states_str; - char **link_states; /* array string */ + char **link_states; /* * The states of the virtual gateways (`pending` \\| `available` \\| * `deleting` \\| `deleted`). */ char *states_str; - char **states; /* array string */ + char **states; /* * The keys of the tags associated with the virtual gateways. */ char *tag_keys_str; - char **tag_keys; /* array string */ + char **tag_keys; /* * The values of the tags associated with the virtual gateways. */ char *tag_values_str; - char **tag_values; /* array string */ + char **tag_values; /* * The key/value combination of the tags associated with the virtual * gateways, in the following format: * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *tags_str; - char **tags; /* array string */ + char **tags; /* * The IDs of the virtual gateways. */ char *virtual_gateway_ids_str; - char **virtual_gateway_ids; /* array string */ + char **virtual_gateway_ids; }; struct filters_vm { @@ -2517,344 +2541,344 @@ struct filters_vm { * The architectures of the VMs (`i386` \\| `x86_64`). */ char *architectures_str; - char **architectures; /* array string */ + char **architectures; /* * Whether the BSU volumes are deleted when terminating the VMs. */ int is_set_block_device_mapping_delete_on_vm_deletion; - int block_device_mapping_delete_on_vm_deletion; /* bool */ + int block_device_mapping_delete_on_vm_deletion; /* * The device names for the BSU volumes (in the format `/dev/sdX`, * `/dev/sdXX`, `/dev/xvdX`, or `/dev/xvdXX`). */ char *block_device_mapping_device_names_str; - char **block_device_mapping_device_names; /* array string */ + char **block_device_mapping_device_names; /* * The link dates for the BSU volumes mapped to the VMs (for example, * `2016-01-23T18:45:30.000Z`). */ char *block_device_mapping_link_dates_str; - char **block_device_mapping_link_dates; /* array string */ + char **block_device_mapping_link_dates; /* * The states for the BSU volumes (`attaching` \\| `attached` \\| * `detaching` \\| `detached`). */ char *block_device_mapping_states_str; - char **block_device_mapping_states; /* array string */ + char **block_device_mapping_states; /* * The volume IDs of the BSU volumes. */ char *block_device_mapping_volume_ids_str; - char **block_device_mapping_volume_ids; /* array string */ + char **block_device_mapping_volume_ids; /* * The idempotency tokens provided when launching the VMs. */ char *client_tokens_str; - char **client_tokens; /* array string */ + char **client_tokens; /* * The dates when the VMs were launched. */ char *creation_dates_str; - char **creation_dates; /* array string */ + char **creation_dates; /* * The IDs of the OMIs used to launch the VMs. */ char *image_ids_str; - char **image_ids; /* array string */ + char **image_ids; /* * Whether the source/destination checking is enabled (true) or disabled * (false). */ int is_set_is_source_dest_checked; - int is_source_dest_checked; /* bool */ + int is_source_dest_checked; /* * The names of the keypairs used when launching the VMs. */ char *keypair_names_str; - char **keypair_names; /* array string */ + char **keypair_names; /* * The numbers for the VMs when launching a group of several VMs (for * example, `0`, `1`, `2`, and so on). */ char *launch_numbers_str; - int *launch_numbers; /* array integer */ + int *launch_numbers; /* * Whether the VMs are Spot Instances (spot). */ char *lifecycles_str; - char **lifecycles; /* array string */ + char **lifecycles; /* * The IDs of the Nets in which the VMs are running. */ char *net_ids_str; - char **net_ids; /* array string */ + char **net_ids; /* * The IDs of the NICs. */ char *nic_account_ids_str; - char **nic_account_ids; /* array string */ + char **nic_account_ids; /* * The descriptions of the NICs. */ char *nic_descriptions_str; - char **nic_descriptions; /* array string */ + char **nic_descriptions; /* * Whether the source/destination checking is enabled (true) or disabled * (false). */ int is_set_nic_is_source_dest_checked; - int nic_is_source_dest_checked; /* bool */ + int nic_is_source_dest_checked; /* * Whether the NICs are deleted when the VMs they are attached to are * deleted. */ int is_set_nic_link_nic_delete_on_vm_deletion; - int nic_link_nic_delete_on_vm_deletion; /* bool */ + int nic_link_nic_delete_on_vm_deletion; /* * The device numbers the NICs are attached to. */ char *nic_link_nic_device_numbers_str; - int *nic_link_nic_device_numbers; /* array integer */ + int *nic_link_nic_device_numbers; /* * The dates and times (UTC) when the NICs were attached to the VMs. */ char *nic_link_nic_link_nic_dates_str; - char **nic_link_nic_link_nic_dates; /* array string */ + char **nic_link_nic_link_nic_dates; /* * The IDs of the NIC attachments. */ char *nic_link_nic_link_nic_ids_str; - char **nic_link_nic_link_nic_ids; /* array string */ + char **nic_link_nic_link_nic_ids; /* * The states of the attachments. */ char *nic_link_nic_states_str; - char **nic_link_nic_states; /* array string */ + char **nic_link_nic_states; /* * The account IDs of the owners of the VMs the NICs are attached to. */ char *nic_link_nic_vm_account_ids_str; - char **nic_link_nic_vm_account_ids; /* array string */ + char **nic_link_nic_vm_account_ids; /* * The IDs of the VMs the NICs are attached to. */ char *nic_link_nic_vm_ids_str; - char **nic_link_nic_vm_ids; /* array string */ + char **nic_link_nic_vm_ids; /* * The account IDs of the owners of the public IPs associated with the * NICs. */ char *nic_link_public_ip_account_ids_str; - char **nic_link_public_ip_account_ids; /* array string */ + char **nic_link_public_ip_account_ids; /* * The association IDs returned when the public IPs were associated with * the NICs. */ char *nic_link_public_ip_link_public_ip_ids_str; - char **nic_link_public_ip_link_public_ip_ids; /* array string */ + char **nic_link_public_ip_link_public_ip_ids; /* * The allocation IDs returned when the public IPs were allocated to * their accounts. */ char *nic_link_public_ip_public_ip_ids_str; - char **nic_link_public_ip_public_ip_ids; /* array string */ + char **nic_link_public_ip_public_ip_ids; /* * The public IPs associated with the NICs. */ char *nic_link_public_ip_public_ips_str; - char **nic_link_public_ip_public_ips; /* array string */ + char **nic_link_public_ip_public_ips; /* * The Media Access Control (MAC) addresses of the NICs. */ char *nic_mac_addresses_str; - char **nic_mac_addresses; /* array string */ + char **nic_mac_addresses; /* * The IDs of the Nets where the NICs are located. */ char *nic_net_ids_str; - char **nic_net_ids; /* array string */ + char **nic_net_ids; /* * The IDs of the NICs. */ char *nic_nic_ids_str; - char **nic_nic_ids; /* array string */ + char **nic_nic_ids; /* * The account IDs of the owner of the public IPs associated with the * private IPs. */ char *nic_private_ips_link_public_ip_account_ids_str; - char **nic_private_ips_link_public_ip_account_ids; /* array string */ + char **nic_private_ips_link_public_ip_account_ids; /* * The public IPs associated with the private IPs. */ char *nic_private_ips_link_public_ip_ids_str; - char **nic_private_ips_link_public_ip_ids; /* array string */ + char **nic_private_ips_link_public_ip_ids; /* * Whether the private IPs are the primary IPs associated with the NICs. */ int is_set_nic_private_ips_primary_ip; - int nic_private_ips_primary_ip; /* bool */ + int nic_private_ips_primary_ip; /* * The private IPs of the NICs. */ char *nic_private_ips_private_ips_str; - char **nic_private_ips_private_ips; /* array string */ + char **nic_private_ips_private_ips; /* * The IDs of the security groups associated with the NICs. */ char *nic_security_group_ids_str; - char **nic_security_group_ids; /* array string */ + char **nic_security_group_ids; /* * The names of the security groups associated with the NICs. */ char *nic_security_group_names_str; - char **nic_security_group_names; /* array string */ + char **nic_security_group_names; /* * The states of the NICs (`available` \\| `in-use`). */ char *nic_states_str; - char **nic_states; /* array string */ + char **nic_states; /* * The IDs of the Subnets for the NICs. */ char *nic_subnet_ids_str; - char **nic_subnet_ids; /* array string */ + char **nic_subnet_ids; /* * The Subregions where the NICs are located. */ char *nic_subregion_names_str; - char **nic_subregion_names; /* array string */ + char **nic_subregion_names; /* * The platforms. Use windows if you have Windows VMs. Otherwise, leave * this filter blank. */ char *platforms_str; - char **platforms; /* array string */ + char **platforms; /* * The private IPs of the VMs. */ char *private_ips_str; - char **private_ips; /* array string */ + char **private_ips; /* * The product codes associated with the OMI used to create the VMs. */ char *product_codes_str; - char **product_codes; /* array string */ + char **product_codes; /* * The public IPs of the VMs. */ char *public_ips_str; - char **public_ips; /* array string */ + char **public_ips; /* * The IDs of the reservation of the VMs, created every time you launch * VMs. These reservation IDs can be associated with several VMs when * you lauch a group of VMs using the same launch request. */ char *reservation_ids_str; - char **reservation_ids; /* array string */ + char **reservation_ids; /* * The names of the root devices for the VMs (for example, `/dev/sda1`) */ char *root_device_names_str; - char **root_device_names; /* array string */ + char **root_device_names; /* * The root devices types used by the VMs (always `ebs`) */ char *root_device_types_str; - char **root_device_types; /* array string */ + char **root_device_types; /* * The IDs of the security groups for the VMs (only in the public Cloud). */ char *security_group_ids_str; - char **security_group_ids; /* array string */ + char **security_group_ids; /* * The names of the security groups for the VMs (only in the public * Cloud). */ char *security_group_names_str; - char **security_group_names; /* array string */ + char **security_group_names; /* * The reason codes for the state changes. */ char *state_reason_codes_str; - int *state_reason_codes; /* array integer */ + int *state_reason_codes; /* * The messages describing the state changes. */ char *state_reason_messages_str; - char **state_reason_messages; /* array string */ + char **state_reason_messages; /* * The reasons explaining the current states of the VMs. This filter is * like the `StateReasonCodes` one. */ char *state_reasons_str; - char **state_reasons; /* array string */ + char **state_reasons; /* * The IDs of the Subnets for the VMs. */ char *subnet_ids_str; - char **subnet_ids; /* array string */ + char **subnet_ids; /* * The names of the Subregions of the VMs. */ char *subregion_names_str; - char **subregion_names; /* array string */ + char **subregion_names; /* * The keys of the tags associated with the VMs. */ char *tag_keys_str; - char **tag_keys; /* array string */ + char **tag_keys; /* * The values of the tags associated with the VMs. */ char *tag_values_str; - char **tag_values; /* array string */ + char **tag_values; /* * The key/value combination of the tags associated with the VMs, in the * following format: * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *tags_str; - char **tags; /* array string */ + char **tags; /* * The tenancies of the VMs (`dedicated` \\| `default` \\| `host`). */ char *tenancies_str; - char **tenancies; /* array string */ + char **tenancies; /* * One or more IDs of VMs. */ char *vm_ids_str; - char **vm_ids; /* array string */ + char **vm_ids; /* * The IDs of the security groups for the VMs. */ char *vm_security_group_ids_str; - char **vm_security_group_ids; /* array string */ + char **vm_security_group_ids; /* * The names of the security group for the VMs. */ char *vm_security_group_names_str; - char **vm_security_group_names; /* array string */ + char **vm_security_group_names; /* * The state codes of the VMs: `-1` (quarantine), `0` (pending), `16` * (running), `32` (shutting-down), `48` (terminated), `64` (stopping), * and `80` (stopped). */ char *vm_state_codes_str; - int *vm_state_codes; /* array integer */ + int *vm_state_codes; /* * The state names of the VMs (`pending` \\| `running` \\| `stopping` * \\| `stopped` \\| `shutting-down` \\| `terminated` \\| `quarantine`). */ char *vm_state_names_str; - char **vm_state_names; /* array string */ + char **vm_state_names; /* * The VM types (for example, t2.micro). For more information, see [VM * Types](https://docs.outscale.com/en/userguide/VM-Types.html). */ char *vm_types_str; - char **vm_types; /* array string */ + char **vm_types; }; struct filters_vm_group { @@ -2862,54 +2886,54 @@ struct filters_vm_group { * The descriptions of the VM groups. */ char *descriptions_str; - char **descriptions; /* array string */ + char **descriptions; /* * The IDs of the security groups. */ char *security_group_ids_str; - char **security_group_ids; /* array string */ + char **security_group_ids; /* * The IDs of the Subnets. */ char *subnet_ids_str; - char **subnet_ids; /* array string */ + char **subnet_ids; /* * The keys of the tags associated with the VM groups. */ char *tag_keys_str; - char **tag_keys; /* array string */ + char **tag_keys; /* * The values of the tags associated with the VM groups. */ char *tag_values_str; - char **tag_values; /* array string */ + char **tag_values; /* * The key/value combination of the tags associated with the VMs, in the * following format: * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *tags_str; - char **tags; /* array string */ + char **tags; /* * The number of VMs in the VM group. */ char *vm_counts_str; - int *vm_counts; /* array integer */ + int *vm_counts; /* * The IDs of the VM groups. */ char *vm_group_ids_str; - char **vm_group_ids; /* array string */ + char **vm_group_ids; /* * The names of the VM groups. */ char *vm_group_names_str; - char **vm_group_names; /* array string */ + char **vm_group_names; /* * The IDs of the VM templates. */ char *vm_template_ids_str; - char **vm_template_ids; /* array string */ + char **vm_template_ids; }; struct filters_vm_template { @@ -2917,64 +2941,64 @@ struct filters_vm_template { * The number of vCores. */ char *cpu_cores_str; - int *cpu_cores; /* array integer */ + int *cpu_cores; /* * The processor generations (for example, `v4`). */ char *cpu_generations_str; - char **cpu_generations; /* array string */ + char **cpu_generations; /* * The performances of the VMs. */ char *cpu_performances_str; - char **cpu_performances; /* array string */ + char **cpu_performances; /* * The descriptions of the VM templates. */ char *descriptions_str; - char **descriptions; /* array string */ + char **descriptions; /* * The IDs of the OMIs. */ char *image_ids_str; - char **image_ids; /* array string */ + char **image_ids; /* * The names of the keypairs. */ char *keypair_names_str; - char **keypair_names; /* array string */ + char **keypair_names; /* * The amount of RAM. */ char *rams_str; - int *rams; /* array integer */ + int *rams; /* * The keys of the tags associated with the VM templates. */ char *tag_keys_str; - char **tag_keys; /* array string */ + char **tag_keys; /* * The values of the tags associated with the VM templates. */ char *tag_values_str; - char **tag_values; /* array string */ + char **tag_values; /* * The key/value combination of the tags associated with the VM * templates, in the following format: * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *tags_str; - char **tags; /* array string */ + char **tags; /* * The IDs of the VM templates. */ char *vm_template_ids_str; - char **vm_template_ids; /* array string */ + char **vm_template_ids; /* * The names of the VM templates. */ char *vm_template_names_str; - char **vm_template_names; /* array string */ + char **vm_template_names; }; struct filters_vm_type { @@ -2983,48 +3007,48 @@ struct filters_vm_type { * sake of historical compatibility with AWS. */ int is_set_bsu_optimized; - int bsu_optimized; /* bool */ + int bsu_optimized; /* * The types of ephemeral storage disk. */ char *ephemerals_types_str; - char **ephemerals_types; /* array string */ + char **ephemerals_types; /* * The number of Ethernet interfaces available. */ char *eths_str; - int *eths; /* array integer */ + int *eths; /* * The number of GPUs available. */ char *gpus_str; - int *gpus; /* array integer */ + int *gpus; /* * The amounts of memory, in gibibytes (GiB). */ char *memory_sizes_str; - double *memory_sizes; /* array double */ + double *memory_sizes; /* * The numbers of vCores. */ char *vcore_counts_str; - int *vcore_counts; /* array integer */ + int *vcore_counts; /* * The names of the VM types. For more information, see [VM * Types](https://docs.outscale.com/en/userguide/VM-Types.html). */ char *vm_type_names_str; - char **vm_type_names; /* array string */ + char **vm_type_names; /* * The maximum number of ephemeral storage disks. */ char *volume_counts_str; - int *volume_counts; /* array integer */ + int *volume_counts; /* * The size of one ephemeral storage disk, in gibibytes (GiB). */ char *volume_sizes_str; - int *volume_sizes; /* array integer */ + int *volume_sizes; }; struct filters_vms_state { @@ -3033,38 +3057,38 @@ struct filters_vms_state { * `system-maintenance`). */ char *maintenance_event_codes_str; - char **maintenance_event_codes; /* array string */ + char **maintenance_event_codes; /* * The description of the scheduled event. */ char *maintenance_event_descriptions_str; - char **maintenance_event_descriptions; /* array string */ + char **maintenance_event_descriptions; /* * The latest date and time (UTC) the event can end. */ char *maintenance_events_not_after_str; - char **maintenance_events_not_after; /* array string */ + char **maintenance_events_not_after; /* * The earliest date and time (UTC) the event can start. */ char *maintenance_events_not_before_str; - char **maintenance_events_not_before; /* array string */ + char **maintenance_events_not_before; /* * The names of the Subregions of the VMs. */ char *subregion_names_str; - char **subregion_names; /* array string */ + char **subregion_names; /* * One or more IDs of VMs. */ char *vm_ids_str; - char **vm_ids; /* array string */ + char **vm_ids; /* * The states of the VMs (`pending` \\| `running` \\| `stopping` \\| * `stopped` \\| `shutting-down` \\| `terminated` \\| `quarantine`). */ char *vm_states_str; - char **vm_states; /* array string */ + char **vm_states; }; struct filters_volume { @@ -3073,82 +3097,82 @@ struct filters_volume { * format (for example, `2020-06-30T00:00:00.000Z`). */ char *creation_dates_str; - char **creation_dates; /* array string */ + char **creation_dates; /* * Whether the volumes are deleted or not when terminating the VMs. */ int is_set_link_volume_delete_on_vm_deletion; - int link_volume_delete_on_vm_deletion; /* bool */ + int link_volume_delete_on_vm_deletion; /* * The VM device names. */ char *link_volume_device_names_str; - char **link_volume_device_names; /* array string */ + char **link_volume_device_names; /* * The dates and times of creation of the volumes, in ISO 8601 date-time * format (for example, `2020-06-30T00:00:00.000Z`). */ char *link_volume_link_dates_str; - char **link_volume_link_dates; /* array string */ + char **link_volume_link_dates; /* * The attachment states of the volumes (`attaching` \\| `detaching` \\| * `attached` \\| `detached`). */ char *link_volume_link_states_str; - char **link_volume_link_states; /* array string */ + char **link_volume_link_states; /* * One or more IDs of VMs. */ char *link_volume_vm_ids_str; - char **link_volume_vm_ids; /* array string */ + char **link_volume_vm_ids; /* * The snapshots from which the volumes were created. */ char *snapshot_ids_str; - char **snapshot_ids; /* array string */ + char **snapshot_ids; /* * The names of the Subregions in which the volumes were created. */ char *subregion_names_str; - char **subregion_names; /* array string */ + char **subregion_names; /* * The keys of the tags associated with the volumes. */ char *tag_keys_str; - char **tag_keys; /* array string */ + char **tag_keys; /* * The values of the tags associated with the volumes. */ char *tag_values_str; - char **tag_values; /* array string */ + char **tag_values; /* * The key/value combination of the tags associated with the volumes, in * the following format: * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *tags_str; - char **tags; /* array string */ + char **tags; /* * The IDs of the volumes. */ char *volume_ids_str; - char **volume_ids; /* array string */ + char **volume_ids; /* * The sizes of the volumes, in gibibytes (GiB). */ char *volume_sizes_str; - int *volume_sizes; /* array integer */ + int *volume_sizes; /* * The states of the volumes (`creating` \\| `available` \\| `in-use` * \\| `updating` \\| `deleting` \\| `error`). */ char *volume_states_str; - char **volume_states; /* array string */ + char **volume_states; /* * The types of the volumes (`standard` \\| `gp2` \\| `io1`). */ char *volume_types_str; - char **volume_types; /* array string */ + char **volume_types; }; struct filters_vpn_connection { @@ -3157,28 +3181,28 @@ struct filters_vpn_connection { * the connections. */ char *bgp_asns_str; - int *bgp_asns; /* array integer */ + int *bgp_asns; /* * The IDs of the client gateways. */ char *client_gateway_ids_str; - char **client_gateway_ids; /* array string */ + char **client_gateway_ids; /* * The types of the VPN connections (only `ipsec.1` is supported). */ char *connection_types_str; - char **connection_types; /* array string */ + char **connection_types; /* * The destination IP ranges. */ char *route_destination_ip_ranges_str; - char **route_destination_ip_ranges; /* array string */ + char **route_destination_ip_ranges; /* * The states of the VPN connections (`pending` \\| `available` \\| * `deleting` \\| `deleted`). */ char *states_str; - char **states; /* array string */ + char **states; /* * If false, the VPN connection uses dynamic routing with Border Gateway * Protocol (BGP). If true, routing is controlled using static routes. @@ -3187,34 +3211,34 @@ struct filters_vpn_connection { * [DeleteVpnConnectionRoute](#deletevpnconnectionroute). */ int is_set_static_routes_only; - int static_routes_only; /* bool */ + int static_routes_only; /* * The keys of the tags associated with the VPN connections. */ char *tag_keys_str; - char **tag_keys; /* array string */ + char **tag_keys; /* * The values of the tags associated with the VPN connections. */ char *tag_values_str; - char **tag_values; /* array string */ + char **tag_values; /* * The key/value combination of the tags associated with the VPN * connections, in the following format: * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *tags_str; - char **tags; /* array string */ + char **tags; /* * The IDs of the virtual gateways. */ char *virtual_gateway_ids_str; - char **virtual_gateway_ids; /* array string */ + char **virtual_gateway_ids; /* * The IDs of the VPN connections. */ char *vpn_connection_ids_str; - char **vpn_connection_ids; /* array string */ + char **vpn_connection_ids; }; struct flexible_gpu { @@ -3222,34 +3246,34 @@ struct flexible_gpu { * If true, the fGPU is deleted when the VM is terminated. */ int is_set_delete_on_vm_deletion; - int delete_on_vm_deletion; /* bool */ + int delete_on_vm_deletion; /* * The ID of the fGPU. */ - char *flexible_gpu_id; /* string */ + char *flexible_gpu_id; /* * The compatible processor generation. */ - char *generation; /* string */ + char *generation; /* * The model of fGPU. For more information, see [About Flexible * GPUs](https://docs.outscale.com/en/userguide/About-Flexible-GPUs.html) * . */ - char *model_name; /* string */ + char *model_name; /* * The state of the fGPU (`allocated` \\| `attaching` \\| `attached` \\| * `detaching`). */ - char *state; /* string */ + char *state; /* * The Subregion where the fGPU is located. */ - char *subregion_name; /* string */ + char *subregion_name; /* * The ID of the VM the fGPU is attached to, if any. */ - char *vm_id; /* string */ + char *vm_id; }; struct flexible_gpu_catalog { @@ -3257,26 +3281,26 @@ struct flexible_gpu_catalog { * The generations of VMs that the fGPU is compatible with. */ char *generations_str; - char **generations; /* array string */ + char **generations; /* * The maximum number of VM vCores that the fGPU is compatible with. */ int is_set_max_cpu; - int max_cpu; /* int */ + int max_cpu; /* * The maximum amount of VM memory that the fGPU is compatible with. */ int is_set_max_ram; - int max_ram; /* int */ + int max_ram; /* * The model of fGPU. */ - char *model_name; /* string */ + char *model_name; /* * The amount of video RAM (VRAM) of the fGPU. */ int is_set_vram; - int vram; /* int */ + int vram; }; struct health_check { @@ -3285,39 +3309,39 @@ struct health_check { * both included). */ int is_set_check_interval; - int check_interval; /* int */ + int check_interval; /* * The number of consecutive successful requests before considering the * VM as healthy (between `2` and `10` both included). */ int is_set_healthy_threshold; - int healthy_threshold; /* int */ + int healthy_threshold; /* * If you use the HTTP or HTTPS protocols, the request URL path. */ - char *path; /* string */ + char *path; /* * The port number (between `1` and `65535`, both included). */ int is_set_port; - int port; /* int */ + int port; /* * The protocol for the URL of the VM (`HTTP` \\| `HTTPS` \\| `TCP` \\| * `SSL`). */ - char *protocol; /* string */ + char *protocol; /* * The maximum waiting time for a response before considering the VM as * unhealthy, in seconds (between `2` and `60` both included). */ int is_set_timeout; - int timeout; /* int */ + int timeout; /* * The number of consecutive failed requests before considering the VM * as unhealthy (between `2` and `10` both included). */ int is_set_unhealthy_threshold; - int unhealthy_threshold; /* int */ + int unhealthy_threshold; }; struct permissions_on_resource { @@ -3325,7 +3349,7 @@ struct permissions_on_resource { * One or more account IDs that the permission is associated with. */ char *account_ids_str; - char **account_ids; /* array string */ + char **account_ids; /* * A global permission for all accounts.
\n(Request) Set this * parameter to true to make the resource public (if the parent @@ -3334,225 +3358,236 @@ struct permissions_on_resource { * resource is public. If false, the resource is private. */ int is_set_global_permission; - int global_permission; /* bool */ + int global_permission; }; struct state_comment { /* * The code of the change of state. */ - char *state_code; /* string */ + char *state_code; /* * A message explaining the change of state. */ - char *state_message; /* string */ + char *state_message; }; struct image { /* * The account alias of the owner of the OMI. */ - char *account_alias; /* string */ + char *account_alias; /* * The account ID of the owner of the OMI. */ - char *account_id; /* string */ + char *account_id; /* * The architecture of the OMI. */ - char *architecture; /* string */ + char *architecture; /* * One or more block device mappings. - * One or more parameters used to automatically set up volumes - * when the VM is created. - * -Bsu: ref BsuToCreate + * One or more parameters used to automatically set up volumes when + * the VM + * is created. + * --BlockDeviceMappings.INDEX.Bsu: ref BsuToCreate * Information about the BSU volume to create. - * -DeleteOnVmDeletion: bool + * --BlockDeviceMappings.INDEX.Bsu.DeleteOnVmDeletion: bool * By default or if set to true, the volume is deleted when - * terminating the VM. If false, the volume is not deleted when - * terminating the VM. - * -Iops: int + * terminating the + * VM. If false, the volume is not deleted when terminating the + * VM. + * --BlockDeviceMappings.INDEX.Bsu.Iops: int * The number of I/O operations per second (IOPS). This - * parameter - * must be specified only if you create an `io1` volume. The - * maximum number of IOPS allowed for `io1` volumes is `13000` - * with a maximum performance ratio of 300 IOPS per gibibyte. - * -SnapshotId: string + * parameter must be + * specified only if you create an `io1` volume. The maximum + * number of IOPS + * allowed for `io1` volumes is `13000` with a maximum + * performance ratio of + * 300 IOPS per gibibyte. + * --BlockDeviceMappings.INDEX.Bsu.SnapshotId: string * The ID of the snapshot used to create the volume. - * -VolumeSize: int + * --BlockDeviceMappings.INDEX.Bsu.VolumeSize: int * The size of the volume, in gibibytes (GiB).
\nIf you - * specify a snapshot ID, the volume size must be at least equal - * to the snapshot size.
\nIf you specify a snapshot ID but - * no volume size, the volume is created with a size similar to - * the snapshot one. - * -VolumeType: string + * specify a + * snapshot ID, the volume size must be at least equal to the + * snapshot + * size.
\nIf you specify a snapshot ID but no volume size, + * the volume + * is created with a size similar to the snapshot one. + * --BlockDeviceMappings.INDEX.Bsu.VolumeType: string * The type of the volume (`standard` \\| `io1` \\| `gp2`). If - * not specified in the request, a `standard` volume is - * created.
\nFor more information about volume types, see - * [About Volumes > Volume Types and + * not + * specified in the request, a `standard` volume is created.
\nFor more + * information about volume types, see [About Volumes > Volume + * Types and * - * IOPS](https://docs.outscale.com/en/userguide/About-Volumes.html# - * _volume_types_and_iops). - * -DeviceName: string - * The device name for the volume. For a root device, you must - * use `/dev/sda1`. For other volumes, you must use `/dev/sdX`, - * `/dev/sdXX`, `/dev/xvdX`, or `/dev/xvdXX` (where the first `X` - * is a letter between `b` and `z`, and the second `X` is a letter - * between `a` and `z`). - * -VirtualDeviceName: string + * IOPS](https://docs.outscale.com/en/userguide/About-Volumes.html#_volum + * e_ty + * pes_and_iops). + * --BlockDeviceMappings.INDEX.DeviceName: string + * The device name for the volume. For a root device, you must use + * `/dev/sda1`. For other volumes, you must use `/dev/sdX`, + * `/dev/sdXX`, + * `/dev/xvdX`, or `/dev/xvdXX` (where the first `X` is a letter + * between `b` + * and `z`, and the second `X` is a letter between `a` and `z`). + * --BlockDeviceMappings.INDEX.VirtualDeviceName: string * The name of the virtual device (`ephemeralN`). */ char *block_device_mappings_str; int nb_block_device_mappings; - struct block_device_mapping_image *block_device_mappings; /* array ref BlockDeviceMappingImage */ + struct block_device_mapping_image *block_device_mappings; /* * The date and time (UTC) of creation of the OMI. */ - char *creation_date; /* string */ + char *creation_date; /* * The description of the OMI. */ - char *description; /* string */ + char *description; /* * The location from which the OMI files were created. */ - char *file_location; /* string */ + char *file_location; /* * The ID of the OMI. */ - char *image_id; /* string */ + char *image_id; /* * The name of the OMI. */ - char *image_name; /* string */ + char *image_name; /* * The type of the OMI. */ - char *image_type; /* string */ + char *image_type; /* * Permissions for the resource. - * -AccountIds: array string - * One or more account IDs that the permission is associated - * with. - * -GlobalPermission: bool - * A global permission for all accounts.
\n(Request) Set - * this parameter to true to make the resource public (if the - * parent parameter is `Additions`) or to make the resource - * private (if the parent parameter is `Removals`).
\n(Response) If true, the resource is public. If false, the - * resource is private. + * --PermissionsToLaunch.AccountIds: array string + * One or more account IDs that the permission is associated with. + * --PermissionsToLaunch.GlobalPermission: bool + * A global permission for all accounts.
\n(Request) Set this + * parameter to true to make the resource public (if the parent + * parameter is + * `Additions`) or to make the resource private (if the parent + * parameter is + * `Removals`).
\n(Response) If true, the resource is public. + * If false, + * the resource is private. */ char *permissions_to_launch_str; int is_set_permissions_to_launch; - struct permissions_on_resource permissions_to_launch; /* ref PermissionsOnResource */ + struct permissions_on_resource permissions_to_launch; /* * The product codes associated with the OMI. */ char *product_codes_str; - char **product_codes; /* array string */ + char **product_codes; /* * The name of the root device. */ - char *root_device_name; /* string */ + char *root_device_name; /* * The type of root device used by the OMI (always `bsu`). */ - char *root_device_type; /* string */ + char *root_device_type; /* * The state of the OMI (`pending` \\| `available` \\| `failed`). */ - char *state; /* string */ + char *state; /* * Information about the change of state. - * -StateCode: string + * --StateComment.StateCode: string * The code of the change of state. - * -StateMessage: string + * --StateComment.StateMessage: string * A message explaining the change of state. */ char *state_comment_str; int is_set_state_comment; - struct state_comment state_comment; /* ref StateComment */ + struct state_comment state_comment; /* * One or more tags associated with the OMI. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; }; struct osu_export_image_export_task { /* * The format of the export disk (`qcow2` \\| `raw`). */ - char *disk_image_format; /* string */ + char *disk_image_format; /* * The name of the OOS bucket the OMI is exported to. */ - char *osu_bucket; /* string */ + char *osu_bucket; /* * The URL of the manifest file. */ - char *osu_manifest_url; /* string */ + char *osu_manifest_url; /* * The prefix for the key of the OOS object corresponding to the image. */ - char *osu_prefix; /* string */ + char *osu_prefix; }; struct image_export_task { /* * If the OMI export task fails, an error message appears. */ - char *comment; /* string */ + char *comment; /* * The ID of the OMI to be exported. */ - char *image_id; /* string */ + char *image_id; /* * Information about the OMI export task. - * -DiskImageFormat: string + * --OsuExport.DiskImageFormat: string * The format of the export disk (`qcow2` \\| `raw`). - * -OsuBucket: string + * --OsuExport.OsuBucket: string * The name of the OOS bucket the OMI is exported to. - * -OsuManifestUrl: string + * --OsuExport.OsuManifestUrl: string * The URL of the manifest file. - * -OsuPrefix: string + * --OsuExport.OsuPrefix: string * The prefix for the key of the OOS object corresponding to the - * image. + * image. */ char *osu_export_str; int is_set_osu_export; - struct osu_export_image_export_task osu_export; /* ref OsuExportImageExportTask */ + struct osu_export_image_export_task osu_export; /* * The progress of the OMI export task, as a percentage. */ int is_set_progress; - int progress; /* int */ + int progress; /* * The state of the OMI export task (`pending/queued` \\| `pending` \\| * `completed` \\| `failed` \\| `cancelled`). */ - char *state; /* string */ + char *state; /* * One or more tags associated with the image export task. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; /* * The ID of the OMI export task. */ - char *task_id; /* string */ + char *task_id; }; struct inline_policy { @@ -3562,79 +3597,79 @@ struct inline_policy { * Information](https://docs.outscale.com/en/userguide/EIM-Reference-Info * rmation.html). */ - char *body; /* string */ + char *body; /* * The name of the policy. */ - char *name; /* string */ + char *name; }; struct internet_service { /* * The ID of the Internet service. */ - char *internet_service_id; /* string */ + char *internet_service_id; /* * The ID of the Net attached to the Internet service. */ - char *net_id; /* string */ + char *net_id; /* * The state of the attachment of the Internet service to the Net * (always `available`). */ - char *state; /* string */ + char *state; /* * One or more tags associated with the Internet service. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; }; struct keypair { /* * The MD5 public key fingerprint as specified in section 4 of RFC 4716. */ - char *keypair_fingerprint; /* string */ + char *keypair_fingerprint; /* * The name of the keypair. */ - char *keypair_name; /* string */ + char *keypair_name; /* * The type of the keypair (`ssh-rsa`, `ssh-ed25519`, * `ecdsa-sha2-nistp256`, `ecdsa-sha2-nistp384`, or * `ecdsa-sha2-nistp521`). */ - char *keypair_type; /* string */ + char *keypair_type; }; struct keypair_created { /* * The MD5 public key fingerprint, as specified in section 4 of RFC 4716. */ - char *keypair_fingerprint; /* string */ + char *keypair_fingerprint; /* * The name of the keypair. */ - char *keypair_name; /* string */ + char *keypair_name; /* * The type of the keypair (`ssh-rsa`, `ssh-ed25519`, * `ecdsa-sha2-nistp256`, `ecdsa-sha2-nistp384`, or * `ecdsa-sha2-nistp521`). */ - char *keypair_type; /* string */ + char *keypair_type; /* * The private key, returned only if you are creating a keypair (not if * you are importing). When you save this private key in a .rsa file, * make sure you replace the `\\n` escape sequences with real line * breaks. */ - char *private_key; /* string */ + char *private_key; }; struct link_nic { @@ -3642,30 +3677,30 @@ struct link_nic { * If true, the NIC is deleted when the VM is terminated. */ int is_set_delete_on_vm_deletion; - int delete_on_vm_deletion; /* bool */ + int delete_on_vm_deletion; /* * The device index for the NIC attachment (between `1` and `7`, both * included). */ int is_set_device_number; - int device_number; /* int */ + int device_number; /* * The ID of the NIC to attach. */ - char *link_nic_id; /* string */ + char *link_nic_id; /* * The state of the attachment (`attaching` \\| `attached` \\| * `detaching` \\| `detached`). */ - char *state; /* string */ + char *state; /* * The account ID of the owner of the VM. */ - char *vm_account_id; /* string */ + char *vm_account_id; /* * The ID of the VM. */ - char *vm_id; /* string */ + char *vm_id; }; struct link_nic_light { @@ -3673,22 +3708,22 @@ struct link_nic_light { * If true, the NIC is deleted when the VM is terminated. */ int is_set_delete_on_vm_deletion; - int delete_on_vm_deletion; /* bool */ + int delete_on_vm_deletion; /* * The device index for the NIC attachment (between `1` and `7`, both * included). */ int is_set_device_number; - int device_number; /* int */ + int device_number; /* * The ID of the NIC to attach. */ - char *link_nic_id; /* string */ + char *link_nic_id; /* * The state of the attachment (`attaching` \\| `attached` \\| * `detaching` \\| `detached`). */ - char *state; /* string */ + char *state; }; struct link_nic_to_update { @@ -3697,11 +3732,11 @@ struct link_nic_to_update { * NIC is detached from the VM. */ int is_set_delete_on_vm_deletion; - int delete_on_vm_deletion; /* bool */ + int delete_on_vm_deletion; /* * The ID of the NIC attachment. */ - char *link_nic_id; /* string */ + char *link_nic_id; }; struct link_public_ip { @@ -3709,38 +3744,38 @@ struct link_public_ip { * (Required in a Net) The ID representing the association of the public * IP with the VM or the NIC. */ - char *link_public_ip_id; /* string */ + char *link_public_ip_id; /* * The name of the public DNS. */ - char *public_dns_name; /* string */ + char *public_dns_name; /* * The public IP associated with the NIC. */ - char *public_ip; /* string */ + char *public_ip; /* * The account ID of the owner of the public IP. */ - char *public_ip_account_id; /* string */ + char *public_ip_account_id; /* * The allocation ID of the public IP. */ - char *public_ip_id; /* string */ + char *public_ip_id; }; struct link_public_ip_light_for_vm { /* * The name of the public DNS. */ - char *public_dns_name; /* string */ + char *public_dns_name; /* * The public IP associated with the NIC. */ - char *public_ip; /* string */ + char *public_ip; /* * The account ID of the owner of the public IP. */ - char *public_ip_account_id; /* string */ + char *public_ip_account_id; }; struct link_route_table { @@ -3748,52 +3783,52 @@ struct link_route_table { * The ID of the association between the route table and the Net or * Subnet. */ - char *link_route_table_id; /* string */ + char *link_route_table_id; /* * If true, the route table is the main one. */ int is_set_main; - int main; /* bool */ + int main; /* * The ID of the Net, if the route table is not explicitly linked to a * Subnet. */ - char *net_id; /* string */ + char *net_id; /* * The ID of the route table. */ - char *route_table_id; /* string */ + char *route_table_id; /* * The ID of the Subnet, if the route table is explicitly linked to a * Subnet. */ - char *subnet_id; /* string */ + char *subnet_id; }; struct linked_policy { /* * The date and time (UTC) of creation of the linked policy. */ - char *creation_date; /* string */ + char *creation_date; /* * The date and time (UTC) at which the linked policy was last modified. */ - char *last_modification_date; /* string */ + char *last_modification_date; /* * The OUTSCALE Resource Name (ORN) of the policy. For more information, * see [Resource * Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifie * rs.html). */ - char *orn; /* string */ + char *orn; /* * The ID of the policy. */ - char *policy_id; /* string */ + char *policy_id; /* * The name of the policy. */ - char *policy_name; /* string */ + char *policy_name; }; struct linked_volume { @@ -3802,24 +3837,24 @@ struct linked_volume { * volume is not deleted when terminating the VM. */ int is_set_delete_on_vm_deletion; - int delete_on_vm_deletion; /* bool */ + int delete_on_vm_deletion; /* * The name of the device. */ - char *device_name; /* string */ + char *device_name; /* * The state of the attachment of the volume (`attaching` \\| * `detaching` \\| `attached` \\| `detached`). */ - char *state; /* string */ + char *state; /* * The ID of the VM. */ - char *vm_id; /* string */ + char *vm_id; /* * The ID of the volume. */ - char *volume_id; /* string */ + char *volume_id; }; struct listener { @@ -3828,35 +3863,35 @@ struct listener { * `65535`, both included). */ int is_set_backend_port; - int backend_port; /* int */ + int backend_port; /* * The protocol for routing traffic to backend VMs (`HTTP` \\| `HTTPS` * \\| `TCP` \\| `SSL`). */ - char *backend_protocol; /* string */ + char *backend_protocol; /* * The port on which the load balancer is listening (between `1` and * `65535`, both included). */ int is_set_load_balancer_port; - int load_balancer_port; /* int */ + int load_balancer_port; /* * The routing protocol (`HTTP` \\| `HTTPS` \\| `TCP` \\| `SSL`). */ - char *load_balancer_protocol; /* string */ + char *load_balancer_protocol; /* * The names of the policies. If there are no policies enabled, the list * is empty. */ char *policy_names_str; - char **policy_names; /* array string */ + char **policy_names; /* * The OUTSCALE Resource Name (ORN) of the server certificate. For more * information, see [Resource Identifiers > OUTSCALE Resource Names * (ORNs)](https://docs.outscale.com/en/userguide/Resource-Identifiers.ht * ml#_outscale_resource_names_orns). */ - char *server_certificate_id; /* string */ + char *server_certificate_id; }; struct listener_for_creation { @@ -3865,234 +3900,248 @@ struct listener_for_creation { * `65535`, both included). */ int is_set_backend_port; - int backend_port; /* int */ + int backend_port; /* * The protocol for routing traffic to backend VMs (`HTTP` \\| `HTTPS` * \\| `TCP` \\| `SSL`). */ - char *backend_protocol; /* string */ + char *backend_protocol; /* * The port on which the load balancer is listening (between `1` and * `65535`, both included). */ int is_set_load_balancer_port; - int load_balancer_port; /* int */ + int load_balancer_port; /* * The routing protocol (`HTTP` \\| `HTTPS` \\| `TCP` \\| `SSL`). */ - char *load_balancer_protocol; /* string */ + char *load_balancer_protocol; /* * The OUTSCALE Resource Name (ORN) of the server certificate. For more * information, see [Resource Identifiers > OUTSCALE Resource Names * (ORNs)](https://docs.outscale.com/en/userguide/Resource-Identifiers.ht * ml#_outscale_resource_names_orns). */ - char *server_certificate_id; /* string */ + char *server_certificate_id; }; struct listener_rule { /* * The type of action for the rule (always `forward`). */ - char *action; /* string */ + char *action; /* * A host-name pattern for the rule, with a maximum length of 128 * characters. This host-name pattern supports maximum three wildcards, * and must not contain any special characters except [-.?]. */ - char *host_name_pattern; /* string */ + char *host_name_pattern; /* * The ID of the listener. */ int is_set_listener_id; - int listener_id; /* int */ + int listener_id; /* * The ID of the listener rule. */ int is_set_listener_rule_id; - int listener_rule_id; /* int */ + int listener_rule_id; /* * A human-readable name for the listener rule. */ - char *listener_rule_name; /* string */ + char *listener_rule_name; /* * A path pattern for the rule, with a maximum length of 128 characters. * This path pattern supports maximum three wildcards, and must not * contain any special characters except [_-.$/~"'@:+?]. */ - char *path_pattern; /* string */ + char *path_pattern; /* * The priority level of the listener rule, between `1` and `19999` both * included. Each rule must have a unique priority level. Otherwise, an * error is returned. */ int is_set_priority; - int priority; /* int */ + int priority; /* * The IDs of the backend VMs. */ char *vm_ids_str; - char **vm_ids; /* array string */ + char **vm_ids; }; struct listener_rule_for_creation { /* * The type of action for the rule (always `forward`). */ - char *action; /* string */ + char *action; /* * A host-name pattern for the rule, with a maximum length of 128 * characters. This host-name pattern supports maximum three wildcards, * and must not contain any special characters except [-.?]. */ - char *host_name_pattern; /* string */ + char *host_name_pattern; /* * A human-readable name for the listener rule. */ - char *listener_rule_name; /* string */ + char *listener_rule_name; /* * A path pattern for the rule, with a maximum length of 128 characters. * This path pattern supports maximum three wildcards, and must not * contain any special characters except [_-.$/~"'@:+?]. */ - char *path_pattern; /* string */ + char *path_pattern; /* * The priority level of the listener rule, between `1` and `19999` both * included. Each rule must have a unique priority level. Otherwise, an * error is returned. */ int is_set_priority; - int priority; /* int */ + int priority; }; struct source_security_group { /* * The account ID of the owner of the security group. */ - char *security_group_account_id; /* string */ + char *security_group_account_id; /* * The name of the security group. */ - char *security_group_name; /* string */ + char *security_group_name; }; struct load_balancer { /* * Information about access logs. - * -IsEnabled: bool + * --AccessLog.IsEnabled: bool * If true, access logs are enabled for your load balancer. If - * false, they are not. If you set this to true in your request, - * the `OsuBucketName` parameter is required. - * -OsuBucketName: string + * false, they + * are not. If you set this to true in your request, the + * `OsuBucketName` + * parameter is required. + * --AccessLog.OsuBucketName: string * The name of the OOS bucket for the access logs. - * -OsuBucketPrefix: string - * The path to the folder of the access logs in your OOS bucket - * (by default, the `root` level of your bucket). - * -PublicationInterval: int - * The time interval for the publication of access logs in the - * OOS bucket, in minutes. This value can be either `5` or `60` - * (by default, `60`). + * --AccessLog.OsuBucketPrefix: string + * The path to the folder of the access logs in your OOS bucket (by + * default, the `root` level of your bucket). + * --AccessLog.PublicationInterval: int + * The time interval for the publication of access logs in the OOS + * bucket, + * in minutes. This value can be either `5` or `60` (by default, + * `60`). */ char *access_log_str; int is_set_access_log; - struct access_log access_log; /* ref AccessLog */ + struct access_log access_log; /* * The stickiness policies defined for the load balancer. * Information about the stickiness policy. - * -CookieName: string + * --ApplicationStickyCookiePolicies.INDEX.CookieName: string * The name of the application cookie used for stickiness. - * -PolicyName: string - * The mnemonic name for the policy being created. The name must - * be unique within a set of policies for this load balancer. + * --ApplicationStickyCookiePolicies.INDEX.PolicyName: string + * The mnemonic name for the policy being created. The name must be + * unique + * within a set of policies for this load balancer. */ char *application_sticky_cookie_policies_str; int nb_application_sticky_cookie_policies; - struct application_sticky_cookie_policy *application_sticky_cookie_policies; /* array ref ApplicationStickyCookiePolicy */ + struct application_sticky_cookie_policy *application_sticky_cookie_policies; /* * One or more public IPs of backend VMs. */ char *backend_ips_str; - char **backend_ips; /* array string */ + char **backend_ips; /* * One or more IDs of backend VMs for the load balancer. */ char *backend_vm_ids_str; - char **backend_vm_ids; /* array string */ + char **backend_vm_ids; /* * The DNS name of the load balancer. */ - char *dns_name; /* string */ + char *dns_name; /* * Information about the health check configuration. - * -CheckInterval: int - * The number of seconds between two requests (between `5` and - * `600` both included). - * -HealthyThreshold: int - * The number of consecutive successful requests before - * considering the VM as healthy (between `2` and `10` both + * --HealthCheck.CheckInterval: int + * The number of seconds between two requests (between `5` and `600` + * both * included). - * -Path: string + * --HealthCheck.HealthyThreshold: int + * The number of consecutive successful requests before considering + * the VM + * as healthy (between `2` and `10` both included). + * --HealthCheck.Path: string * If you use the HTTP or HTTPS protocols, the request URL path. - * -Port: int + * --HealthCheck.Port: int * The port number (between `1` and `65535`, both included). - * -Protocol: string - * The protocol for the URL of the VM (`HTTP` \\| `HTTPS` \\| - * `TCP` \\| `SSL`). - * -Timeout: int - * The maximum waiting time for a response before considering the - * VM as unhealthy, in seconds (between `2` and `60` both - * included). - * -UnhealthyThreshold: int - * The number of consecutive failed requests before considering - * the VM as unhealthy (between `2` and `10` both included). + * --HealthCheck.Protocol: string + * The protocol for the URL of the VM (`HTTP` \\| `HTTPS` \\| `TCP` + * \\| + * `SSL`). + * --HealthCheck.Timeout: int + * The maximum waiting time for a response before considering the VM + * as + * unhealthy, in seconds (between `2` and `60` both included). + * --HealthCheck.UnhealthyThreshold: int + * The number of consecutive failed requests before considering the + * VM as + * unhealthy (between `2` and `10` both included). */ char *health_check_str; int is_set_health_check; - struct health_check health_check; /* ref HealthCheck */ + struct health_check health_check; /* * The listeners for the load balancer. * Information about the listener. - * -BackendPort: int + * --Listeners.INDEX.BackendPort: int * The port on which the backend VM is listening (between `1` and - * `65535`, both included). - * -BackendProtocol: string + * `65535`, + * both included). + * --Listeners.INDEX.BackendProtocol: string * The protocol for routing traffic to backend VMs (`HTTP` \\| - * `HTTPS` \\| `TCP` \\| `SSL`). - * -LoadBalancerPort: int - * The port on which the load balancer is listening (between `1` - * and `65535`, both included). - * -LoadBalancerProtocol: string + * `HTTPS` \\| + * `TCP` \\| `SSL`). + * --Listeners.INDEX.LoadBalancerPort: int + * The port on which the load balancer is listening (between `1` and + * `65535`, both included). + * --Listeners.INDEX.LoadBalancerProtocol: string * The routing protocol (`HTTP` \\| `HTTPS` \\| `TCP` \\| `SSL`). - * -PolicyNames: array string - * The names of the policies. If there are no policies enabled, - * the list is empty. - * -ServerCertificateId: string - * The OUTSCALE Resource Name (ORN) of the server certificate. - * For more information, see [Resource Identifiers > OUTSCALE - * Resource Names - * (ORNs)](https://docs.outscale.com/en/userguide/Resource-Identifi - * ers.html#_outscale_resource_names_orns). + * --Listeners.INDEX.PolicyNames: array string + * The names of the policies. If there are no policies enabled, the + * list is + * empty. + * --Listeners.INDEX.ServerCertificateId: string + * The OUTSCALE Resource Name (ORN) of the server certificate. For + * more + * information, see [Resource Identifiers > OUTSCALE Resource Names + * + * (ORNs)](https://docs.outscale.com/en/userguide/Resource-Identifiers.ht + * ml#_ + * outscale_resource_names_orns). */ char *listeners_str; int nb_listeners; - struct listener *listeners; /* array ref Listener */ + struct listener *listeners; /* * The name of the load balancer. */ - char *load_balancer_name; /* string */ + char *load_balancer_name; /* * The policies defined for the load balancer. * Information about the stickiness policy. - * -CookieExpirationPeriod: int + * --LoadBalancerStickyCookiePolicies.INDEX.CookieExpirationPeriod: int * The time period, in seconds, after which the cookie should be - * considered stale.
\nIf `1`, the stickiness session lasts - * for the duration of the browser session. - * -PolicyName: string + * considered + * stale.
\nIf `1`, the stickiness session lasts for the + * duration of + * the browser session. + * --LoadBalancerStickyCookiePolicies.INDEX.PolicyName: string * The name of the stickiness policy. */ char *load_balancer_sticky_cookie_policies_str; int nb_load_balancer_sticky_cookie_policies; - struct load_balancer_sticky_cookie_policy *load_balancer_sticky_cookie_policies; /* array ref LoadBalancerStickyCookiePolicy */ + struct load_balancer_sticky_cookie_policy *load_balancer_sticky_cookie_policies; /* * The type of load balancer. Valid only for load balancers in a Net.
\nIf `LoadBalancerType` is `internet-facing`, the load balancer has @@ -4100,75 +4149,77 @@ struct load_balancer { * `LoadBalancerType` is `internal`, the load balancer has a public DNS * name that resolves to a private IP. */ - char *load_balancer_type; /* string */ + char *load_balancer_type; /* * The ID of the Net for the load balancer. */ - char *net_id; /* string */ + char *net_id; /* * (internet-facing only) The public IP associated with the load * balancer. */ - char *public_ip; /* string */ + char *public_ip; /* * Whether secure cookies are enabled for the load balancer. */ int is_set_secured_cookies; - int secured_cookies; /* bool */ + int secured_cookies; /* * One or more IDs of security groups for the load balancers. Valid only * for load balancers in a Net. */ char *security_groups_str; - char **security_groups; /* array string */ - /* - * Information about the source security group of the load - * balancer, which you can use as part of your inbound rules for - * your registered VMs.
\nTo only allow traffic from load - * balancers, add a security group rule that specifies this source - * security group as the inbound source. - * -SecurityGroupAccountId: string + char **security_groups; + /* + * Information about the source security group of the load balancer, + * which + * you can use as part of your inbound rules for your registered + * VMs.
\nTo only allow traffic from load balancers, add a security group + * rule + * that specifies this source security group as the inbound source. + * --SourceSecurityGroup.SecurityGroupAccountId: string * The account ID of the owner of the security group. - * -SecurityGroupName: string + * --SourceSecurityGroup.SecurityGroupName: string * The name of the security group. */ char *source_security_group_str; int is_set_source_security_group; - struct source_security_group source_security_group; /* ref SourceSecurityGroup */ + struct source_security_group source_security_group; /* * The ID of the Subnet in which the load balancer was created. */ char *subnets_str; - char **subnets; /* array string */ + char **subnets; /* * The ID of the Subregion in which the load balancer was created. */ char *subregion_names_str; - char **subregion_names; /* array string */ + char **subregion_names; /* * One or more tags associated with the load balancer. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; }; struct load_balancer_light { /* * The name of the load balancer to which the listener is attached. */ - char *load_balancer_name; /* string */ + char *load_balancer_name; /* * The port of load balancer on which the load balancer is listening * (between `1` and `65535` both included). */ int is_set_load_balancer_port; - int load_balancer_port; /* int */ + int load_balancer_port; }; struct load_balancer_sticky_cookie_policy { @@ -4178,26 +4229,26 @@ struct load_balancer_sticky_cookie_policy { * duration of the browser session. */ int is_set_cookie_expiration_period; - int cookie_expiration_period; /* int */ + int cookie_expiration_period; /* * The name of the stickiness policy. */ - char *policy_name; /* string */ + char *policy_name; }; struct load_balancer_tag { /* * The key of the tag. */ - char *key; /* string */ + char *key; /* * The name of the load balancer. */ - char *load_balancer_name; /* string */ + char *load_balancer_name; /* * The value of the tag. */ - char *value; /* string */ + char *value; }; struct location { @@ -4205,154 +4256,154 @@ struct location { * The location code, to be set as the `Location` parameter of the * *CreateDirectLink* method when creating a DirectLink. */ - char *code; /* string */ + char *code; /* * The name and description of the location, corresponding to a * datacenter. */ - char *name; /* string */ + char *name; }; struct log { /* * The account ID of the logged call. */ - char *account_id; /* string */ + char *account_id; /* * The duration of the logged call, in microseconds. */ int is_set_call_duration; - int call_duration; /* int */ + int call_duration; /* * The access key used for the logged call. */ - char *query_access_key; /* string */ + char *query_access_key; /* * The name of the API used by the logged call (always `oapi` for the * OUTSCALE API). */ - char *query_api_name; /* string */ + char *query_api_name; /* * The version of the API used by the logged call. */ - char *query_api_version; /* string */ + char *query_api_version; /* * The name of the logged call. */ - char *query_call_name; /* string */ + char *query_call_name; /* * The date and time (UTC) of the logged call. */ - char *query_date; /* string */ + char *query_date; /* * The raw header of the HTTP request of the logged call. */ - char *query_header_raw; /* string */ + char *query_header_raw; /* * The size of the raw header of the HTTP request of the logged call, in * bytes. */ int is_set_query_header_size; - int query_header_size; /* int */ + int query_header_size; /* * The IP used for the logged call. */ - char *query_ip_address; /* string */ + char *query_ip_address; /* * The raw payload of the HTTP request of the logged call. */ - char *query_payload_raw; /* string */ + char *query_payload_raw; /* * The size of the raw payload of the HTTP request of the logged call, * in bytes. */ int is_set_query_payload_size; - int query_payload_size; /* int */ + int query_payload_size; /* * The user agent of the HTTP request of the logged call. */ - char *query_user_agent; /* string */ + char *query_user_agent; /* * The request ID provided in the response of the logged call. */ - char *request_id; /* string */ + char *request_id; /* * The size of the response of the logged call, in bytes. */ int is_set_response_size; - int response_size; /* int */ + int response_size; /* * The HTTP status code of the response of the logged call. */ int is_set_response_status_code; - int response_status_code; /* int */ + int response_status_code; }; struct maintenance_event { /* * The code of the event (`system-reboot` \\| `system-maintenance`). */ - char *code; /* string */ + char *code; /* * The description of the event. */ - char *description; /* string */ + char *description; /* * The latest scheduled end date and time (UTC) for the event. */ - char *not_after; /* string */ + char *not_after; /* * The earliest scheduled start date and time (UTC) for the event. */ - char *not_before; /* string */ + char *not_before; }; struct nat_service { /* * The idempotency token provided when creating the NAT service. */ - char *client_token; /* string */ + char *client_token; /* * The ID of the NAT service. */ - char *nat_service_id; /* string */ + char *nat_service_id; /* * The ID of the Net in which the NAT service is. */ - char *net_id; /* string */ + char *net_id; /* * Information about the public IP or IPs associated with the NAT * service. * Information about the public IP. - * -PublicIp: string + * --PublicIps.INDEX.PublicIp: string * The public IP associated with the NAT service. - * -PublicIpId: string + * --PublicIps.INDEX.PublicIpId: string * The allocation ID of the public IP associated with the NAT - * service. + * service. */ char *public_ips_str; int nb_public_ips; - struct public_ip_light *public_ips; /* array ref PublicIpLight */ + struct public_ip_light *public_ips; /* * The state of the NAT service (`pending` \\| `available` \\| * `deleting` \\| `deleted`). */ - char *state; /* string */ + char *state; /* * The ID of the Subnet in which the NAT service is. */ - char *subnet_id; /* string */ + char *subnet_id; /* * One or more tags associated with the NAT service. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; }; struct net { @@ -4360,304 +4411,307 @@ struct net { * The ID of the DHCP options set (or `default` if you want to associate * the default one). */ - char *dhcp_options_set_id; /* string */ + char *dhcp_options_set_id; /* * The IP range for the Net, in CIDR notation (for example, * `10.0.0.0/16`). */ - char *ip_range; /* string */ + char *ip_range; /* * The ID of the Net. */ - char *net_id; /* string */ + char *net_id; /* * The state of the Net (`pending` \\| `available` \\| `deleting`). */ - char *state; /* string */ + char *state; /* * One or more tags associated with the Net. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; /* * The VM tenancy in a Net. */ - char *tenancy; /* string */ + char *tenancy; }; struct net_access_point { /* * The ID of the Net access point. */ - char *net_access_point_id; /* string */ + char *net_access_point_id; /* * The ID of the Net with which the Net access point is associated. */ - char *net_id; /* string */ + char *net_id; /* * The ID of the route tables associated with the Net access point. */ char *route_table_ids_str; - char **route_table_ids; /* array string */ + char **route_table_ids; /* * The name of the service with which the Net access point is associated. */ - char *service_name; /* string */ + char *service_name; /* * The state of the Net access point (`pending` \\| `available` \\| * `deleting` \\| `deleted`). */ - char *state; /* string */ + char *state; /* * One or more tags associated with the Net access point. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; }; struct source_net { /* * The account ID of the owner of the source Net. */ - char *account_id; /* string */ + char *account_id; /* * The IP range for the source Net, in CIDR notation (for example, * `10.0.0.0/16`). */ - char *ip_range; /* string */ + char *ip_range; /* * The ID of the source Net. */ - char *net_id; /* string */ + char *net_id; }; struct net_peering_state { /* * Additional information about the state of the Net peering. */ - char *message; /* string */ + char *message; /* * The state of the Net peering (`pending-acceptance` \\| `active` \\| * `rejected` \\| `failed` \\| `expired` \\| `deleted`). */ - char *name; /* string */ + char *name; }; struct net_peering { /* * Information about the accepter Net. - * -AccountId: string + * --AccepterNet.AccountId: string * The account ID of the owner of the accepter Net. - * -IpRange: string - * The IP range for the accepter Net, in CIDR notation (for - * example, `10.0.0.0/16`). - * -NetId: string + * --AccepterNet.IpRange: string + * The IP range for the accepter Net, in CIDR notation (for example, + * `10.0.0.0/16`). + * --AccepterNet.NetId: string * The ID of the accepter Net. */ char *accepter_net_str; int is_set_accepter_net; - struct accepter_net accepter_net; /* ref AccepterNet */ + struct accepter_net accepter_net; /* * The date and time (UTC) at which the Net peerings expire. */ - char *expiration_date; /* string */ + char *expiration_date; /* * The ID of the Net peering. */ - char *net_peering_id; /* string */ + char *net_peering_id; /* * Information about the source Net. - * -AccountId: string + * --SourceNet.AccountId: string * The account ID of the owner of the source Net. - * -IpRange: string - * The IP range for the source Net, in CIDR notation (for - * example, `10.0.0.0/16`). - * -NetId: string + * --SourceNet.IpRange: string + * The IP range for the source Net, in CIDR notation (for example, + * `10.0.0.0/16`). + * --SourceNet.NetId: string * The ID of the source Net. */ char *source_net_str; int is_set_source_net; - struct source_net source_net; /* ref SourceNet */ + struct source_net source_net; /* * Information about the state of the Net peering. - * -Message: string + * --State.Message: string * Additional information about the state of the Net peering. - * -Name: string - * The state of the Net peering (`pending-acceptance` \\| - * `active` \\| `rejected` \\| `failed` \\| `expired` \\| - * `deleted`). + * --State.Name: string + * The state of the Net peering (`pending-acceptance` \\| `active` + * \\| + * `rejected` \\| `failed` \\| `expired` \\| `deleted`). */ char *state_str; int is_set_state; - struct net_peering_state state; /* ref NetPeeringState */ + struct net_peering_state state; /* * One or more tags associated with the Net peering. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; }; struct net_to_virtual_gateway_link { /* * The ID of the Net to which the virtual gateway is attached. */ - char *net_id; /* string */ + char *net_id; /* * The state of the attachment (`attaching` \\| `attached` \\| * `detaching` \\| `detached`). */ - char *state; /* string */ + char *state; }; struct nic { /* * The account ID of the owner of the NIC. */ - char *account_id; /* string */ + char *account_id; /* * The description of the NIC. */ - char *description; /* string */ + char *description; /* * (Net only) If true, the source/destination check is enabled. If * false, it is disabled. This value must be false for a NAT VM to * perform network address translation (NAT) in a Net. */ int is_set_is_source_dest_checked; - int is_source_dest_checked; /* bool */ + int is_source_dest_checked; /* * Information about the NIC attachment. - * -DeleteOnVmDeletion: bool + * --LinkNic.DeleteOnVmDeletion: bool * If true, the NIC is deleted when the VM is terminated. - * -DeviceNumber: int + * --LinkNic.DeviceNumber: int * The device index for the NIC attachment (between `1` and `7`, - * both included). - * -LinkNicId: string + * both + * included). + * --LinkNic.LinkNicId: string * The ID of the NIC to attach. - * -State: string + * --LinkNic.State: string * The state of the attachment (`attaching` \\| `attached` \\| - * `detaching` \\| `detached`). - * -VmAccountId: string + * `detaching` + * \\| `detached`). + * --LinkNic.VmAccountId: string * The account ID of the owner of the VM. - * -VmId: string + * --LinkNic.VmId: string * The ID of the VM. */ char *link_nic_str; int is_set_link_nic; - struct link_nic link_nic; /* ref LinkNic */ + struct link_nic link_nic; /* * Information about the public IP association. - * -LinkPublicIpId: string + * --LinkPublicIp.LinkPublicIpId: string * (Required in a Net) The ID representing the association of the - * public IP with the VM or the NIC. - * -PublicDnsName: string + * public IP + * with the VM or the NIC. + * --LinkPublicIp.PublicDnsName: string * The name of the public DNS. - * -PublicIp: string + * --LinkPublicIp.PublicIp: string * The public IP associated with the NIC. - * -PublicIpAccountId: string + * --LinkPublicIp.PublicIpAccountId: string * The account ID of the owner of the public IP. - * -PublicIpId: string + * --LinkPublicIp.PublicIpId: string * The allocation ID of the public IP. */ char *link_public_ip_str; int is_set_link_public_ip; - struct link_public_ip link_public_ip; /* ref LinkPublicIp */ + struct link_public_ip link_public_ip; /* * The Media Access Control (MAC) address of the NIC. */ - char *mac_address; /* string */ + char *mac_address; /* * The ID of the Net for the NIC. */ - char *net_id; /* string */ + char *net_id; /* * The ID of the NIC. */ - char *nic_id; /* string */ + char *nic_id; /* * The name of the private DNS. */ - char *private_dns_name; /* string */ + char *private_dns_name; /* * The private IPs of the NIC. * Information about the private IP. - * -IsPrimary: bool + * --PrivateIps.INDEX.IsPrimary: bool * If true, the IP is the primary private IP of the NIC. - * -LinkPublicIp: ref LinkPublicIp + * --PrivateIps.INDEX.LinkPublicIp: ref LinkPublicIp * Information about the public IP association. - * -LinkPublicIpId: string + * --PrivateIps.INDEX.LinkPublicIp.LinkPublicIpId: string * (Required in a Net) The ID representing the association of - * the - * public IP with the VM or the NIC. - * -PublicDnsName: string + * the public IP + * with the VM or the NIC. + * --PrivateIps.INDEX.LinkPublicIp.PublicDnsName: string * The name of the public DNS. - * -PublicIp: string + * --PrivateIps.INDEX.LinkPublicIp.PublicIp: string * The public IP associated with the NIC. - * -PublicIpAccountId: string + * --PrivateIps.INDEX.LinkPublicIp.PublicIpAccountId: string * The account ID of the owner of the public IP. - * -PublicIpId: string + * --PrivateIps.INDEX.LinkPublicIp.PublicIpId: string * The allocation ID of the public IP. - * -PrivateDnsName: string + * --PrivateIps.INDEX.PrivateDnsName: string * The name of the private DNS. - * -PrivateIp: string + * --PrivateIps.INDEX.PrivateIp: string * The private IP of the NIC. */ char *private_ips_str; int nb_private_ips; - struct private_ip *private_ips; /* array ref PrivateIp */ + struct private_ip *private_ips; /* * One or more IDs of security groups for the NIC. * Information about the security group. - * -SecurityGroupId: string + * --SecurityGroups.INDEX.SecurityGroupId: string * The ID of the security group. - * -SecurityGroupName: string + * --SecurityGroups.INDEX.SecurityGroupName: string * The name of the security group. */ char *security_groups_str; int nb_security_groups; - struct security_group_light *security_groups; /* array ref SecurityGroupLight */ + struct security_group_light *security_groups; /* * The state of the NIC (`available` \\| `attaching` \\| `in-use` \\| * `detaching`). */ - char *state; /* string */ + char *state; /* * The ID of the Subnet. */ - char *subnet_id; /* string */ + char *subnet_id; /* * The Subregion in which the NIC is located. */ - char *subregion_name; /* string */ + char *subregion_name; /* * One or more tags associated with the NIC. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; }; struct nic_for_vm_creation { @@ -4667,252 +4721,256 @@ struct nic_for_vm_creation { * an existing NIC, see [UpdateNic](#updatenic). */ int is_set_delete_on_vm_deletion; - int delete_on_vm_deletion; /* bool */ + int delete_on_vm_deletion; /* * The description of the NIC, if you are creating a NIC when creating * the VM. */ - char *description; /* string */ + char *description; /* * The index of the VM device for the NIC attachment (between `0` and * `7`, both included). This parameter is required if you create a NIC * when creating the VM. */ int is_set_device_number; - int device_number; /* int */ + int device_number; /* * The ID of the NIC, if you are attaching an existing NIC when creating * a VM. */ - char *nic_id; /* string */ + char *nic_id; /* * One or more private IPs to assign to the NIC, if you create a NIC * when creating a VM. Only one private IP can be the primary private IP. * Information about the private IP. - * -IsPrimary: bool + * --PrivateIps.INDEX.IsPrimary: bool * If true, the IP is the primary private IP of the NIC. - * -PrivateIp: string + * --PrivateIps.INDEX.PrivateIp: string * The private IP of the NIC. */ char *private_ips_str; int nb_private_ips; - struct private_ip_light *private_ips; /* array ref PrivateIpLight */ + struct private_ip_light *private_ips; /* * The number of secondary private IPs, if you create a NIC when * creating a VM. This parameter cannot be specified if you specified * more than one private IP in the `PrivateIps` parameter. */ int is_set_secondary_private_ip_count; - int secondary_private_ip_count; /* int */ + int secondary_private_ip_count; /* * One or more IDs of security groups for the NIC, if you create a NIC * when creating a VM. */ char *security_group_ids_str; - char **security_group_ids; /* array string */ + char **security_group_ids; /* * The ID of the Subnet for the NIC, if you create a NIC when creating a * VM. This parameter is required if you create a NIC when creating the * VM. */ - char *subnet_id; /* string */ + char *subnet_id; }; struct nic_light { /* * The account ID of the owner of the NIC. */ - char *account_id; /* string */ + char *account_id; /* * The description of the NIC. */ - char *description; /* string */ + char *description; /* * (Net only) If true, the source/destination check is enabled. If * false, it is disabled. This value must be false for a NAT VM to * perform network address translation (NAT) in a Net. */ int is_set_is_source_dest_checked; - int is_source_dest_checked; /* bool */ + int is_source_dest_checked; /* * Information about the network interface card (NIC). - * -DeleteOnVmDeletion: bool + * --LinkNic.DeleteOnVmDeletion: bool * If true, the NIC is deleted when the VM is terminated. - * -DeviceNumber: int + * --LinkNic.DeviceNumber: int * The device index for the NIC attachment (between `1` and `7`, - * both included). - * -LinkNicId: string + * both + * included). + * --LinkNic.LinkNicId: string * The ID of the NIC to attach. - * -State: string + * --LinkNic.State: string * The state of the attachment (`attaching` \\| `attached` \\| - * `detaching` \\| `detached`). + * `detaching` + * \\| `detached`). */ char *link_nic_str; int is_set_link_nic; - struct link_nic_light link_nic; /* ref LinkNicLight */ + struct link_nic_light link_nic; /* * Information about the public IP associated with the NIC. - * -PublicDnsName: string + * --LinkPublicIp.PublicDnsName: string * The name of the public DNS. - * -PublicIp: string + * --LinkPublicIp.PublicIp: string * The public IP associated with the NIC. - * -PublicIpAccountId: string + * --LinkPublicIp.PublicIpAccountId: string * The account ID of the owner of the public IP. */ char *link_public_ip_str; int is_set_link_public_ip; - struct link_public_ip_light_for_vm link_public_ip; /* ref LinkPublicIpLightForVm */ + struct link_public_ip_light_for_vm link_public_ip; /* * The Media Access Control (MAC) address of the NIC. */ - char *mac_address; /* string */ + char *mac_address; /* * The ID of the Net for the NIC. */ - char *net_id; /* string */ + char *net_id; /* * The ID of the NIC. */ - char *nic_id; /* string */ + char *nic_id; /* * The name of the private DNS. */ - char *private_dns_name; /* string */ + char *private_dns_name; /* * The private IP or IPs of the NIC. * Information about the private IP of the NIC. - * -IsPrimary: bool + * --PrivateIps.INDEX.IsPrimary: bool * If true, the IP is the primary private IP of the NIC. - * -LinkPublicIp: ref LinkPublicIpLightForVm + * --PrivateIps.INDEX.LinkPublicIp: ref LinkPublicIpLightForVm * Information about the public IP associated with the NIC. - * -PublicDnsName: string + * --PrivateIps.INDEX.LinkPublicIp.PublicDnsName: string * The name of the public DNS. - * -PublicIp: string + * --PrivateIps.INDEX.LinkPublicIp.PublicIp: string * The public IP associated with the NIC. - * -PublicIpAccountId: string + * --PrivateIps.INDEX.LinkPublicIp.PublicIpAccountId: string * The account ID of the owner of the public IP. - * -PrivateDnsName: string + * --PrivateIps.INDEX.PrivateDnsName: string * The name of the private DNS. - * -PrivateIp: string + * --PrivateIps.INDEX.PrivateIp: string * The private IP. */ char *private_ips_str; int nb_private_ips; - struct private_ip_light_for_vm *private_ips; /* array ref PrivateIpLightForVm */ + struct private_ip_light_for_vm *private_ips; /* * One or more IDs of security groups for the NIC. * Information about the security group. - * -SecurityGroupId: string + * --SecurityGroups.INDEX.SecurityGroupId: string * The ID of the security group. - * -SecurityGroupName: string + * --SecurityGroups.INDEX.SecurityGroupName: string * The name of the security group. */ char *security_groups_str; int nb_security_groups; - struct security_group_light *security_groups; /* array ref SecurityGroupLight */ + struct security_group_light *security_groups; /* * The state of the NIC (`available` \\| `attaching` \\| `in-use` \\| * `detaching`). */ - char *state; /* string */ + char *state; /* * The ID of the Subnet for the NIC. */ - char *subnet_id; /* string */ + char *subnet_id; }; struct osu_api_key { /* * The API key of the OOS account that enables you to access the bucket. */ - char *api_key_id; /* string */ + char *api_key_id; /* * The secret key of the OOS account that enables you to access the * bucket. */ - char *secret_key; /* string */ + char *secret_key; }; struct osu_export_snapshot_export_task { /* * The format of the export disk (`qcow2` \\| `raw`). */ - char *disk_image_format; /* string */ + char *disk_image_format; /* * The name of the OOS bucket the snapshot is exported to. */ - char *osu_bucket; /* string */ + char *osu_bucket; /* * The prefix for the key of the OOS object corresponding to the * snapshot. */ - char *osu_prefix; /* string */ + char *osu_prefix; }; struct osu_export_to_create { /* * The format of the export disk (`qcow2` \\| `raw`). */ - char *disk_image_format; /* string */ + char *disk_image_format; /* * Information about the OOS API key. - * -ApiKeyId: string + * --OsuApiKey.ApiKeyId: string * The API key of the OOS account that enables you to access the - * bucket. - * -SecretKey: string - * The secret key of the OOS account that enables you to access - * the bucket. + * bucket. + * --OsuApiKey.SecretKey: string + * The secret key of the OOS account that enables you to access the + * bucket. */ char *osu_api_key_str; int is_set_osu_api_key; - struct osu_api_key osu_api_key; /* ref OsuApiKey */ + struct osu_api_key osu_api_key; /* * The name of the OOS bucket where you want to export the object. */ - char *osu_bucket; /* string */ + char *osu_bucket; /* * The URL of the manifest file. */ - char *osu_manifest_url; /* string */ + char *osu_manifest_url; /* * The prefix for the key of the OOS object. */ - char *osu_prefix; /* string */ + char *osu_prefix; }; struct permissions_on_resource_creation { /* * Permissions for the resource. - * -AccountIds: array string - * One or more account IDs that the permission is associated - * with. - * -GlobalPermission: bool - * A global permission for all accounts.
\n(Request) Set - * this parameter to true to make the resource public (if the - * parent parameter is `Additions`) or to make the resource - * private (if the parent parameter is `Removals`).
\n(Response) If true, the resource is public. If false, the - * resource is private. + * --Additions.AccountIds: array string + * One or more account IDs that the permission is associated with. + * --Additions.GlobalPermission: bool + * A global permission for all accounts.
\n(Request) Set this + * parameter to true to make the resource public (if the parent + * parameter is + * `Additions`) or to make the resource private (if the parent + * parameter is + * `Removals`).
\n(Response) If true, the resource is public. + * If false, + * the resource is private. */ char *additions_str; int is_set_additions; - struct permissions_on_resource additions; /* ref PermissionsOnResource */ + struct permissions_on_resource additions; /* * Permissions for the resource. - * -AccountIds: array string - * One or more account IDs that the permission is associated - * with. - * -GlobalPermission: bool - * A global permission for all accounts.
\n(Request) Set - * this parameter to true to make the resource public (if the - * parent parameter is `Additions`) or to make the resource - * private (if the parent parameter is `Removals`).
\n(Response) If true, the resource is public. If false, the - * resource is private. + * --Removals.AccountIds: array string + * One or more account IDs that the permission is associated with. + * --Removals.GlobalPermission: bool + * A global permission for all accounts.
\n(Request) Set this + * parameter to true to make the resource public (if the parent + * parameter is + * `Additions`) or to make the resource private (if the parent + * parameter is + * `Removals`).
\n(Response) If true, the resource is public. + * If false, + * the resource is private. */ char *removals_str; int is_set_removals; - struct permissions_on_resource removals; /* ref PermissionsOnResource */ + struct permissions_on_resource removals; }; struct phase1_options { @@ -4920,49 +4978,49 @@ struct phase1_options { * The action to carry out after a Dead Peer Detection (DPD) timeout * occurs. */ - char *dpd_timeout_action; /* string */ + char *dpd_timeout_action; /* * The maximum waiting time for a Dead Peer Detection (DPD) response * before considering the peer as dead, in seconds. */ int is_set_dpd_timeout_seconds; - int dpd_timeout_seconds; /* int */ + int dpd_timeout_seconds; /* * The Internet Key Exchange (IKE) versions allowed for the VPN tunnel. */ char *ike_versions_str; - char **ike_versions; /* array string */ + char **ike_versions; /* * The Diffie-Hellman (DH) group numbers allowed for the VPN tunnel for * phase 1. */ char *phase1_dh_group_numbers_str; - int *phase1_dh_group_numbers; /* array integer */ + int *phase1_dh_group_numbers; /* * The encryption algorithms allowed for the VPN tunnel for phase 1. */ char *phase1_encryption_algorithms_str; - char **phase1_encryption_algorithms; /* array string */ + char **phase1_encryption_algorithms; /* * The integrity algorithms allowed for the VPN tunnel for phase 1. */ char *phase1_integrity_algorithms_str; - char **phase1_integrity_algorithms; /* array string */ + char **phase1_integrity_algorithms; /* * The lifetime for phase 1 of the IKE negotiation process, in seconds. */ int is_set_phase1_lifetime_seconds; - int phase1_lifetime_seconds; /* int */ + int phase1_lifetime_seconds; /* * The number of packets in an IKE replay window. */ int is_set_replay_window_size; - int replay_window_size; /* int */ + int replay_window_size; /* * The action to carry out when establishing tunnels for a VPN * connection. */ - char *startup_action; /* string */ + char *startup_action; }; struct phase2_options { @@ -4971,29 +5029,29 @@ struct phase2_options { * phase 2. */ char *phase2_dh_group_numbers_str; - int *phase2_dh_group_numbers; /* array integer */ + int *phase2_dh_group_numbers; /* * The encryption algorithms allowed for the VPN tunnel for phase 2. */ char *phase2_encryption_algorithms_str; - char **phase2_encryption_algorithms; /* array string */ + char **phase2_encryption_algorithms; /* * The integrity algorithms allowed for the VPN tunnel for phase 2. */ char *phase2_integrity_algorithms_str; - char **phase2_integrity_algorithms; /* array string */ + char **phase2_integrity_algorithms; /* * The lifetime for phase 2 of the Internet Key Exchange (IKE) * negociation process, in seconds. */ int is_set_phase2_lifetime_seconds; - int phase2_lifetime_seconds; /* int */ + int phase2_lifetime_seconds; /* * The pre-shared key to establish the initial authentication between * the client gateway and the virtual gateway. This key can contain any * character except line breaks and double quotes ("). */ - char *pre_shared_key; /* string */ + char *pre_shared_key; }; struct placement { @@ -5001,60 +5059,60 @@ struct placement { * The name of the Subregion. If you specify this parameter, you must * not specify the `Nics` parameter. */ - char *subregion_name; /* string */ + char *subregion_name; /* * The tenancy of the VM (`default`, `dedicated`, or a dedicated group * ID). */ - char *tenancy; /* string */ + char *tenancy; }; struct policy { /* * The date and time (UTC) of creation of the policy. */ - char *creation_date; /* string */ + char *creation_date; /* * A friendly name for the policy (between 0 and 1000 characters). */ - char *description; /* string */ + char *description; /* * Indicates whether the policy can be linked to a group or an EIM user. */ int is_set_is_linkable; - int is_linkable; /* bool */ + int is_linkable; /* * The date and time (UTC) at which the policy was last modified. */ - char *last_modification_date; /* string */ + char *last_modification_date; /* * The OUTSCALE Resource Name (ORN) of the policy. For more information, * see [Resource * Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifie * rs.html). */ - char *orn; /* string */ + char *orn; /* * The path to the policy. */ - char *path; /* string */ + char *path; /* * The ID of the policy default version. */ - char *policy_default_version_id; /* string */ + char *policy_default_version_id; /* * The ID of the policy. */ - char *policy_id; /* string */ + char *policy_id; /* * The name of the policy. */ - char *policy_name; /* string */ + char *policy_name; /* * The number of resources attached to the policy. */ int is_set_resources_count; - int resources_count; /* int */ + int resources_count; }; struct policy_version { @@ -5064,20 +5122,20 @@ struct policy_version { * Information](https://docs.outscale.com/en/userguide/EIM-Reference-Info * rmation.html). */ - char *body; /* string */ + char *body; /* * The date and time (UTC) of creation of the version. */ - char *creation_date; /* string */ + char *creation_date; /* * If true, the version is the default one. */ int is_set_default_version; - int default_version; /* bool */ + int default_version; /* * The ID of the version. */ - char *version_id; /* string */ + char *version_id; }; struct private_ip { @@ -5085,32 +5143,33 @@ struct private_ip { * If true, the IP is the primary private IP of the NIC. */ int is_set_is_primary; - int is_primary; /* bool */ + int is_primary; /* * Information about the public IP association. - * -LinkPublicIpId: string + * --LinkPublicIp.LinkPublicIpId: string * (Required in a Net) The ID representing the association of the - * public IP with the VM or the NIC. - * -PublicDnsName: string + * public IP + * with the VM or the NIC. + * --LinkPublicIp.PublicDnsName: string * The name of the public DNS. - * -PublicIp: string + * --LinkPublicIp.PublicIp: string * The public IP associated with the NIC. - * -PublicIpAccountId: string + * --LinkPublicIp.PublicIpAccountId: string * The account ID of the owner of the public IP. - * -PublicIpId: string + * --LinkPublicIp.PublicIpId: string * The allocation ID of the public IP. */ char *link_public_ip_str; int is_set_link_public_ip; - struct link_public_ip link_public_ip; /* ref LinkPublicIp */ + struct link_public_ip link_public_ip; /* * The name of the private DNS. */ - char *private_dns_name; /* string */ + char *private_dns_name; /* * The private IP of the NIC. */ - char *private_ip; /* string */ + char *private_ip; }; struct private_ip_light { @@ -5118,11 +5177,11 @@ struct private_ip_light { * If true, the IP is the primary private IP of the NIC. */ int is_set_is_primary; - int is_primary; /* bool */ + int is_primary; /* * The private IP of the NIC. */ - char *private_ip; /* string */ + char *private_ip; }; struct private_ip_light_for_vm { @@ -5130,42 +5189,42 @@ struct private_ip_light_for_vm { * If true, the IP is the primary private IP of the NIC. */ int is_set_is_primary; - int is_primary; /* bool */ + int is_primary; /* * Information about the public IP associated with the NIC. - * -PublicDnsName: string + * --LinkPublicIp.PublicDnsName: string * The name of the public DNS. - * -PublicIp: string + * --LinkPublicIp.PublicIp: string * The public IP associated with the NIC. - * -PublicIpAccountId: string + * --LinkPublicIp.PublicIpAccountId: string * The account ID of the owner of the public IP. */ char *link_public_ip_str; int is_set_link_public_ip; - struct link_public_ip_light_for_vm link_public_ip; /* ref LinkPublicIpLightForVm */ + struct link_public_ip_light_for_vm link_public_ip; /* * The name of the private DNS. */ - char *private_dns_name; /* string */ + char *private_dns_name; /* * The private IP. */ - char *private_ip; /* string */ + char *private_ip; }; struct product_type { /* * The description of the product type. */ - char *description; /* string */ + char *description; /* * The ID of the product type. */ - char *product_type_id; /* string */ + char *product_type_id; /* * The vendor of the product type. */ - char *vendor; /* string */ + char *vendor; }; struct public_ip { @@ -5173,87 +5232,87 @@ struct public_ip { * (Required in a Net) The ID representing the association of the public * IP with the VM or the NIC. */ - char *link_public_ip_id; /* string */ + char *link_public_ip_id; /* * The account ID of the owner of the NIC. */ - char *nic_account_id; /* string */ + char *nic_account_id; /* * The ID of the NIC the public IP is associated with (if any). */ - char *nic_id; /* string */ + char *nic_id; /* * The private IP associated with the public IP. */ - char *private_ip; /* string */ + char *private_ip; /* * The public IP. */ - char *public_ip; /* string */ + char *public_ip; /* * The allocation ID of the public IP. */ - char *public_ip_id; /* string */ + char *public_ip_id; /* * One or more tags associated with the public IP. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; /* * The ID of the VM the public IP is associated with (if any). */ - char *vm_id; /* string */ + char *vm_id; }; struct public_ip_light { /* * The public IP associated with the NAT service. */ - char *public_ip; /* string */ + char *public_ip; /* * The allocation ID of the public IP associated with the NAT service. */ - char *public_ip_id; /* string */ + char *public_ip_id; }; struct quota { /* * The account ID of the owner of the quotas. */ - char *account_id; /* string */ + char *account_id; /* * The description of the quota. */ - char *description; /* string */ + char *description; /* * The maximum value of the quota for the account (if there is no limit, * `0`). */ int is_set_max_value; - int max_value; /* int */ + int max_value; /* * The unique name of the quota. */ - char *name; /* string */ + char *name; /* * The group name of the quota. */ - char *quota_collection; /* string */ + char *quota_collection; /* * The description of the quota. */ - char *short_description; /* string */ + char *short_description; /* * The limit value currently used by the account. */ int is_set_used_value; - int used_value; /* int */ + int used_value; }; struct quota_types { @@ -5261,29 +5320,30 @@ struct quota_types { * The resource ID if it is a resource-specific quota, `global` if it is * not. */ - char *quota_type; /* string */ + char *quota_type; /* * One or more quotas associated with the account. * Information about the quota. - * -AccountId: string + * --Quotas.INDEX.AccountId: string * The account ID of the owner of the quotas. - * -Description: string + * --Quotas.INDEX.Description: string * The description of the quota. - * -MaxValue: int + * --Quotas.INDEX.MaxValue: int * The maximum value of the quota for the account (if there is no - * limit, `0`). - * -Name: string + * limit, + * `0`). + * --Quotas.INDEX.Name: string * The unique name of the quota. - * -QuotaCollection: string + * --Quotas.INDEX.QuotaCollection: string * The group name of the quota. - * -ShortDescription: string + * --Quotas.INDEX.ShortDescription: string * The description of the quota. - * -UsedValue: int + * --Quotas.INDEX.UsedValue: int * The limit value currently used by the account. */ char *quotas_str; int nb_quotas; - struct quota *quotas; /* array ref Quota */ + struct quota *quotas; }; struct read_linked_policies_filters { @@ -5291,7 +5351,7 @@ struct read_linked_policies_filters { * The path prefix of the policies. If not specified, it is set to a * slash (`/`). */ - char *path_prefix; /* string */ + char *path_prefix; }; struct read_policies_filters { @@ -5299,93 +5359,93 @@ struct read_policies_filters { * If set to true, lists only the policies attached to a user. */ int is_set_only_linked; - int only_linked; /* bool */ + int only_linked; /* * The path prefix you can use to filter the results. If not specified, * it is set to a slash (`/`). */ - char *path_prefix; /* string */ + char *path_prefix; /* * The scope to filter policies (`OWS` \\| `LOCAL`). */ - char *scope; /* string */ + char *scope; }; struct region { /* * The hostname of the gateway to access the Region. */ - char *endpoint; /* string */ + char *endpoint; /* * The administrative name of the Region. */ - char *region_name; /* string */ + char *region_name; }; struct resource_load_balancer_tag { /* * The key of the tag, with a minimum of 1 character. */ - char *key; /* string */ + char *key; }; struct resource_tag { /* * The key of the tag, with a minimum of 1 character. */ - char *key; /* string */ + char *key; /* * The value of the tag, between 0 and 255 characters. */ - char *value; /* string */ + char *value; }; struct route { /* * The method used to create the route. */ - char *creation_method; /* string */ + char *creation_method; /* * The IP range used for the destination match, in CIDR notation (for * example, `10.0.0.0/24`). */ - char *destination_ip_range; /* string */ + char *destination_ip_range; /* * The ID of the OUTSCALE service. */ - char *destination_service_id; /* string */ + char *destination_service_id; /* * The ID of the Internet service or virtual gateway attached to the Net. */ - char *gateway_id; /* string */ + char *gateway_id; /* * The ID of a NAT service attached to the Net. */ - char *nat_service_id; /* string */ + char *nat_service_id; /* * The ID of the Net access point. */ - char *net_access_point_id; /* string */ + char *net_access_point_id; /* * The ID of the Net peering. */ - char *net_peering_id; /* string */ + char *net_peering_id; /* * The ID of the NIC. */ - char *nic_id; /* string */ + char *nic_id; /* * The state of a route in the route table (always `active`). */ - char *state; /* string */ + char *state; /* * The account ID of the owner of the VM. */ - char *vm_account_id; /* string */ + char *vm_account_id; /* * The ID of a VM specified in a route in the table. */ - char *vm_id; /* string */ + char *vm_id; }; struct route_light { @@ -5393,233 +5453,261 @@ struct route_light { * The IP range used for the destination match, in CIDR notation (for * example, `10.0.0.0/24`). */ - char *destination_ip_range; /* string */ + char *destination_ip_range; /* * The type of route (always `static`). */ - char *route_type; /* string */ + char *route_type; /* * The current state of the static route (`pending` \\| `available` \\| * `deleting` \\| `deleted`). */ - char *state; /* string */ + char *state; }; struct route_propagating_virtual_gateway { /* * The ID of the virtual gateway. */ - char *virtual_gateway_id; /* string */ + char *virtual_gateway_id; }; struct route_table { /* * One or more associations between the route table and Subnets. - * One or more associations between the route table and the - * Subnets. - * -LinkRouteTableId: string - * The ID of the association between the route table and the Net - * or Subnet. - * -Main: bool + * One or more associations between the route table and the Subnets. + * --LinkRouteTables.INDEX.LinkRouteTableId: string + * The ID of the association between the route table and the Net or + * Subnet. + * --LinkRouteTables.INDEX.Main: bool * If true, the route table is the main one. - * -NetId: string - * The ID of the Net, if the route table is not explicitly linked - * to a Subnet. - * -RouteTableId: string + * --LinkRouteTables.INDEX.NetId: string + * The ID of the Net, if the route table is not explicitly linked to + * a + * Subnet. + * --LinkRouteTables.INDEX.RouteTableId: string * The ID of the route table. - * -SubnetId: string - * The ID of the Subnet, if the route table is explicitly linked - * to a Subnet. + * --LinkRouteTables.INDEX.SubnetId: string + * The ID of the Subnet, if the route table is explicitly linked to + * a + * Subnet. */ char *link_route_tables_str; int nb_link_route_tables; - struct link_route_table *link_route_tables; /* array ref LinkRouteTable */ + struct link_route_table *link_route_tables; /* * The ID of the Net for the route table. */ - char *net_id; /* string */ + char *net_id; /* * Information about virtual gateways propagating routes. * Information about the route propagating virtual gateway. - * -VirtualGatewayId: string + * --RoutePropagatingVirtualGateways.INDEX.VirtualGatewayId: string * The ID of the virtual gateway. */ char *route_propagating_virtual_gateways_str; int nb_route_propagating_virtual_gateways; - struct route_propagating_virtual_gateway *route_propagating_virtual_gateways; /* array ref RoutePropagatingVirtualGateway */ + struct route_propagating_virtual_gateway *route_propagating_virtual_gateways; /* * The ID of the route table. */ - char *route_table_id; /* string */ + char *route_table_id; /* * One or more routes in the route table. * Information about the route. - * -CreationMethod: string + * --Routes.INDEX.CreationMethod: string * The method used to create the route. - * -DestinationIpRange: string + * --Routes.INDEX.DestinationIpRange: string * The IP range used for the destination match, in CIDR notation - * (for example, `10.0.0.0/24`). - * -DestinationServiceId: string + * (for + * example, `10.0.0.0/24`). + * --Routes.INDEX.DestinationServiceId: string * The ID of the OUTSCALE service. - * -GatewayId: string - * The ID of the Internet service or virtual gateway attached to - * the Net. - * -NatServiceId: string + * --Routes.INDEX.GatewayId: string + * The ID of the Internet service or virtual gateway attached to the + * Net. + * --Routes.INDEX.NatServiceId: string * The ID of a NAT service attached to the Net. - * -NetAccessPointId: string + * --Routes.INDEX.NetAccessPointId: string * The ID of the Net access point. - * -NetPeeringId: string + * --Routes.INDEX.NetPeeringId: string * The ID of the Net peering. - * -NicId: string + * --Routes.INDEX.NicId: string * The ID of the NIC. - * -State: string + * --Routes.INDEX.State: string * The state of a route in the route table (always `active`). - * -VmAccountId: string + * --Routes.INDEX.VmAccountId: string * The account ID of the owner of the VM. - * -VmId: string + * --Routes.INDEX.VmId: string * The ID of a VM specified in a route in the table. */ char *routes_str; int nb_routes; - struct route *routes; /* array ref Route */ + struct route *routes; /* * One or more tags associated with the route table. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; }; struct security_group { /* * The account ID that has been granted permission. */ - char *account_id; /* string */ + char *account_id; /* * The description of the security group. */ - char *description; /* string */ + char *description; /* * The inbound rules associated with the security group. * Information about the security group rule. - * -FromPortRange: int - * The beginning of the port range for the TCP and UDP protocols, - * or an ICMP type number. - * -IpProtocol: string + * --InboundRules.INDEX.FromPortRange: int + * The beginning of the port range for the TCP and UDP protocols, or + * an + * ICMP type number. + * --InboundRules.INDEX.IpProtocol: string * The IP protocol name (`tcp`, `udp`, `icmp`, or `-1` for all - * protocols). By default, `-1`. In a Net, this can also be an IP - * protocol number. For more information, see the [IANA.org - * website](https://www.iana.org/assignments/protocol-numbers/proto - * col-numbers.xhtml). - * -IpRanges: array string + * protocols). + * By default, `-1`. In a Net, this can also be an IP protocol + * number. For + * more information, see the [IANA.org + * + * website](https://www.iana.org/assignments/protocol-numbers/protocol-nu + * mber + * s.xhtml). + * --InboundRules.INDEX.IpRanges: array string * One or more IP ranges for the security group rules, in CIDR - * notation (for example, `10.0.0.0/16`). - * -SecurityGroupsMembers: array ref SecurityGroupsMember + * notation + * (for example, `10.0.0.0/16`). + * --InboundRules.INDEX.SecurityGroupsMembers: array ref + * SecurityGroupsMember * Information about one or more source or destination security - * groups. + * groups. * Information about a source or destination security group. - * -AccountId: string + * --InboundRules.INDEX.SecurityGroupsMembers.INDEX.AccountId: + * string * The account ID that owns the source or destination security - * group. - * -SecurityGroupId: string + * group. + * + * --InboundRules.INDEX.SecurityGroupsMembers.INDEX.SecurityGroupId: + * string * The ID of a source or destination security group that you - * want - * to link to the security group of the rule. - * -SecurityGroupName: string + * want to link + * to the security group of the rule. + * + * --InboundRules.INDEX.SecurityGroupsMembers.INDEX.SecurityGroupName: + * string * (Public Cloud only) The name of a source or destination - * security group that you want to link to the security group of - * the rule. - * -ServiceIds: array string - * One or more service IDs to allow traffic from a Net to access - * the corresponding OUTSCALE services. For more information, see + * security group + * that you want to link to the security group of the rule. + * --InboundRules.INDEX.ServiceIds: array string + * One or more service IDs to allow traffic from a Net to access the + * corresponding OUTSCALE services. For more information, see * [ReadNetAccessPointServices](#readnetaccesspointservices). - * -ToPortRange: int + * --InboundRules.INDEX.ToPortRange: int * The end of the port range for the TCP and UDP protocols, or an - * ICMP code number. + * ICMP code + * number. */ char *inbound_rules_str; int nb_inbound_rules; - struct security_group_rule *inbound_rules; /* array ref SecurityGroupRule */ + struct security_group_rule *inbound_rules; /* * The ID of the Net for the security group. */ - char *net_id; /* string */ + char *net_id; /* * The outbound rules associated with the security group. * Information about the security group rule. - * -FromPortRange: int - * The beginning of the port range for the TCP and UDP protocols, - * or an ICMP type number. - * -IpProtocol: string + * --OutboundRules.INDEX.FromPortRange: int + * The beginning of the port range for the TCP and UDP protocols, or + * an + * ICMP type number. + * --OutboundRules.INDEX.IpProtocol: string * The IP protocol name (`tcp`, `udp`, `icmp`, or `-1` for all - * protocols). By default, `-1`. In a Net, this can also be an IP - * protocol number. For more information, see the [IANA.org - * website](https://www.iana.org/assignments/protocol-numbers/proto - * col-numbers.xhtml). - * -IpRanges: array string + * protocols). + * By default, `-1`. In a Net, this can also be an IP protocol + * number. For + * more information, see the [IANA.org + * + * website](https://www.iana.org/assignments/protocol-numbers/protocol-nu + * mber + * s.xhtml). + * --OutboundRules.INDEX.IpRanges: array string * One or more IP ranges for the security group rules, in CIDR - * notation (for example, `10.0.0.0/16`). - * -SecurityGroupsMembers: array ref SecurityGroupsMember + * notation + * (for example, `10.0.0.0/16`). + * --OutboundRules.INDEX.SecurityGroupsMembers: array ref + * SecurityGroupsMember * Information about one or more source or destination security - * groups. + * groups. * Information about a source or destination security group. - * -AccountId: string + * --OutboundRules.INDEX.SecurityGroupsMembers.INDEX.AccountId: + * string * The account ID that owns the source or destination security - * group. - * -SecurityGroupId: string + * group. + * + * --OutboundRules.INDEX.SecurityGroupsMembers.INDEX.SecurityGroupId: + * string * The ID of a source or destination security group that you - * want - * to link to the security group of the rule. - * -SecurityGroupName: string + * want to link + * to the security group of the rule. + * + * --OutboundRules.INDEX.SecurityGroupsMembers.INDEX.SecurityGroupName: + * string * (Public Cloud only) The name of a source or destination - * security group that you want to link to the security group of - * the rule. - * -ServiceIds: array string - * One or more service IDs to allow traffic from a Net to access - * the corresponding OUTSCALE services. For more information, see + * security group + * that you want to link to the security group of the rule. + * --OutboundRules.INDEX.ServiceIds: array string + * One or more service IDs to allow traffic from a Net to access the + * corresponding OUTSCALE services. For more information, see * [ReadNetAccessPointServices](#readnetaccesspointservices). - * -ToPortRange: int + * --OutboundRules.INDEX.ToPortRange: int * The end of the port range for the TCP and UDP protocols, or an - * ICMP code number. + * ICMP code + * number. */ char *outbound_rules_str; int nb_outbound_rules; - struct security_group_rule *outbound_rules; /* array ref SecurityGroupRule */ + struct security_group_rule *outbound_rules; /* * The ID of the security group. */ - char *security_group_id; /* string */ + char *security_group_id; /* * The name of the security group. */ - char *security_group_name; /* string */ + char *security_group_name; /* * One or more tags associated with the security group. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; }; struct security_group_light { /* * The ID of the security group. */ - char *security_group_id; /* string */ + char *security_group_id; /* * The name of the security group. */ - char *security_group_name; /* string */ + char *security_group_name; }; struct security_group_rule { @@ -5628,7 +5716,7 @@ struct security_group_rule { * ICMP type number. */ int is_set_from_port_range; - int from_port_range; /* int */ + int from_port_range; /* * The IP protocol name (`tcp`, `udp`, `icmp`, or `-1` for all * protocols). By default, `-1`. In a Net, this can also be an IP @@ -5636,90 +5724,90 @@ struct security_group_rule { * website](https://www.iana.org/assignments/protocol-numbers/protocol-nu * mbers.xhtml). */ - char *ip_protocol; /* string */ + char *ip_protocol; /* * One or more IP ranges for the security group rules, in CIDR notation * (for example, `10.0.0.0/16`). */ char *ip_ranges_str; - char **ip_ranges; /* array string */ + char **ip_ranges; /* * Information about one or more source or destination security groups. * Information about a source or destination security group. - * -AccountId: string - * The account ID that owns the source or destination security - * group. - * -SecurityGroupId: string - * The ID of a source or destination security group that you want - * to link to the security group of the rule. - * -SecurityGroupName: string - * (Public Cloud only) The name of a source or destination - * security group that you want to link to the security group of - * the rule. + * --SecurityGroupsMembers.INDEX.AccountId: string + * The account ID that owns the source or destination security group. + * --SecurityGroupsMembers.INDEX.SecurityGroupId: string + * The ID of a source or destination security group that you want to + * link + * to the security group of the rule. + * --SecurityGroupsMembers.INDEX.SecurityGroupName: string + * (Public Cloud only) The name of a source or destination security + * group + * that you want to link to the security group of the rule. */ char *security_groups_members_str; int nb_security_groups_members; - struct security_groups_member *security_groups_members; /* array ref SecurityGroupsMember */ + struct security_groups_member *security_groups_members; /* * One or more service IDs to allow traffic from a Net to access the * corresponding OUTSCALE services. For more information, see * [ReadNetAccessPointServices](#readnetaccesspointservices). */ char *service_ids_str; - char **service_ids; /* array string */ + char **service_ids; /* * The end of the port range for the TCP and UDP protocols, or an ICMP * code number. */ int is_set_to_port_range; - int to_port_range; /* int */ + int to_port_range; }; struct security_groups_member { /* * The account ID that owns the source or destination security group. */ - char *account_id; /* string */ + char *account_id; /* * The ID of a source or destination security group that you want to * link to the security group of the rule. */ - char *security_group_id; /* string */ + char *security_group_id; /* * (Public Cloud only) The name of a source or destination security * group that you want to link to the security group of the rule. */ - char *security_group_name; /* string */ + char *security_group_name; }; struct server_certificate { /* * The date at which the server certificate expires. */ - char *expiration_date; /* string */ + char *expiration_date; /* * The ID of the server certificate. */ - char *id; /* string */ + char *id; /* * The name of the server certificate. */ - char *name; /* string */ + char *name; /* * The OUTSCALE Resource Name (ORN) of the server certificate. For more * information, see [Resource Identifiers > OUTSCALE Resource Names * (ORNs)](https://docs.outscale.com/en/userguide/Resource-Identifiers.ht * ml#_outscale_resource_names_orns). */ - char *orn; /* string */ + char *orn; /* * The path to the server certificate. */ - char *path; /* string */ + char *path; /* * The date at which the server certificate has been uploaded. */ - char *upload_date; /* string */ + char *upload_date; }; struct service { @@ -5727,134 +5815,135 @@ struct service { * The list of network prefixes used by the service, in CIDR notation. */ char *ip_ranges_str; - char **ip_ranges; /* array string */ + char **ip_ranges; /* * The ID of the service. */ - char *service_id; /* string */ + char *service_id; /* * The name of the service. */ - char *service_name; /* string */ + char *service_name; }; struct snapshot { /* * The account alias of the owner of the snapshot. */ - char *account_alias; /* string */ + char *account_alias; /* * The account ID of the owner of the snapshot. */ - char *account_id; /* string */ + char *account_id; /* * The date and time (UTC) of creation of the snapshot. */ - char *creation_date; /* string */ + char *creation_date; /* * The description of the snapshot. */ - char *description; /* string */ + char *description; /* * Permissions for the resource. - * -AccountIds: array string - * One or more account IDs that the permission is associated - * with. - * -GlobalPermission: bool - * A global permission for all accounts.
\n(Request) Set - * this parameter to true to make the resource public (if the - * parent parameter is `Additions`) or to make the resource - * private (if the parent parameter is `Removals`).
\n(Response) If true, the resource is public. If false, the - * resource is private. + * --PermissionsToCreateVolume.AccountIds: array string + * One or more account IDs that the permission is associated with. + * --PermissionsToCreateVolume.GlobalPermission: bool + * A global permission for all accounts.
\n(Request) Set this + * parameter to true to make the resource public (if the parent + * parameter is + * `Additions`) or to make the resource private (if the parent + * parameter is + * `Removals`).
\n(Response) If true, the resource is public. + * If false, + * the resource is private. */ char *permissions_to_create_volume_str; int is_set_permissions_to_create_volume; - struct permissions_on_resource permissions_to_create_volume; /* ref PermissionsOnResource */ + struct permissions_on_resource permissions_to_create_volume; /* * The progress of the snapshot, as a percentage. */ int is_set_progress; - int progress; /* int */ + int progress; /* * The ID of the snapshot. */ - char *snapshot_id; /* string */ + char *snapshot_id; /* * The state of the snapshot (`in-queue` \\| `pending` \\| `completed` * \\| `error` \\| `deleting`)). */ - char *state; /* string */ + char *state; /* * One or more tags associated with the snapshot. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; /* * The ID of the volume used to create the snapshot. */ - char *volume_id; /* string */ + char *volume_id; /* * The size of the volume used to create the snapshot, in gibibytes * (GiB). */ int is_set_volume_size; - int volume_size; /* int */ + int volume_size; }; struct snapshot_export_task { /* * If the snapshot export task fails, an error message appears. */ - char *comment; /* string */ + char *comment; /* * Information about the snapshot export task. - * -DiskImageFormat: string + * --OsuExport.DiskImageFormat: string * The format of the export disk (`qcow2` \\| `raw`). - * -OsuBucket: string + * --OsuExport.OsuBucket: string * The name of the OOS bucket the snapshot is exported to. - * -OsuPrefix: string + * --OsuExport.OsuPrefix: string * The prefix for the key of the OOS object corresponding to the - * snapshot. + * snapshot. */ char *osu_export_str; int is_set_osu_export; - struct osu_export_snapshot_export_task osu_export; /* ref OsuExportSnapshotExportTask */ + struct osu_export_snapshot_export_task osu_export; /* * The progress of the snapshot export task, as a percentage. */ int is_set_progress; - int progress; /* int */ + int progress; /* * The ID of the snapshot to be exported. */ - char *snapshot_id; /* string */ + char *snapshot_id; /* * The state of the snapshot export task (`pending` \\| `active` \\| * `completed` \\| `failed`). */ - char *state; /* string */ + char *state; /* * One or more tags associated with the snapshot export task. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; /* * The ID of the snapshot export task. */ - char *task_id; /* string */ + char *task_id; }; struct subnet { @@ -5862,136 +5951,136 @@ struct subnet { * The number of available IPs in the Subnets. */ int is_set_available_ips_count; - int available_ips_count; /* int */ + int available_ips_count; /* * The IP range in the Subnet, in CIDR notation (for example, * `10.0.0.0/16`). */ - char *ip_range; /* string */ + char *ip_range; /* * If true, a public IP is assigned to the network interface cards * (NICs) created in the specified Subnet. */ int is_set_map_public_ip_on_launch; - int map_public_ip_on_launch; /* bool */ + int map_public_ip_on_launch; /* * The ID of the Net in which the Subnet is. */ - char *net_id; /* string */ + char *net_id; /* * The state of the Subnet (`pending` \\| `available` \\| `deleted`). */ - char *state; /* string */ + char *state; /* * The ID of the Subnet. */ - char *subnet_id; /* string */ + char *subnet_id; /* * The name of the Subregion in which the Subnet is located. */ - char *subregion_name; /* string */ + char *subregion_name; /* * One or more tags associated with the Subnet. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; }; struct subregion { /* * The location code of the Subregion. */ - char *location_code; /* string */ + char *location_code; /* * The name of the Region containing the Subregion. */ - char *region_name; /* string */ + char *region_name; /* * The state of the Subregion. */ - char *state; /* string */ + char *state; /* * The name of the Subregion. */ - char *subregion_name; /* string */ + char *subregion_name; }; struct tag { /* * The key of the tag, with a minimum of 1 character. */ - char *key; /* string */ + char *key; /* * The ID of the resource. */ - char *resource_id; /* string */ + char *resource_id; /* * The type of the resource. */ - char *resource_type; /* string */ + char *resource_type; /* * The value of the tag, between 0 and 255 characters. */ - char *value; /* string */ + char *value; }; struct user { /* * The date and time (UTC) of creation of the EIM user. */ - char *creation_date; /* string */ + char *creation_date; /* * The date and time (UTC) of the last modification of the EIM user. */ - char *last_modification_date; /* string */ + char *last_modification_date; /* * The path to the EIM user. */ - char *path; /* string */ + char *path; /* * The ID of the EIM user. */ - char *user_id; /* string */ + char *user_id; /* * The name of the EIM user. */ - char *user_name; /* string */ + char *user_name; }; struct user_group { /* * The date and time (UTC) of creation of the user group. */ - char *creation_date; /* string */ + char *creation_date; /* * The date and time (UTC) of the last modification of the user group. */ - char *last_modification_date; /* string */ + char *last_modification_date; /* * The name of the user group. */ - char *name; /* string */ + char *name; /* * The Outscale Resource Name (ORN) of the user group. For more * information, see [Resource * Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifie * rs.html). */ - char *orn; /* string */ + char *orn; /* * The path to the user group. */ - char *path; /* string */ + char *path; /* * The ID of the user group. */ - char *user_group_id; /* string */ + char *user_group_id; }; struct vgw_telemetry { @@ -6000,23 +6089,23 @@ struct vgw_telemetry { * route exchanges. */ int is_set_accepted_route_count; - int accepted_route_count; /* int */ + int accepted_route_count; /* * The date and time (UTC) of the latest state update. */ - char *last_state_change_date; /* string */ + char *last_state_change_date; /* * The IP on the OUTSCALE side of the tunnel. */ - char *outside_ip_address; /* string */ + char *outside_ip_address; /* * The state of the IPSEC tunnel (`UP` \\| `DOWN`). */ - char *state; /* string */ + char *state; /* * A description of the current state of the tunnel. */ - char *state_description; /* string */ + char *state_description; }; struct virtual_gateway { @@ -6024,312 +6113,323 @@ struct virtual_gateway { * The type of VPN connection supported by the virtual gateway (only * `ipsec.1` is supported). */ - char *connection_type; /* string */ + char *connection_type; /* * The Net to which the virtual gateway is attached. * Information about the attachment. - * -NetId: string + * --NetToVirtualGatewayLinks.INDEX.NetId: string * The ID of the Net to which the virtual gateway is attached. - * -State: string + * --NetToVirtualGatewayLinks.INDEX.State: string * The state of the attachment (`attaching` \\| `attached` \\| - * `detaching` \\| `detached`). + * `detaching` + * \\| `detached`). */ char *net_to_virtual_gateway_links_str; int nb_net_to_virtual_gateway_links; - struct net_to_virtual_gateway_link *net_to_virtual_gateway_links; /* array ref NetToVirtualGatewayLink */ + struct net_to_virtual_gateway_link *net_to_virtual_gateway_links; /* * The state of the virtual gateway (`pending` \\| `available` \\| * `deleting` \\| `deleted`). */ - char *state; /* string */ + char *state; /* * One or more tags associated with the virtual gateway. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; /* * The ID of the virtual gateway. */ - char *virtual_gateway_id; /* string */ + char *virtual_gateway_id; }; struct vm { /* * The architecture of the VM (`i386` \\| `x86_64`). */ - char *architecture; /* string */ + char *architecture; /* * The block device mapping of the VM. * Information about the created block device mapping. - * -Bsu: ref BsuCreated + * --BlockDeviceMappings.INDEX.Bsu: ref BsuCreated * Information about the created BSU volume. - * -DeleteOnVmDeletion: bool + * --BlockDeviceMappings.INDEX.Bsu.DeleteOnVmDeletion: bool * If true, the volume is deleted when terminating the VM. If - * false, the volume is not deleted when terminating the VM. - * -LinkDate: string + * false, the + * volume is not deleted when terminating the VM. + * --BlockDeviceMappings.INDEX.Bsu.LinkDate: string * The date and time (UTC) of attachment of the volume to the - * VM, - * in ISO 8601 date-time format. - * -State: string + * VM, in ISO + * 8601 date-time format. + * --BlockDeviceMappings.INDEX.Bsu.State: string * The state of the volume. - * -VolumeId: string + * --BlockDeviceMappings.INDEX.Bsu.VolumeId: string * The ID of the volume. - * -DeviceName: string + * --BlockDeviceMappings.INDEX.DeviceName: string * The name of the device. */ char *block_device_mappings_str; int nb_block_device_mappings; - struct block_device_mapping_created *block_device_mappings; /* array ref BlockDeviceMappingCreated */ + struct block_device_mapping_created *block_device_mappings; /* * This parameter is not available. It is present in our API for the * sake of historical compatibility with AWS. */ int is_set_bsu_optimized; - int bsu_optimized; /* bool */ + int bsu_optimized; /* * The idempotency token provided when launching the VM. */ - char *client_token; /* string */ + char *client_token; /* * The date and time (UTC) of creation of the VM. */ - char *creation_date; /* string */ + char *creation_date; /* * If true, you cannot delete the VM unless you change this parameter * back to false. */ int is_set_deletion_protection; - int deletion_protection; /* bool */ + int deletion_protection; /* * The hypervisor type of the VMs (`ovm` \\| `xen`). */ - char *hypervisor; /* string */ + char *hypervisor; /* * The ID of the OMI used to create the VM. */ - char *image_id; /* string */ + char *image_id; /* * (Net only) If true, the source/destination check is enabled. If * false, it is disabled. This value must be false for a NAT VM to * perform network address translation (NAT) in a Net. */ int is_set_is_source_dest_checked; - int is_source_dest_checked; /* bool */ + int is_source_dest_checked; /* * The name of the keypair used when launching the VM. */ - char *keypair_name; /* string */ + char *keypair_name; /* * The number for the VM when launching a group of several VMs (for * example, `0`, `1`, `2`, and so on). */ int is_set_launch_number; - int launch_number; /* int */ + int launch_number; /* * If true, nested virtualization is enabled. If false, it is disabled. */ int is_set_nested_virtualization; - int nested_virtualization; /* bool */ + int nested_virtualization; /* * The ID of the Net in which the VM is running. */ - char *net_id; /* string */ + char *net_id; /* * (Net only) The network interface cards (NICs) the VMs are attached to. * Information about the network interface card (NIC). - * -AccountId: string + * --Nics.INDEX.AccountId: string * The account ID of the owner of the NIC. - * -Description: string + * --Nics.INDEX.Description: string * The description of the NIC. - * -IsSourceDestChecked: bool - * (Net only) If true, the source/destination check is enabled. - * If false, it is disabled. This value must be false for a NAT VM - * to perform network address translation (NAT) in a Net. - * -LinkNic: ref LinkNicLight + * --Nics.INDEX.IsSourceDestChecked: bool + * (Net only) If true, the source/destination check is enabled. If + * false, + * it is disabled. This value must be false for a NAT VM to perform + * network + * address translation (NAT) in a Net. + * --Nics.INDEX.LinkNic: ref LinkNicLight * Information about the network interface card (NIC). - * -DeleteOnVmDeletion: bool + * --Nics.INDEX.LinkNic.DeleteOnVmDeletion: bool * If true, the NIC is deleted when the VM is terminated. - * -DeviceNumber: int + * --Nics.INDEX.LinkNic.DeviceNumber: int * The device index for the NIC attachment (between `1` and `7`, - * both included). - * -LinkNicId: string + * both + * included). + * --Nics.INDEX.LinkNic.LinkNicId: string * The ID of the NIC to attach. - * -State: string + * --Nics.INDEX.LinkNic.State: string * The state of the attachment (`attaching` \\| `attached` \\| - * `detaching` \\| `detached`). - * -LinkPublicIp: ref LinkPublicIpLightForVm + * `detaching` + * \\| `detached`). + * --Nics.INDEX.LinkPublicIp: ref LinkPublicIpLightForVm * Information about the public IP associated with the NIC. - * -PublicDnsName: string + * --Nics.INDEX.LinkPublicIp.PublicDnsName: string * The name of the public DNS. - * -PublicIp: string + * --Nics.INDEX.LinkPublicIp.PublicIp: string * The public IP associated with the NIC. - * -PublicIpAccountId: string + * --Nics.INDEX.LinkPublicIp.PublicIpAccountId: string * The account ID of the owner of the public IP. - * -MacAddress: string + * --Nics.INDEX.MacAddress: string * The Media Access Control (MAC) address of the NIC. - * -NetId: string + * --Nics.INDEX.NetId: string * The ID of the Net for the NIC. - * -NicId: string + * --Nics.INDEX.NicId: string * The ID of the NIC. - * -PrivateDnsName: string + * --Nics.INDEX.PrivateDnsName: string * The name of the private DNS. - * -PrivateIps: array ref PrivateIpLightForVm + * --Nics.INDEX.PrivateIps: array ref PrivateIpLightForVm * The private IP or IPs of the NIC. * Information about the private IP of the NIC. - * -IsPrimary: bool + * --Nics.INDEX.PrivateIps.INDEX.IsPrimary: bool * If true, the IP is the primary private IP of the NIC. - * -LinkPublicIp: ref LinkPublicIpLightForVm + * --Nics.INDEX.PrivateIps.INDEX.LinkPublicIp: ref + * LinkPublicIpLightForVm * Information about the public IP associated with the NIC. - * -PublicDnsName: string + * --Nics.INDEX.PrivateIps.INDEX.LinkPublicIp.PublicDnsName: + * string * The name of the public DNS. - * -PublicIp: string + * --Nics.INDEX.PrivateIps.INDEX.LinkPublicIp.PublicIp: string * The public IP associated with the NIC. - * -PublicIpAccountId: string + * + * --Nics.INDEX.PrivateIps.INDEX.LinkPublicIp.PublicIpAccountId: string * The account ID of the owner of the public IP. - * -PrivateDnsName: string + * --Nics.INDEX.PrivateIps.INDEX.PrivateDnsName: string * The name of the private DNS. - * -PrivateIp: string + * --Nics.INDEX.PrivateIps.INDEX.PrivateIp: string * The private IP. - * -SecurityGroups: array ref SecurityGroupLight + * --Nics.INDEX.SecurityGroups: array ref SecurityGroupLight * One or more IDs of security groups for the NIC. * Information about the security group. - * -SecurityGroupId: string + * --Nics.INDEX.SecurityGroups.INDEX.SecurityGroupId: string * The ID of the security group. - * -SecurityGroupName: string + * --Nics.INDEX.SecurityGroups.INDEX.SecurityGroupName: string * The name of the security group. - * -State: string + * --Nics.INDEX.State: string * The state of the NIC (`available` \\| `attaching` \\| `in-use` - * \\| `detaching`). - * -SubnetId: string + * \\| + * `detaching`). + * --Nics.INDEX.SubnetId: string * The ID of the Subnet for the NIC. */ char *nics_str; int nb_nics; - struct nic_light *nics; /* array ref NicLight */ + struct nic_light *nics; /* * Indicates the operating system (OS) of the VM. */ - char *os_family; /* string */ + char *os_family; /* * The performance of the VM (`medium` \\| `high` \\| `highest`). */ - char *performance; /* string */ + char *performance; /* * Information about the placement of the VM. - * -SubregionName: string + * --Placement.SubregionName: string * The name of the Subregion. If you specify this parameter, you - * must not specify the `Nics` parameter. - * -Tenancy: string + * must not + * specify the `Nics` parameter. + * --Placement.Tenancy: string * The tenancy of the VM (`default`, `dedicated`, or a dedicated - * group ID). + * group ID). */ char *placement_str; int is_set_placement; - struct placement placement; /* ref Placement */ + struct placement placement; /* * The name of the private DNS. */ - char *private_dns_name; /* string */ + char *private_dns_name; /* * The primary private IP of the VM. */ - char *private_ip; /* string */ + char *private_ip; /* * The product codes associated with the OMI used to create the VM. */ char *product_codes_str; - char **product_codes; /* array string */ + char **product_codes; /* * The name of the public DNS. */ - char *public_dns_name; /* string */ + char *public_dns_name; /* * The public IP of the VM. */ - char *public_ip; /* string */ + char *public_ip; /* * The reservation ID of the VM. */ - char *reservation_id; /* string */ + char *reservation_id; /* * The name of the root device for the VM (for example, `/dev/sda1`). */ - char *root_device_name; /* string */ + char *root_device_name; /* * The type of root device used by the VM (always `bsu`). */ - char *root_device_type; /* string */ + char *root_device_type; /* * One or more security groups associated with the VM. * Information about the security group. - * -SecurityGroupId: string + * --SecurityGroups.INDEX.SecurityGroupId: string * The ID of the security group. - * -SecurityGroupName: string + * --SecurityGroups.INDEX.SecurityGroupName: string * The name of the security group. */ char *security_groups_str; int nb_security_groups; - struct security_group_light *security_groups; /* array ref SecurityGroupLight */ + struct security_group_light *security_groups; /* * The state of the VM (`pending` \\| `running` \\| `stopping` \\| * `stopped` \\| `shutting-down` \\| `terminated` \\| `quarantine`). */ - char *state; /* string */ + char *state; /* * The reason explaining the current state of the VM. */ - char *state_reason; /* string */ + char *state_reason; /* * The ID of the Subnet for the VM. */ - char *subnet_id; /* string */ + char *subnet_id; /* * One or more tags associated with the VM. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; /* * The Base64-encoded MIME user data. */ - char *user_data; /* string */ + char *user_data; /* * The ID of the VM. */ - char *vm_id; /* string */ + char *vm_id; /* * The VM behavior when you stop it. If set to `stop`, the VM stops. If * set to `restart`, the VM stops then automatically restarts. If set to * `terminate`, the VM stops and is deleted. */ - char *vm_initiated_shutdown_behavior; /* string */ + char *vm_initiated_shutdown_behavior; /* * The type of VM. For more information, see [VM * Types](https://docs.outscale.com/en/userguide/VM-Types.html). */ - char *vm_type; /* string */ + char *vm_type; }; struct vm_group { /* * The date and time (UTC) of creation of the VM group. */ - char *creation_date; /* string */ + char *creation_date; /* * The description of the VM group. */ - char *description; /* string */ + char *description; /* * The positioning strategy of the VMs on hypervisors. By default, or if * set to `no-strategy`, TINA determines the most adequate position for @@ -6338,52 +6438,52 @@ struct vm_group { * the VMs are deployed on a different hypervisor, which improves fault * tolerance. */ - char *positioning_strategy; /* string */ + char *positioning_strategy; /* * One or more IDs of security groups for the VM group. */ char *security_group_ids_str; - char **security_group_ids; /* array string */ + char **security_group_ids; /* */ - char *state; /* string */ + char *state; /* * The ID of the Subnet for the VM group. */ - char *subnet_id; /* string */ + char *subnet_id; /* * One or more tags associated with the VM. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; /* * The number of VMs in the VM group. */ int is_set_vm_count; - int vm_count; /* int */ + int vm_count; /* * The ID of the VM group. */ - char *vm_group_id; /* string */ + char *vm_group_id; /* * The name of the VM group. */ - char *vm_group_name; /* string */ + char *vm_group_name; /* * The IDs of the VMs in the VM group. */ char *vm_ids_str; - char **vm_ids; /* array string */ + char **vm_ids; /* * The ID of the VM template used by the VM group. */ - char *vm_template_id; /* string */ + char *vm_template_id; }; struct vm_state { @@ -6391,49 +6491,47 @@ struct vm_state { * The current state of the VM (`InService` \\| `OutOfService` \\| * `Unknown`). */ - char *current_state; /* string */ + char *current_state; /* * The previous state of the VM (`InService` \\| `OutOfService` \\| * `Unknown`). */ - char *previous_state; /* string */ + char *previous_state; /* * The ID of the VM. */ - char *vm_id; /* string */ + char *vm_id; }; struct vm_states { /* * One or more scheduled events associated with the VM. * Information about the maintenance event. - * -Code: string - * The code of the event (`system-reboot` \\| - * `system-maintenance`). - * -Description: string + * --MaintenanceEvents.INDEX.Code: string + * The code of the event (`system-reboot` \\| `system-maintenance`). + * --MaintenanceEvents.INDEX.Description: string * The description of the event. - * -NotAfter: string + * --MaintenanceEvents.INDEX.NotAfter: string * The latest scheduled end date and time (UTC) for the event. - * -NotBefore: string - * The earliest scheduled start date and time (UTC) for the - * event. + * --MaintenanceEvents.INDEX.NotBefore: string + * The earliest scheduled start date and time (UTC) for the event. */ char *maintenance_events_str; int nb_maintenance_events; - struct maintenance_event *maintenance_events; /* array ref MaintenanceEvent */ + struct maintenance_event *maintenance_events; /* * The name of the Subregion of the VM. */ - char *subregion_name; /* string */ + char *subregion_name; /* * The ID of the VM. */ - char *vm_id; /* string */ + char *vm_id; /* * The state of the VM (`pending` \\| `running` \\| `stopping` \\| * `stopped` \\| `shutting-down` \\| `terminated` \\| `quarantine`). */ - char *vm_state; /* string */ + char *vm_state; }; struct vm_template { @@ -6441,55 +6539,55 @@ struct vm_template { * The number of vCores. */ int is_set_cpu_cores; - int cpu_cores; /* int */ + int cpu_cores; /* * The processor generation. */ - char *cpu_generation; /* string */ + char *cpu_generation; /* * The performance of the VMs. */ - char *cpu_performance; /* string */ + char *cpu_performance; /* * The date and time (UTC) of creation of the VM template. */ - char *creation_date; /* string */ + char *creation_date; /* * The description of the VM template. */ - char *description; /* string */ + char *description; /* * The ID of the OMI. */ - char *image_id; /* string */ + char *image_id; /* * The name of the keypair. */ - char *keypair_name; /* string */ + char *keypair_name; /* * The amount of RAM. */ int is_set_ram; - int ram; /* int */ + int ram; /* * One or more tags associated with the VM template. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; /* * The ID of the VM template. */ - char *vm_template_id; /* string */ + char *vm_template_id; /* * The name of the VM template. */ - char *vm_template_name; /* string */ + char *vm_template_name; }; struct vm_type { @@ -6498,222 +6596,227 @@ struct vm_type { * sake of historical compatibility with AWS. */ int is_set_bsu_optimized; - int bsu_optimized; /* bool */ + int bsu_optimized; /* * The type of ephemeral storage disk. */ - char *ephemerals_type; /* string */ + char *ephemerals_type; /* * The number of Ethernet interface available. */ int is_set_eth; - int eth; /* int */ + int eth; /* * The number of GPU available. */ int is_set_gpu; - int gpu; /* int */ + int gpu; /* * The maximum number of private IPs per network interface card (NIC). */ int is_set_max_private_ips; - int max_private_ips; /* int */ + int max_private_ips; /* * The amount of memory, in gibibytes. */ int is_set_memory_size; - double memory_size; /* double */ + double memory_size; /* * The number of vCores. */ int is_set_vcore_count; - int vcore_count; /* int */ + int vcore_count; /* * The name of the VM type. */ - char *vm_type_name; /* string */ + char *vm_type_name; /* * The maximum number of ephemeral storage disks. */ int is_set_volume_count; - int volume_count; /* int */ + int volume_count; /* * The size of one ephemeral storage disk, in gibibytes (GiB). */ int is_set_volume_size; - int volume_size; /* int */ + int volume_size; }; struct volume { /* * The date and time (UTC) of creation of the volume. */ - char *creation_date; /* string */ + char *creation_date; /* * The number of I/O operations per second (IOPS):
\n- For `io1` * volumes, the number of provisioned IOPS
\n- For `gp2` volumes, * the baseline performance of the volume */ int is_set_iops; - int iops; /* int */ + int iops; /* * Information about your volume attachment. * Information about volume attachment. - * -DeleteOnVmDeletion: bool - * If true, the volume is deleted when terminating the VM. If - * false, the volume is not deleted when terminating the VM. - * -DeviceName: string + * --LinkedVolumes.INDEX.DeleteOnVmDeletion: bool + * If true, the volume is deleted when terminating the VM. If false, + * the + * volume is not deleted when terminating the VM. + * --LinkedVolumes.INDEX.DeviceName: string * The name of the device. - * -State: string + * --LinkedVolumes.INDEX.State: string * The state of the attachment of the volume (`attaching` \\| - * `detaching` \\| `attached` \\| `detached`). - * -VmId: string + * `detaching` + * \\| `attached` \\| `detached`). + * --LinkedVolumes.INDEX.VmId: string * The ID of the VM. - * -VolumeId: string + * --LinkedVolumes.INDEX.VolumeId: string * The ID of the volume. */ char *linked_volumes_str; int nb_linked_volumes; - struct linked_volume *linked_volumes; /* array ref LinkedVolume */ + struct linked_volume *linked_volumes; /* * The size of the volume, in gibibytes (GiB). */ int is_set_size; - int size; /* int */ + int size; /* * The snapshot from which the volume was created. */ - char *snapshot_id; /* string */ + char *snapshot_id; /* * The state of the volume (`creating` \\| `available` \\| `in-use` \\| * `updating` \\| `deleting` \\| `error`). */ - char *state; /* string */ + char *state; /* * The Subregion in which the volume was created. */ - char *subregion_name; /* string */ + char *subregion_name; /* * One or more tags associated with the volume. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; /* * The ID of the volume. */ - char *volume_id; /* string */ + char *volume_id; /* * The type of the volume (`standard` \\| `gp2` \\| `io1`). */ - char *volume_type; /* string */ + char *volume_type; }; struct vpn_options { /* * Information about Phase 1 of the Internet Key Exchange (IKE) - * negotiation. When Phase 1 finishes successfully, peers proceed - * to Phase 2 negotiations. - * -DpdTimeoutAction: string - * The action to carry out after a Dead Peer Detection (DPD) - * timeout occurs. - * -DpdTimeoutSeconds: int - * The maximum waiting time for a Dead Peer Detection (DPD) - * response before considering the peer as dead, in seconds. - * -IkeVersions: array string + * negotiation. When Phase 1 finishes successfully, peers proceed to + * Phase 2 + * negotiations. + * --Phase1Options.DpdTimeoutAction: string + * The action to carry out after a Dead Peer Detection (DPD) timeout + * occurs. + * --Phase1Options.DpdTimeoutSeconds: int + * The maximum waiting time for a Dead Peer Detection (DPD) response + * before + * considering the peer as dead, in seconds. + * --Phase1Options.IkeVersions: array string * The Internet Key Exchange (IKE) versions allowed for the VPN - * tunnel. - * -Phase1DhGroupNumbers: array integer - * The Diffie-Hellman (DH) group numbers allowed for the VPN - * tunnel for phase 1. - * -Phase1EncryptionAlgorithms: array string - * The encryption algorithms allowed for the VPN tunnel for phase - * 1. - * -Phase1IntegrityAlgorithms: array string - * The integrity algorithms allowed for the VPN tunnel for phase - * 1. - * -Phase1LifetimeSeconds: int + * tunnel. + * --Phase1Options.Phase1DhGroupNumbers: array integer + * The Diffie-Hellman (DH) group numbers allowed for the VPN tunnel + * for + * phase 1. + * --Phase1Options.Phase1EncryptionAlgorithms: array string + * The encryption algorithms allowed for the VPN tunnel for phase 1. + * --Phase1Options.Phase1IntegrityAlgorithms: array string + * The integrity algorithms allowed for the VPN tunnel for phase 1. + * --Phase1Options.Phase1LifetimeSeconds: int * The lifetime for phase 1 of the IKE negotiation process, in - * seconds. - * -ReplayWindowSize: int + * seconds. + * --Phase1Options.ReplayWindowSize: int * The number of packets in an IKE replay window. - * -StartupAction: string + * --Phase1Options.StartupAction: string * The action to carry out when establishing tunnels for a VPN - * connection. + * connection. */ char *phase1_options_str; int is_set_phase1_options; - struct phase1_options phase1_options; /* ref Phase1Options */ + struct phase1_options phase1_options; /* * Information about Phase 2 of the Internet Key Exchange (IKE) * negotiation. - * -Phase2DhGroupNumbers: array integer - * The Diffie-Hellman (DH) group numbers allowed for the VPN - * tunnel for phase 2. - * -Phase2EncryptionAlgorithms: array string - * The encryption algorithms allowed for the VPN tunnel for phase - * 2. - * -Phase2IntegrityAlgorithms: array string - * The integrity algorithms allowed for the VPN tunnel for phase - * 2. - * -Phase2LifetimeSeconds: int + * --Phase2Options.Phase2DhGroupNumbers: array integer + * The Diffie-Hellman (DH) group numbers allowed for the VPN tunnel + * for + * phase 2. + * --Phase2Options.Phase2EncryptionAlgorithms: array string + * The encryption algorithms allowed for the VPN tunnel for phase 2. + * --Phase2Options.Phase2IntegrityAlgorithms: array string + * The integrity algorithms allowed for the VPN tunnel for phase 2. + * --Phase2Options.Phase2LifetimeSeconds: int * The lifetime for phase 2 of the Internet Key Exchange (IKE) - * negociation process, in seconds. - * -PreSharedKey: string + * negociation + * process, in seconds. + * --Phase2Options.PreSharedKey: string * The pre-shared key to establish the initial authentication - * between the client gateway and the virtual gateway. This key - * can contain any character except line breaks and double quotes - * ("). + * between the + * client gateway and the virtual gateway. This key can contain any + * character except line breaks and double quotes ("). */ char *phase2_options_str; int is_set_phase2_options; - struct phase2_options phase2_options; /* ref Phase2Options */ + struct phase2_options phase2_options; /* * The range of inside IPs for the tunnel. This must be a /30 CIDR block * from the 169.254.254.0/24 range. */ - char *tunnel_inside_ip_range; /* string */ + char *tunnel_inside_ip_range; }; struct vpn_connection { /* * Example configuration for the client gateway. */ - char *client_gateway_configuration; /* string */ + char *client_gateway_configuration; /* * The ID of the client gateway used on the client end of the connection. */ - char *client_gateway_id; /* string */ + char *client_gateway_id; /* * The type of VPN connection (always `ipsec.1`). */ - char *connection_type; /* string */ + char *connection_type; /* * Information about one or more static routes associated with the VPN * connection, if any. * Information about the route. - * -DestinationIpRange: string + * --Routes.INDEX.DestinationIpRange: string * The IP range used for the destination match, in CIDR notation - * (for example, `10.0.0.0/24`). - * -RouteType: string + * (for + * example, `10.0.0.0/24`). + * --Routes.INDEX.RouteType: string * The type of route (always `static`). - * -State: string - * The current state of the static route (`pending` \\| - * `available` \\| `deleting` \\| `deleted`). + * --Routes.INDEX.State: string + * The current state of the static route (`pending` \\| `available` + * \\| + * `deleting` \\| `deleted`). */ char *routes_str; int nb_routes; - struct route_light *routes; /* array ref RouteLight */ + struct route_light *routes; /* * The state of the VPN connection (`pending` \\| `available` \\| * `deleting` \\| `deleted`). */ - char *state; /* string */ + char *state; /* * If false, the VPN connection uses dynamic routing with Border Gateway * Protocol (BGP). If true, routing is controlled using static routes. @@ -6722,107 +6825,117 @@ struct vpn_connection { * [DeleteVpnConnectionRoute](#deletevpnconnectionroute). */ int is_set_static_routes_only; - int static_routes_only; /* bool */ + int static_routes_only; /* * One or more tags associated with the VPN connection. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; /* * Information about the current state of one or more of the VPN tunnels. * Information about the current state of a VPN tunnel. - * -AcceptedRouteCount: int + * --VgwTelemetries.INDEX.AcceptedRouteCount: int * The number of routes accepted through BGP (Border Gateway - * Protocol) route exchanges. - * -LastStateChangeDate: string + * Protocol) + * route exchanges. + * --VgwTelemetries.INDEX.LastStateChangeDate: string * The date and time (UTC) of the latest state update. - * -OutsideIpAddress: string + * --VgwTelemetries.INDEX.OutsideIpAddress: string * The IP on the OUTSCALE side of the tunnel. - * -State: string + * --VgwTelemetries.INDEX.State: string * The state of the IPSEC tunnel (`UP` \\| `DOWN`). - * -StateDescription: string + * --VgwTelemetries.INDEX.StateDescription: string * A description of the current state of the tunnel. */ char *vgw_telemetries_str; int nb_vgw_telemetries; - struct vgw_telemetry *vgw_telemetries; /* array ref VgwTelemetry */ + struct vgw_telemetry *vgw_telemetries; /* * The ID of the virtual gateway used on the OUTSCALE end of the * connection. */ - char *virtual_gateway_id; /* string */ + char *virtual_gateway_id; /* * The ID of the VPN connection. */ - char *vpn_connection_id; /* string */ + char *vpn_connection_id; /* * Information about the VPN options. - * -Phase1Options: ref Phase1Options + * --VpnOptions.Phase1Options: ref Phase1Options * Information about Phase 1 of the Internet Key Exchange (IKE) * negotiation. When Phase 1 finishes successfully, peers proceed - * to Phase 2 negotiations. - * -DpdTimeoutAction: string + * to Phase 2 + * negotiations. + * --VpnOptions.Phase1Options.DpdTimeoutAction: string * The action to carry out after a Dead Peer Detection (DPD) - * timeout occurs. - * -DpdTimeoutSeconds: int + * timeout + * occurs. + * --VpnOptions.Phase1Options.DpdTimeoutSeconds: int * The maximum waiting time for a Dead Peer Detection (DPD) - * response before considering the peer as dead, in seconds. - * -IkeVersions: array string + * response before + * considering the peer as dead, in seconds. + * --VpnOptions.Phase1Options.IkeVersions: array string * The Internet Key Exchange (IKE) versions allowed for the VPN - * tunnel. - * -Phase1DhGroupNumbers: array integer + * tunnel. + * --VpnOptions.Phase1Options.Phase1DhGroupNumbers: array integer * The Diffie-Hellman (DH) group numbers allowed for the VPN - * tunnel for phase 1. - * -Phase1EncryptionAlgorithms: array string + * tunnel for + * phase 1. + * --VpnOptions.Phase1Options.Phase1EncryptionAlgorithms: array + * string * The encryption algorithms allowed for the VPN tunnel for - * phase - * 1. - * -Phase1IntegrityAlgorithms: array string + * phase 1. + * --VpnOptions.Phase1Options.Phase1IntegrityAlgorithms: array + * string * The integrity algorithms allowed for the VPN tunnel for phase - * 1. - * -Phase1LifetimeSeconds: int + * 1. + * --VpnOptions.Phase1Options.Phase1LifetimeSeconds: int * The lifetime for phase 1 of the IKE negotiation process, in - * seconds. - * -ReplayWindowSize: int + * seconds. + * --VpnOptions.Phase1Options.ReplayWindowSize: int * The number of packets in an IKE replay window. - * -StartupAction: string + * --VpnOptions.Phase1Options.StartupAction: string * The action to carry out when establishing tunnels for a VPN - * connection. - * -Phase2Options: ref Phase2Options + * connection. + * --VpnOptions.Phase2Options: ref Phase2Options * Information about Phase 2 of the Internet Key Exchange (IKE) * negotiation. - * -Phase2DhGroupNumbers: array integer + * --VpnOptions.Phase2Options.Phase2DhGroupNumbers: array integer * The Diffie-Hellman (DH) group numbers allowed for the VPN - * tunnel for phase 2. - * -Phase2EncryptionAlgorithms: array string + * tunnel for + * phase 2. + * --VpnOptions.Phase2Options.Phase2EncryptionAlgorithms: array + * string * The encryption algorithms allowed for the VPN tunnel for - * phase - * 2. - * -Phase2IntegrityAlgorithms: array string + * phase 2. + * --VpnOptions.Phase2Options.Phase2IntegrityAlgorithms: array + * string * The integrity algorithms allowed for the VPN tunnel for phase - * 2. - * -Phase2LifetimeSeconds: int + * 2. + * --VpnOptions.Phase2Options.Phase2LifetimeSeconds: int * The lifetime for phase 2 of the Internet Key Exchange (IKE) - * negociation process, in seconds. - * -PreSharedKey: string + * negociation + * process, in seconds. + * --VpnOptions.Phase2Options.PreSharedKey: string * The pre-shared key to establish the initial authentication - * between the client gateway and the virtual gateway. This key - * can contain any character except line breaks and double - * quotes - * ("). - * -TunnelInsideIpRange: string - * The range of inside IPs for the tunnel. This must be a /30 - * CIDR block from the 169.254.254.0/24 range. + * between the + * client gateway and the virtual gateway. This key can contain + * any + * character except line breaks and double quotes ("). + * --VpnOptions.TunnelInsideIpRange: string + * The range of inside IPs for the tunnel. This must be a /30 CIDR + * block + * from the 169.254.254.0/24 range. */ char *vpn_options_str; int is_set_vpn_options; - struct vpn_options vpn_options; /* ref VpnOptions */ + struct vpn_options vpn_options; }; struct with { @@ -6830,88 +6943,88 @@ struct with { * By default or if set to true, the account ID is displayed. */ int is_set_account_id; - int account_id; /* bool */ + int account_id; /* * By default or if set to true, the duration of the call is displayed. */ int is_set_call_duration; - int call_duration; /* bool */ + int call_duration; /* * By default or if set to true, the access key is displayed. */ int is_set_query_access_key; - int query_access_key; /* bool */ + int query_access_key; /* * By default or if set to true, the name of the API is displayed. */ int is_set_query_api_name; - int query_api_name; /* bool */ + int query_api_name; /* * By default or if set to true, the version of the API is displayed. */ int is_set_query_api_version; - int query_api_version; /* bool */ + int query_api_version; /* * By default or if set to true, the name of the call is displayed. */ int is_set_query_call_name; - int query_call_name; /* bool */ + int query_call_name; /* * By default or if set to true, the date of the call is displayed. */ int is_set_query_date; - int query_date; /* bool */ + int query_date; /* * By default or if set to true, the raw header of the HTTP request is * displayed. */ int is_set_query_header_raw; - int query_header_raw; /* bool */ + int query_header_raw; /* * By default or if set to true, the size of the raw header of the HTTP * request is displayed. */ int is_set_query_header_size; - int query_header_size; /* bool */ + int query_header_size; /* * By default or if set to true, the IP is displayed. */ int is_set_query_ip_address; - int query_ip_address; /* bool */ + int query_ip_address; /* * By default or if set to true, the raw payload of the HTTP request is * displayed. */ int is_set_query_payload_raw; - int query_payload_raw; /* bool */ + int query_payload_raw; /* * By default or if set to true, the size of the raw payload of the HTTP * request is displayed. */ int is_set_query_payload_size; - int query_payload_size; /* bool */ + int query_payload_size; /* * By default or if set to true, the user agent of the HTTP request is * displayed. */ int is_set_query_user_agent; - int query_user_agent; /* bool */ + int query_user_agent; /* * By default or if set to true, the request ID is displayed. */ int is_set_request_id; - int request_id; /* bool */ + int request_id; /* * By default or if set to true, the size of the response is displayed. */ int is_set_response_size; - int response_size; /* bool */ + int response_size; /* * By default or if set to true, the HTTP status code of the response is * displayed. */ int is_set_response_status_code; - int response_status_code; /* bool */ + int response_status_code; }; struct osc_update_vpn_connection_arg { @@ -6919,83 +7032,92 @@ struct osc_update_vpn_connection_arg { /* * The ID of the client gateway. */ - char *client_gateway_id; /* string */ + char *client_gateway_id; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the virtual gateway. */ - char *virtual_gateway_id; /* string */ + char *virtual_gateway_id; /* * The ID of the VPN connection you want to modify. */ - char *vpn_connection_id; /* string */ + char *vpn_connection_id; /* * Information about the VPN options. - * -Phase1Options: ref Phase1Options + * --VpnOptions.Phase1Options: ref Phase1Options * Information about Phase 1 of the Internet Key Exchange (IKE) * negotiation. When Phase 1 finishes successfully, peers proceed - * to Phase 2 negotiations. - * -DpdTimeoutAction: string + * to Phase 2 + * negotiations. + * --VpnOptions.Phase1Options.DpdTimeoutAction: string * The action to carry out after a Dead Peer Detection (DPD) - * timeout occurs. - * -DpdTimeoutSeconds: int + * timeout + * occurs. + * --VpnOptions.Phase1Options.DpdTimeoutSeconds: int * The maximum waiting time for a Dead Peer Detection (DPD) - * response before considering the peer as dead, in seconds. - * -IkeVersions: array string + * response before + * considering the peer as dead, in seconds. + * --VpnOptions.Phase1Options.IkeVersions: array string * The Internet Key Exchange (IKE) versions allowed for the VPN - * tunnel. - * -Phase1DhGroupNumbers: array integer + * tunnel. + * --VpnOptions.Phase1Options.Phase1DhGroupNumbers: array integer * The Diffie-Hellman (DH) group numbers allowed for the VPN - * tunnel for phase 1. - * -Phase1EncryptionAlgorithms: array string + * tunnel for + * phase 1. + * --VpnOptions.Phase1Options.Phase1EncryptionAlgorithms: array + * string * The encryption algorithms allowed for the VPN tunnel for - * phase - * 1. - * -Phase1IntegrityAlgorithms: array string + * phase 1. + * --VpnOptions.Phase1Options.Phase1IntegrityAlgorithms: array + * string * The integrity algorithms allowed for the VPN tunnel for phase - * 1. - * -Phase1LifetimeSeconds: int + * 1. + * --VpnOptions.Phase1Options.Phase1LifetimeSeconds: int * The lifetime for phase 1 of the IKE negotiation process, in - * seconds. - * -ReplayWindowSize: int + * seconds. + * --VpnOptions.Phase1Options.ReplayWindowSize: int * The number of packets in an IKE replay window. - * -StartupAction: string + * --VpnOptions.Phase1Options.StartupAction: string * The action to carry out when establishing tunnels for a VPN - * connection. - * -Phase2Options: ref Phase2Options + * connection. + * --VpnOptions.Phase2Options: ref Phase2Options * Information about Phase 2 of the Internet Key Exchange (IKE) * negotiation. - * -Phase2DhGroupNumbers: array integer + * --VpnOptions.Phase2Options.Phase2DhGroupNumbers: array integer * The Diffie-Hellman (DH) group numbers allowed for the VPN - * tunnel for phase 2. - * -Phase2EncryptionAlgorithms: array string + * tunnel for + * phase 2. + * --VpnOptions.Phase2Options.Phase2EncryptionAlgorithms: array + * string * The encryption algorithms allowed for the VPN tunnel for - * phase - * 2. - * -Phase2IntegrityAlgorithms: array string + * phase 2. + * --VpnOptions.Phase2Options.Phase2IntegrityAlgorithms: array + * string * The integrity algorithms allowed for the VPN tunnel for phase - * 2. - * -Phase2LifetimeSeconds: int + * 2. + * --VpnOptions.Phase2Options.Phase2LifetimeSeconds: int * The lifetime for phase 2 of the Internet Key Exchange (IKE) - * negociation process, in seconds. - * -PreSharedKey: string + * negociation + * process, in seconds. + * --VpnOptions.Phase2Options.PreSharedKey: string * The pre-shared key to establish the initial authentication - * between the client gateway and the virtual gateway. This key - * can contain any character except line breaks and double - * quotes - * ("). - * -TunnelInsideIpRange: string - * The range of inside IPs for the tunnel. This must be a /30 - * CIDR block from the 169.254.254.0/24 range. + * between the + * client gateway and the virtual gateway. This key can contain + * any + * character except line breaks and double quotes ("). + * --VpnOptions.TunnelInsideIpRange: string + * The range of inside IPs for the tunnel. This must be a /30 CIDR + * block + * from the 169.254.254.0/24 range. */ char *vpn_options_str; int is_set_vpn_options; - struct vpn_options vpn_options; /* ref VpnOptions */ + struct vpn_options vpn_options; }; struct osc_update_volume_arg { @@ -7005,7 +7127,7 @@ struct osc_update_volume_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * **Cold volume**: the new number of I/O operations per second (IOPS). * This parameter can be specified only if you update an `io1` volume or @@ -7017,7 +7139,7 @@ struct osc_update_volume_arg { * `13000` with a maximum performance ratio of 300 IOPS per gibibyte. */ int is_set_iops; - int iops; /* int */ + int iops; /* * **Cold volume**: the new size of the volume, in gibibytes (GiB). This * value must be equal to or greater than the current size of the @@ -7025,18 +7147,18 @@ struct osc_update_volume_arg { * volume**: you cannot change the size of a hot volume. */ int is_set_size; - int size; /* int */ + int size; /* * The ID of the volume you want to update. */ - char *volume_id; /* string */ + char *volume_id; /* * **Cold volume**: the new type of the volume (`standard` \\| `io1` \\| * `gp2`). This modification is instantaneous. If you update to an `io1` * volume, you must also specify the `Iops` parameter.
\n**Hot * volume**: you cannot change the type of a hot volume. */ - char *volume_type; /* string */ + char *volume_type; }; struct osc_update_vm_template_arg { @@ -7044,32 +7166,32 @@ struct osc_update_vm_template_arg { /* * A new description for the VM template. */ - char *description; /* string */ + char *description; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * New tags for your VM template. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; /* * The ID of the VM template you want to update. */ - char *vm_template_id; /* string */ + char *vm_template_id; /* * A new name for your VM template. */ - char *vm_template_name; /* string */ + char *vm_template_name; }; struct osc_update_vm_group_arg { @@ -7077,36 +7199,36 @@ struct osc_update_vm_group_arg { /* * A new description for the VM group. */ - char *description; /* string */ + char *description; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * New tags for your VM group. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; /* * The ID of the VM group you want to update. */ - char *vm_group_id; /* string */ + char *vm_group_id; /* * A new name for your VM group. */ - char *vm_group_name; /* string */ + char *vm_group_name; /* * A new VM template ID for your VM group. */ - char *vm_template_id; /* string */ + char *vm_template_id; }; struct osc_update_vm_arg { @@ -7114,56 +7236,56 @@ struct osc_update_vm_arg { /* * One or more block device mappings of the VM. * Information about the block device mapping. - * -Bsu: ref BsuToUpdateVm + * --BlockDeviceMappings.INDEX.Bsu: ref BsuToUpdateVm * Information about the BSU volume. - * -DeleteOnVmDeletion: bool + * --BlockDeviceMappings.INDEX.Bsu.DeleteOnVmDeletion: bool * If set to true, the volume is deleted when terminating the - * VM. - * If set to false, the volume is not deleted when terminating - * the - * VM. - * -VolumeId: string + * VM. If set to + * false, the volume is not deleted when terminating the VM. + * --BlockDeviceMappings.INDEX.Bsu.VolumeId: string * The ID of the volume. - * -DeviceName: string - * The device name for the volume. For a root device, you must - * use `/dev/sda1`. For other volumes, you must use `/dev/sdX`, - * `/dev/sdXX`, `/dev/xvdX`, or `/dev/xvdXX` (where the first `X` - * is a letter between `b` and `z`, and the second `X` is a letter - * between `a` and `z`). - * -NoDevice: string - * Removes the device which is included in the block device - * mapping of the OMI. - * -VirtualDeviceName: string + * --BlockDeviceMappings.INDEX.DeviceName: string + * The device name for the volume. For a root device, you must use + * `/dev/sda1`. For other volumes, you must use `/dev/sdX`, + * `/dev/sdXX`, + * `/dev/xvdX`, or `/dev/xvdXX` (where the first `X` is a letter + * between `b` + * and `z`, and the second `X` is a letter between `a` and `z`). + * --BlockDeviceMappings.INDEX.NoDevice: string + * Removes the device which is included in the block device mapping + * of the + * OMI. + * --BlockDeviceMappings.INDEX.VirtualDeviceName: string * The name of the virtual device (`ephemeralN`). */ char *block_device_mappings_str; int nb_block_device_mappings; - struct block_device_mapping_vm_update *block_device_mappings; /* array ref BlockDeviceMappingVmUpdate */ + struct block_device_mapping_vm_update *block_device_mappings; /* * This parameter is not available. It is present in our API for the * sake of historical compatibility with AWS. */ int is_set_bsu_optimized; - int bsu_optimized; /* bool */ + int bsu_optimized; /* * If true, you cannot delete the VM unless you change this parameter * back to false. */ int is_set_deletion_protection; - int deletion_protection; /* bool */ + int deletion_protection; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * (Net only) If true, the source/destination check is enabled. If * false, it is disabled. This value must be false for a NAT VM to * perform network address translation (NAT) in a Net. */ int is_set_is_source_dest_checked; - int is_source_dest_checked; /* bool */ + int is_source_dest_checked; /* * The name of a keypair you want to associate with the VM.
\nWhen * you replace the keypair of a VM with another one, the metadata of the @@ -7175,41 +7297,41 @@ struct osc_update_vm_arg { * VM](https://docs.outscale.com/en/userguide/Modifying-the-Keypair-of-a- * VM.html). */ - char *keypair_name; /* string */ + char *keypair_name; /* * (dedicated tenancy only) If true, nested virtualization is enabled. * If false, it is disabled. */ int is_set_nested_virtualization; - int nested_virtualization; /* bool */ + int nested_virtualization; /* * The performance of the VM (`medium` \\| `high` \\| `highest`). */ - char *performance; /* string */ + char *performance; /* * One or more IDs of security groups for the VM. */ char *security_group_ids_str; - char **security_group_ids; /* array string */ + char **security_group_ids; /* * The Base64-encoded MIME user data, limited to 500 kibibytes (KiB). */ - char *user_data; /* string */ + char *user_data; /* * The ID of the VM. */ - char *vm_id; /* string */ + char *vm_id; /* * The VM behavior when you stop it. If set to `stop`, the VM stops. If * set to `restart`, the VM stops then automatically restarts. If set to * `terminate`, the VM stops and is terminated. */ - char *vm_initiated_shutdown_behavior; /* string */ + char *vm_initiated_shutdown_behavior; /* * The type of VM. For more information, see [VM * Types](https://docs.outscale.com/en/userguide/VM-Types.html). */ - char *vm_type; /* string */ + char *vm_type; }; struct osc_update_user_group_arg { @@ -7219,24 +7341,24 @@ struct osc_update_user_group_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * A new path for the group. If not specified, it is set to a slash * (`/`). */ - char *new_path; /* string */ + char *new_path; /* * A new name for the user group. */ - char *new_user_group_name; /* string */ + char *new_user_group_name; /* * The path to the group. If not specified, it is set to a slash (`/`). */ - char *path; /* string */ + char *path; /* * The name of the group you want to update. */ - char *user_group_name; /* string */ + char *user_group_name; }; struct osc_update_user_arg { @@ -7246,19 +7368,19 @@ struct osc_update_user_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * A new path for the EIM user. */ - char *new_path; /* string */ + char *new_path; /* * A new name for the EIM user. */ - char *new_user_name; /* string */ + char *new_user_name; /* * The name of the EIM user you want to modify. */ - char *user_name; /* string */ + char *user_name; }; struct osc_update_subnet_arg { @@ -7268,17 +7390,17 @@ struct osc_update_subnet_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * If true, a public IP is assigned to the network interface cards * (NICs) created in the specified Subnet. */ int is_set_map_public_ip_on_launch; - int map_public_ip_on_launch; /* bool */ + int map_public_ip_on_launch; /* * The ID of the Subnet. */ - char *subnet_id; /* string */ + char *subnet_id; }; struct osc_update_snapshot_arg { @@ -7288,42 +7410,48 @@ struct osc_update_snapshot_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* - * Information about the permissions for the resource.
\nSpecify either the `Additions` or the `Removals` parameter. - * -Additions: ref PermissionsOnResource + * Information about the permissions for the resource.
\nSpecify + * either the `Additions` or the `Removals` parameter. + * --PermissionsToCreateVolume.Additions: ref PermissionsOnResource * Permissions for the resource. - * -AccountIds: array string + * --PermissionsToCreateVolume.Additions.AccountIds: array string * One or more account IDs that the permission is associated - * with. - * -GlobalPermission: bool + * with. + * --PermissionsToCreateVolume.Additions.GlobalPermission: bool * A global permission for all accounts.
\n(Request) Set - * this parameter to true to make the resource public (if the - * parent parameter is `Additions`) or to make the resource - * private (if the parent parameter is `Removals`).
\n(Response) If true, the resource is public. If false, the - * resource is private. - * -Removals: ref PermissionsOnResource + * this + * parameter to true to make the resource public (if the parent + * parameter is + * `Additions`) or to make the resource private (if the parent + * parameter is + * `Removals`).
\n(Response) If true, the resource is + * public. If false, + * the resource is private. + * --PermissionsToCreateVolume.Removals: ref PermissionsOnResource * Permissions for the resource. - * -AccountIds: array string + * --PermissionsToCreateVolume.Removals.AccountIds: array string * One or more account IDs that the permission is associated - * with. - * -GlobalPermission: bool + * with. + * --PermissionsToCreateVolume.Removals.GlobalPermission: bool * A global permission for all accounts.
\n(Request) Set - * this parameter to true to make the resource public (if the - * parent parameter is `Additions`) or to make the resource - * private (if the parent parameter is `Removals`).
\n(Response) If true, the resource is public. If false, the - * resource is private. + * this + * parameter to true to make the resource public (if the parent + * parameter is + * `Additions`) or to make the resource private (if the parent + * parameter is + * `Removals`).
\n(Response) If true, the resource is + * public. If false, + * the resource is private. */ char *permissions_to_create_volume_str; int is_set_permissions_to_create_volume; - struct permissions_on_resource_creation permissions_to_create_volume; /* ref PermissionsOnResourceCreation */ + struct permissions_on_resource_creation permissions_to_create_volume; /* * The ID of the snapshot. */ - char *snapshot_id; /* string */ + char *snapshot_id; }; struct osc_update_server_certificate_arg { @@ -7333,19 +7461,19 @@ struct osc_update_server_certificate_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The name of the server certificate you want to modify. */ - char *name; /* string */ + char *name; /* * A new name for the server certificate. */ - char *new_name; /* string */ + char *new_name; /* * A new path for the server certificate. */ - char *new_path; /* string */ + char *new_path; }; struct osc_update_route_table_link_arg { @@ -7355,15 +7483,15 @@ struct osc_update_route_table_link_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the current route table link. */ - char *link_route_table_id; /* string */ + char *link_route_table_id; /* * The ID of the new route table to associate with the Subnet. */ - char *route_table_id; /* string */ + char *route_table_id; }; struct osc_update_route_propagation_arg { @@ -7373,21 +7501,21 @@ struct osc_update_route_propagation_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * If true, a virtual gateway can propagate routes to a specified route * table of a Net. If false, the propagation is disabled. */ int is_set_enable; - int enable; /* bool */ + int enable; /* * The ID of the route table. */ - char *route_table_id; /* string */ + char *route_table_id; /* * The ID of the virtual gateway. */ - char *virtual_gateway_id; /* string */ + char *virtual_gateway_id; }; struct osc_update_route_arg { @@ -7396,37 +7524,37 @@ struct osc_update_route_arg { * The IP range used for the destination match, in CIDR notation (for * example, `10.0.0.0/24`). */ - char *destination_ip_range; /* string */ + char *destination_ip_range; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of an Internet service or virtual gateway attached to your Net. */ - char *gateway_id; /* string */ + char *gateway_id; /* * The ID of a NAT service. */ - char *nat_service_id; /* string */ + char *nat_service_id; /* * The ID of a Net peering. */ - char *net_peering_id; /* string */ + char *net_peering_id; /* * The ID of a network interface card (NIC). */ - char *nic_id; /* string */ + char *nic_id; /* * The ID of the route table. */ - char *route_table_id; /* string */ + char *route_table_id; /* * The ID of a NAT VM in your Net. */ - char *vm_id; /* string */ + char *vm_id; }; struct osc_update_nic_arg { @@ -7434,37 +7562,38 @@ struct osc_update_nic_arg { /* * A new description for the NIC. */ - char *description; /* string */ + char *description; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * Information about the NIC attachment. If you are modifying the - * `DeleteOnVmDeletion` attribute, you must specify the ID of the - * NIC attachment. - * -DeleteOnVmDeletion: bool - * If true, the NIC is deleted when the VM is terminated. If - * false, the NIC is detached from the VM. - * -LinkNicId: string + * `DeleteOnVmDeletion` attribute, you must specify the ID of the NIC + * attachment. + * --LinkNic.DeleteOnVmDeletion: bool + * If true, the NIC is deleted when the VM is terminated. If false, + * the NIC + * is detached from the VM. + * --LinkNic.LinkNicId: string * The ID of the NIC attachment. */ char *link_nic_str; int is_set_link_nic; - struct link_nic_to_update link_nic; /* ref LinkNicToUpdate */ + struct link_nic_to_update link_nic; /* * The ID of the NIC you want to modify. */ - char *nic_id; /* string */ + char *nic_id; /* * One or more IDs of security groups for the NIC.
\nYou must * specify at least one group, even if you use the default security * group in the Net. */ char *security_group_ids_str; - char **security_group_ids; /* array string */ + char **security_group_ids; }; struct osc_update_net_access_point_arg { @@ -7474,23 +7603,23 @@ struct osc_update_net_access_point_arg { * access point. */ char *add_route_table_ids_str; - char **add_route_table_ids; /* array string */ + char **add_route_table_ids; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the Net access point. */ - char *net_access_point_id; /* string */ + char *net_access_point_id; /* * One or more IDs of route tables to disassociate from the specified * Net access point. */ char *remove_route_table_ids_str; - char **remove_route_table_ids; /* array string */ + char **remove_route_table_ids; }; struct osc_update_net_arg { @@ -7499,89 +7628,95 @@ struct osc_update_net_arg { * The ID of the DHCP options set (or `default` if you want to associate * the default one). */ - char *dhcp_options_set_id; /* string */ + char *dhcp_options_set_id; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the Net. */ - char *net_id; /* string */ + char *net_id; }; struct osc_update_load_balancer_arg { /* Required: load_balancer_name */ /* * Information about access logs. - * -IsEnabled: bool + * --AccessLog.IsEnabled: bool * If true, access logs are enabled for your load balancer. If - * false, they are not. If you set this to true in your request, - * the `OsuBucketName` parameter is required. - * -OsuBucketName: string + * false, they + * are not. If you set this to true in your request, the + * `OsuBucketName` + * parameter is required. + * --AccessLog.OsuBucketName: string * The name of the OOS bucket for the access logs. - * -OsuBucketPrefix: string - * The path to the folder of the access logs in your OOS bucket - * (by default, the `root` level of your bucket). - * -PublicationInterval: int - * The time interval for the publication of access logs in the - * OOS bucket, in minutes. This value can be either `5` or `60` - * (by default, `60`). + * --AccessLog.OsuBucketPrefix: string + * The path to the folder of the access logs in your OOS bucket (by + * default, the `root` level of your bucket). + * --AccessLog.PublicationInterval: int + * The time interval for the publication of access logs in the OOS + * bucket, + * in minutes. This value can be either `5` or `60` (by default, + * `60`). */ char *access_log_str; int is_set_access_log; - struct access_log access_log; /* ref AccessLog */ + struct access_log access_log; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * Information about the health check configuration. - * -CheckInterval: int - * The number of seconds between two requests (between `5` and - * `600` both included). - * -HealthyThreshold: int - * The number of consecutive successful requests before - * considering the VM as healthy (between `2` and `10` both + * --HealthCheck.CheckInterval: int + * The number of seconds between two requests (between `5` and `600` + * both * included). - * -Path: string + * --HealthCheck.HealthyThreshold: int + * The number of consecutive successful requests before considering + * the VM + * as healthy (between `2` and `10` both included). + * --HealthCheck.Path: string * If you use the HTTP or HTTPS protocols, the request URL path. - * -Port: int + * --HealthCheck.Port: int * The port number (between `1` and `65535`, both included). - * -Protocol: string - * The protocol for the URL of the VM (`HTTP` \\| `HTTPS` \\| - * `TCP` \\| `SSL`). - * -Timeout: int - * The maximum waiting time for a response before considering the - * VM as unhealthy, in seconds (between `2` and `60` both - * included). - * -UnhealthyThreshold: int - * The number of consecutive failed requests before considering - * the VM as unhealthy (between `2` and `10` both included). + * --HealthCheck.Protocol: string + * The protocol for the URL of the VM (`HTTP` \\| `HTTPS` \\| `TCP` + * \\| + * `SSL`). + * --HealthCheck.Timeout: int + * The maximum waiting time for a response before considering the VM + * as + * unhealthy, in seconds (between `2` and `60` both included). + * --HealthCheck.UnhealthyThreshold: int + * The number of consecutive failed requests before considering the + * VM as + * unhealthy (between `2` and `10` both included). */ char *health_check_str; int is_set_health_check; - struct health_check health_check; /* ref HealthCheck */ + struct health_check health_check; /* * The name of the load balancer. */ - char *load_balancer_name; /* string */ + char *load_balancer_name; /* * The port on which the load balancer is listening (between `1` and * `65535`, both included). This parameter is required if you want to * update the server certificate. */ int is_set_load_balancer_port; - int load_balancer_port; /* int */ + int load_balancer_port; /* * The name of the policy you want to enable for the listener. */ char *policy_names_str; - char **policy_names; /* array string */ + char **policy_names; /* * (internet-facing only) The public IP you want to associate with the * load balancer. The former public IP of the load balancer is then @@ -7589,12 +7724,12 @@ struct osc_update_load_balancer_arg { * IP belonged to you, it is disassociated and replaced by a public IP * owned by 3DS OUTSCALE. */ - char *public_ip; /* string */ + char *public_ip; /* * If true, secure cookies are enabled for the load balancer. */ int is_set_secured_cookies; - int secured_cookies; /* bool */ + int secured_cookies; /* * (Net only) One or more IDs of security groups you want to assign to * the load balancer. You need to specify the already assigned security @@ -7603,7 +7738,7 @@ struct osc_update_load_balancer_arg { * Net is assigned to the load balancer. */ char *security_groups_str; - char **security_groups; /* array string */ + char **security_groups; /* * The OUTSCALE Resource Name (ORN) of the server certificate. For more * information, see [Resource Identifiers > OUTSCALE Resource Names @@ -7611,7 +7746,7 @@ struct osc_update_load_balancer_arg { * ml#_outscale_resource_names_orns). If this parameter is specified, * you must also specify the `LoadBalancerPort` parameter. */ - char *server_certificate_id; /* string */ + char *server_certificate_id; }; struct osc_update_listener_rule_arg { @@ -7621,23 +7756,23 @@ struct osc_update_listener_rule_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * A host-name pattern for the rule, with a maximum length of 128 * characters. This host-name pattern supports maximum three wildcards, * and must not contain any special characters except [-.?]. */ - char *host_pattern; /* string */ + char *host_pattern; /* * The name of the listener rule. */ - char *listener_rule_name; /* string */ + char *listener_rule_name; /* * A path pattern for the rule, with a maximum length of 128 characters. * This path pattern supports maximum three wildcards, and must not * contain any special characters except [_-.$/~"'@:+?]. */ - char *path_pattern; /* string */ + char *path_pattern; }; struct osc_update_image_arg { @@ -7645,48 +7780,54 @@ struct osc_update_image_arg { /* * A new description for the image. */ - char *description; /* string */ + char *description; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the OMI you want to modify. */ - char *image_id; /* string */ + char *image_id; /* - * Information about the permissions for the resource.
\nSpecify either the `Additions` or the `Removals` parameter. - * -Additions: ref PermissionsOnResource + * Information about the permissions for the resource.
\nSpecify + * either the `Additions` or the `Removals` parameter. + * --PermissionsToLaunch.Additions: ref PermissionsOnResource * Permissions for the resource. - * -AccountIds: array string + * --PermissionsToLaunch.Additions.AccountIds: array string * One or more account IDs that the permission is associated - * with. - * -GlobalPermission: bool + * with. + * --PermissionsToLaunch.Additions.GlobalPermission: bool * A global permission for all accounts.
\n(Request) Set - * this parameter to true to make the resource public (if the - * parent parameter is `Additions`) or to make the resource - * private (if the parent parameter is `Removals`).
\n(Response) If true, the resource is public. If false, the - * resource is private. - * -Removals: ref PermissionsOnResource + * this + * parameter to true to make the resource public (if the parent + * parameter is + * `Additions`) or to make the resource private (if the parent + * parameter is + * `Removals`).
\n(Response) If true, the resource is + * public. If false, + * the resource is private. + * --PermissionsToLaunch.Removals: ref PermissionsOnResource * Permissions for the resource. - * -AccountIds: array string + * --PermissionsToLaunch.Removals.AccountIds: array string * One or more account IDs that the permission is associated - * with. - * -GlobalPermission: bool + * with. + * --PermissionsToLaunch.Removals.GlobalPermission: bool * A global permission for all accounts.
\n(Request) Set - * this parameter to true to make the resource public (if the - * parent parameter is `Additions`) or to make the resource - * private (if the parent parameter is `Removals`).
\n(Response) If true, the resource is public. If false, the - * resource is private. + * this + * parameter to true to make the resource public (if the parent + * parameter is + * `Additions`) or to make the resource private (if the parent + * parameter is + * `Removals`).
\n(Response) If true, the resource is + * public. If false, + * the resource is private. */ char *permissions_to_launch_str; int is_set_permissions_to_launch; - struct permissions_on_resource_creation permissions_to_launch; /* ref PermissionsOnResourceCreation */ + struct permissions_on_resource_creation permissions_to_launch; }; struct osc_update_flexible_gpu_arg { @@ -7695,17 +7836,17 @@ struct osc_update_flexible_gpu_arg { * If true, the fGPU is deleted when the VM is terminated. */ int is_set_delete_on_vm_deletion; - int delete_on_vm_deletion; /* bool */ + int delete_on_vm_deletion; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the fGPU you want to modify. */ - char *flexible_gpu_id; /* string */ + char *flexible_gpu_id; }; struct osc_update_direct_link_interface_arg { @@ -7713,19 +7854,19 @@ struct osc_update_direct_link_interface_arg { /* * The ID of the DirectLink interface you want to update. */ - char *direct_link_interface_id; /* string */ + char *direct_link_interface_id; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The maximum transmission unit (MTU) of the DirectLink interface, in * bytes (always `1500`). */ int is_set_mtu; - int mtu; /* int */ + int mtu; }; struct osc_update_dedicated_group_arg { @@ -7733,17 +7874,17 @@ struct osc_update_dedicated_group_arg { /* * The ID of the dedicated group you want to update. */ - char *dedicated_group_id; /* string */ + char *dedicated_group_id; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The new name of the dedicated group. */ - char *name; /* string */ + char *name; }; struct osc_update_ca_arg { @@ -7751,17 +7892,17 @@ struct osc_update_ca_arg { /* * The ID of the CA. */ - char *ca_id; /* string */ + char *ca_id; /* * The description of the CA. */ - char *description; /* string */ + char *description; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; }; struct osc_update_api_access_rule_arg { @@ -7769,32 +7910,32 @@ struct osc_update_api_access_rule_arg { /* * The ID of the API access rule you want to update. */ - char *api_access_rule_id; /* string */ + char *api_access_rule_id; /* * One or more IDs of Client Certificate Authorities (CAs). */ char *ca_ids_str; - char **ca_ids; /* array string */ + char **ca_ids; /* * One or more Client Certificate Common Names (CNs). */ char *cns_str; - char **cns; /* array string */ + char **cns; /* * A new description for the API access rule. */ - char *description; /* string */ + char *description; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more IPs or CIDR blocks (for example, `192.0.2.0/16`). */ char *ip_ranges_str; - char **ip_ranges; /* array string */ + char **ip_ranges; }; struct osc_update_api_access_policy_arg { @@ -7804,7 +7945,7 @@ struct osc_update_api_access_policy_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The maximum possible lifetime for your access keys, in seconds * (between `0` and `3153600000`, both included). If set to `O`, your @@ -7814,7 +7955,7 @@ struct osc_update_api_access_policy_arg { * lifetime of each access key of your account. */ int is_set_max_access_key_expiration_seconds; - int max_access_key_expiration_seconds; /* int */ + int max_access_key_expiration_seconds; /* * If true, a trusted session is activated, provided that you specify * the `MaxAccessKeyExpirationSeconds` parameter with a value greater @@ -7826,7 +7967,7 @@ struct osc_update_api_access_policy_arg { * ation.html#_multi_factor_authentication). */ int is_set_require_trusted_env; - int require_trusted_env; /* bool */ + int require_trusted_env; }; struct osc_update_account_arg { @@ -7838,62 +7979,62 @@ struct osc_update_account_arg { * it. To remove all registered additional emails, specify an empty list. */ char *additional_emails_str; - char **additional_emails; /* array string */ + char **additional_emails; /* * The new city of the account owner. */ - char *city; /* string */ + char *city; /* * The new name of the company for the account. */ - char *company_name; /* string */ + char *company_name; /* * The new country of the account owner. */ - char *country; /* string */ + char *country; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The main email address for the account. This address is used for your * credentials and notifications. */ - char *email; /* string */ + char *email; /* * The new first name of the account owner. */ - char *first_name; /* string */ + char *first_name; /* * The new job title of the account owner. */ - char *job_title; /* string */ + char *job_title; /* * The new last name of the account owner. */ - char *last_name; /* string */ + char *last_name; /* * The new mobile phone number of the account owner. */ - char *mobile_number; /* string */ + char *mobile_number; /* * The new landline phone number of the account owner. */ - char *phone_number; /* string */ + char *phone_number; /* * The new state/province of the account owner. */ - char *state_province; /* string */ + char *state_province; /* * The new value added tax (VAT) number for the account. */ - char *vat_number; /* string */ + char *vat_number; /* * The new ZIP code of the city. */ - char *zip_code; /* string */ + char *zip_code; }; struct osc_update_access_key_arg { @@ -7901,33 +8042,33 @@ struct osc_update_access_key_arg { /* * The ID of the access key. */ - char *access_key_id; /* string */ + char *access_key_id; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The date and time, or the date, at which you want the access key to * expire, in ISO 8601 format (for example, `2020-06-14T00:00:00.000Z` * or `2020-06-14`). If not specified, the access key is set to not * expire. */ - char *expiration_date; /* string */ + char *expiration_date; /* * The new state for the access key (`ACTIVE` \\| `INACTIVE`). When set * to `ACTIVE`, the access key is enabled and can be used to send * requests. When set to `INACTIVE`, the access key is disabled. */ - char *state; /* string */ + char *state; /* * The name of the EIM user that the access key you want to modify is * associated with. If you do not specify a user name, this action * modifies the access key of the user who sends the request (which can * be the root account). */ - char *user_name; /* string */ + char *user_name; }; struct osc_unlink_volume_arg { @@ -7937,17 +8078,17 @@ struct osc_unlink_volume_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * Forces the detachment of the volume in case of previous failure. * Important: This action may damage your data or file systems. */ int is_set_force_unlink; - int force_unlink; /* bool */ + int force_unlink; /* * The ID of the volume you want to detach. */ - char *volume_id; /* string */ + char *volume_id; }; struct osc_unlink_virtual_gateway_arg { @@ -7957,15 +8098,15 @@ struct osc_unlink_virtual_gateway_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the Net from which you want to detach the virtual gateway. */ - char *net_id; /* string */ + char *net_id; /* * The ID of the virtual gateway. */ - char *virtual_gateway_id; /* string */ + char *virtual_gateway_id; }; struct osc_unlink_route_table_arg { @@ -7975,11 +8116,11 @@ struct osc_unlink_route_table_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the association between the route table and the Subnet. */ - char *link_route_table_id; /* string */ + char *link_route_table_id; }; struct osc_unlink_public_ip_arg { @@ -7989,18 +8130,18 @@ struct osc_unlink_public_ip_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID representing the association of the public IP with the VM or * the NIC. This parameter is required unless you use the `PublicIp` * parameter. */ - char *link_public_ip_id; /* string */ + char *link_public_ip_id; /* * The public IP. This parameter is required unless you use the * `LinkPublicIpId` parameter. */ - char *public_ip; /* string */ + char *public_ip; }; struct osc_unlink_private_ips_arg { @@ -8010,16 +8151,16 @@ struct osc_unlink_private_ips_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the NIC. */ - char *nic_id; /* string */ + char *nic_id; /* * One or more secondary private IPs you want to unassign from the NIC. */ char *private_ips_str; - char **private_ips; /* array string */ + char **private_ips; }; struct osc_unlink_policy_arg { @@ -8029,18 +8170,18 @@ struct osc_unlink_policy_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The OUTSCALE Resource Name (ORN) of the policy. For more information, * see [Resource * Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifie * rs.html). */ - char *policy_orn; /* string */ + char *policy_orn; /* * The name of the user you want to detach the policy from. */ - char *user_name; /* string */ + char *user_name; }; struct osc_unlink_nic_arg { @@ -8050,11 +8191,11 @@ struct osc_unlink_nic_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the attachment operation. */ - char *link_nic_id; /* string */ + char *link_nic_id; }; struct osc_unlink_managed_policy_from_user_group_arg { @@ -8064,18 +8205,18 @@ struct osc_unlink_managed_policy_from_user_group_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The OUTSCALE Resource Name (ORN) of the policy. For more information, * see [Resource * Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifie * rs.html). */ - char *policy_orn; /* string */ + char *policy_orn; /* * The name of the group you want to unlink the policy from. */ - char *user_group_name; /* string */ + char *user_group_name; }; struct osc_unlink_load_balancer_backend_machines_arg { @@ -8084,22 +8225,22 @@ struct osc_unlink_load_balancer_backend_machines_arg { * One or more public IPs of backend VMs. */ char *backend_ips_str; - char **backend_ips; /* array string */ + char **backend_ips; /* * One or more IDs of backend VMs. */ char *backend_vm_ids_str; - char **backend_vm_ids; /* array string */ + char **backend_vm_ids; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The name of the load balancer. */ - char *load_balancer_name; /* string */ + char *load_balancer_name; }; struct osc_unlink_internet_service_arg { @@ -8109,15 +8250,15 @@ struct osc_unlink_internet_service_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the Internet service you want to detach. */ - char *internet_service_id; /* string */ + char *internet_service_id; /* * The ID of the Net from which you want to detach the Internet service. */ - char *net_id; /* string */ + char *net_id; }; struct osc_unlink_flexible_gpu_arg { @@ -8127,11 +8268,11 @@ struct osc_unlink_flexible_gpu_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the fGPU you want to detach from your VM. */ - char *flexible_gpu_id; /* string */ + char *flexible_gpu_id; }; struct osc_stop_vms_arg { @@ -8141,17 +8282,17 @@ struct osc_stop_vms_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * Forces the VM to stop. */ int is_set_force_stop; - int force_stop; /* bool */ + int force_stop; /* * One or more IDs of VMs. */ char *vm_ids_str; - char **vm_ids; /* array string */ + char **vm_ids; }; struct osc_start_vms_arg { @@ -8161,12 +8302,12 @@ struct osc_start_vms_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more IDs of VMs. */ char *vm_ids_str; - char **vm_ids; /* array string */ + char **vm_ids; }; struct osc_set_default_policy_version_arg { @@ -8177,11 +8318,11 @@ struct osc_set_default_policy_version_arg { * Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifie * rs.html). */ - char *policy_orn; /* string */ + char *policy_orn; /* * The ID of the version. */ - char *version_id; /* string */ + char *version_id; }; struct osc_scale_up_vm_group_arg { @@ -8191,16 +8332,16 @@ struct osc_scale_up_vm_group_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The number of VMs you want to add to the VM group. */ int is_set_vm_addition; - int vm_addition; /* int */ + int vm_addition; /* * The ID of the VM group you want to scale up. */ - char *vm_group_id; /* string */ + char *vm_group_id; }; struct osc_scale_down_vm_group_arg { @@ -8210,16 +8351,16 @@ struct osc_scale_down_vm_group_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the VM group you want to scale down. */ - char *vm_group_id; /* string */ + char *vm_group_id; /* * The number of VMs you want to delete from the VM group. */ int is_set_vm_subtraction; - int vm_subtraction; /* int */ + int vm_subtraction; }; struct osc_remove_user_from_user_group_arg { @@ -8229,23 +8370,23 @@ struct osc_remove_user_from_user_group_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The name of the group you want to remove the user from. */ - char *user_group_name; /* string */ + char *user_group_name; /* * The path to the group. If not specified, it is set to a slash (`/`). */ - char *user_group_path; /* string */ + char *user_group_path; /* * The name of the user you want to remove from the group. */ - char *user_name; /* string */ + char *user_name; /* * The path to the user (by default, `/`). */ - char *user_path; /* string */ + char *user_path; }; struct osc_reject_net_peering_arg { @@ -8255,11 +8396,11 @@ struct osc_reject_net_peering_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the Net peering you want to reject. */ - char *net_peering_id; /* string */ + char *net_peering_id; }; struct osc_register_vms_in_load_balancer_arg { @@ -8269,17 +8410,17 @@ struct osc_register_vms_in_load_balancer_arg { * times has no effect as each backend VM has equal weight. */ char *backend_vm_ids_str; - char **backend_vm_ids; /* array string */ + char **backend_vm_ids; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The name of the load balancer. */ - char *load_balancer_name; /* string */ + char *load_balancer_name; }; struct osc_reboot_vms_arg { @@ -8289,12 +8430,12 @@ struct osc_reboot_vms_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more IDs of the VMs you want to reboot. */ char *vm_ids_str; - char **vm_ids; /* array string */ + char **vm_ids; }; struct osc_read_vpn_connections_arg { @@ -8304,57 +8445,59 @@ struct osc_read_vpn_connections_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -BgpAsns: array integer + * --Filters.BgpAsns: array integer * The Border Gateway Protocol (BGP) Autonomous System Numbers - * (ASNs) of the connections. - * -ClientGatewayIds: array string + * (ASNs) of + * the connections. + * --Filters.ClientGatewayIds: array string * The IDs of the client gateways. - * -ConnectionTypes: array string - * The types of the VPN connections (only `ipsec.1` is - * supported). - * -RouteDestinationIpRanges: array string + * --Filters.ConnectionTypes: array string + * The types of the VPN connections (only `ipsec.1` is supported). + * --Filters.RouteDestinationIpRanges: array string * The destination IP ranges. - * -States: array string - * The states of the VPN connections (`pending` \\| `available` - * \\| `deleting` \\| `deleted`). - * -StaticRoutesOnly: bool + * --Filters.States: array string + * The states of the VPN connections (`pending` \\| `available` \\| + * `deleting` \\| `deleted`). + * --Filters.StaticRoutesOnly: bool * If false, the VPN connection uses dynamic routing with Border - * Gateway Protocol (BGP). If true, routing is controlled using - * static routes. For more information about how to create and - * delete static routes, see + * Gateway + * Protocol (BGP). If true, routing is controlled using static + * routes. For + * more information about how to create and delete static routes, + * see * [CreateVpnConnectionRoute](#createvpnconnectionroute) and * [DeleteVpnConnectionRoute](#deletevpnconnectionroute). - * -TagKeys: array string + * --Filters.TagKeys: array string * The keys of the tags associated with the VPN connections. - * -TagValues: array string + * --Filters.TagValues: array string * The values of the tags associated with the VPN connections. - * -Tags: array string + * --Filters.Tags: array string * The key/value combination of the tags associated with the VPN * connections, in the following format: - * "Filters":{"Tags":["TAGKEY=TAGVALUE&quo - * t;]}. - * -VirtualGatewayIds: array string + * + * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. + * --Filters.VirtualGatewayIds: array string * The IDs of the virtual gateways. - * -VpnConnectionIds: array string + * --Filters.VpnConnectionIds: array string * The IDs of the VPN connections. */ char *filters_str; int is_set_filters; - struct filters_vpn_connection filters; /* ref FiltersVpnConnection */ + struct filters_vpn_connection filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_volumes_arg { @@ -8364,62 +8507,66 @@ struct osc_read_volumes_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -CreationDates: array string + * --Filters.CreationDates: array string * The dates and times of creation of the volumes, in ISO 8601 - * date-time format (for example, `2020-06-30T00:00:00.000Z`). - * -LinkVolumeDeleteOnVmDeletion: bool - * Whether the volumes are deleted or not when terminating the - * VMs. - * -LinkVolumeDeviceNames: array string + * date-time + * format (for example, `2020-06-30T00:00:00.000Z`). + * --Filters.LinkVolumeDeleteOnVmDeletion: bool + * Whether the volumes are deleted or not when terminating the VMs. + * --Filters.LinkVolumeDeviceNames: array string * The VM device names. - * -LinkVolumeLinkDates: array string + * --Filters.LinkVolumeLinkDates: array string * The dates and times of creation of the volumes, in ISO 8601 - * date-time format (for example, `2020-06-30T00:00:00.000Z`). - * -LinkVolumeLinkStates: array string - * The attachment states of the volumes (`attaching` \\| - * `detaching` \\| `attached` \\| `detached`). - * -LinkVolumeVmIds: array string + * date-time + * format (for example, `2020-06-30T00:00:00.000Z`). + * --Filters.LinkVolumeLinkStates: array string + * The attachment states of the volumes (`attaching` \\| `detaching` + * \\| + * `attached` \\| `detached`). + * --Filters.LinkVolumeVmIds: array string * One or more IDs of VMs. - * -SnapshotIds: array string + * --Filters.SnapshotIds: array string * The snapshots from which the volumes were created. - * -SubregionNames: array string + * --Filters.SubregionNames: array string * The names of the Subregions in which the volumes were created. - * -TagKeys: array string + * --Filters.TagKeys: array string * The keys of the tags associated with the volumes. - * -TagValues: array string + * --Filters.TagValues: array string * The values of the tags associated with the volumes. - * -Tags: array string + * --Filters.Tags: array string * The key/value combination of the tags associated with the - * volumes, in the following format: - * "Filters":{"Tags":["TAGKEY=TAGVALUE&quo - * t;]}. - * -VolumeIds: array string + * volumes, in + * the following format: + * + * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. + * --Filters.VolumeIds: array string * The IDs of the volumes. - * -VolumeSizes: array integer + * --Filters.VolumeSizes: array integer * The sizes of the volumes, in gibibytes (GiB). - * -VolumeStates: array string + * --Filters.VolumeStates: array string * The states of the volumes (`creating` \\| `available` \\| - * `in-use` \\| `updating` \\| `deleting` \\| `error`). - * -VolumeTypes: array string + * `in-use` \\| + * `updating` \\| `deleting` \\| `error`). + * --Filters.VolumeTypes: array string * The types of the volumes (`standard` \\| `gp2` \\| `io1`). */ char *filters_str; int is_set_filters; - struct filters_volume filters; /* ref FiltersVolume */ + struct filters_volume filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_vms_state_arg { @@ -8429,47 +8576,46 @@ struct osc_read_vms_state_arg { * false, only includes the status of running VMs. */ int is_set_all_vms; - int all_vms; /* bool */ + int all_vms; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -MaintenanceEventCodes: array string + * --Filters.MaintenanceEventCodes: array string * The code for the scheduled event (`system-reboot` \\| * `system-maintenance`). - * -MaintenanceEventDescriptions: array string + * --Filters.MaintenanceEventDescriptions: array string * The description of the scheduled event. - * -MaintenanceEventsNotAfter: array string + * --Filters.MaintenanceEventsNotAfter: array string * The latest date and time (UTC) the event can end. - * -MaintenanceEventsNotBefore: array string + * --Filters.MaintenanceEventsNotBefore: array string * The earliest date and time (UTC) the event can start. - * -SubregionNames: array string + * --Filters.SubregionNames: array string * The names of the Subregions of the VMs. - * -VmIds: array string + * --Filters.VmIds: array string * One or more IDs of VMs. - * -VmStates: array string - * The states of the VMs (`pending` \\| `running` \\| `stopping` - * \\| `stopped` \\| `shutting-down` \\| `terminated` \\| - * `quarantine`). + * --Filters.VmStates: array string + * The states of the VMs (`pending` \\| `running` \\| `stopping` \\| + * `stopped` \\| `shutting-down` \\| `terminated` \\| `quarantine`). */ char *filters_str; int is_set_filters; - struct filters_vms_state filters; /* ref FiltersVmsState */ + struct filters_vms_state filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_vms_health_arg { @@ -8478,17 +8624,17 @@ struct osc_read_vms_health_arg { * One or more IDs of backend VMs. */ char *backend_vm_ids_str; - char **backend_vm_ids; /* array string */ + char **backend_vm_ids; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The name of the load balancer. */ - char *load_balancer_name; /* string */ + char *load_balancer_name; }; struct osc_read_vms_arg { @@ -8498,185 +8644,196 @@ struct osc_read_vms_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -Architectures: array string + * --Filters.Architectures: array string * The architectures of the VMs (`i386` \\| `x86_64`). - * -BlockDeviceMappingDeleteOnVmDeletion: bool + * --Filters.BlockDeviceMappingDeleteOnVmDeletion: bool * Whether the BSU volumes are deleted when terminating the VMs. - * -BlockDeviceMappingDeviceNames: array string - * The device names for the BSU volumes (in the format - * `/dev/sdX`, `/dev/sdXX`, `/dev/xvdX`, or `/dev/xvdXX`). - * -BlockDeviceMappingLinkDates: array string + * --Filters.BlockDeviceMappingDeviceNames: array string + * The device names for the BSU volumes (in the format `/dev/sdX`, + * `/dev/sdXX`, `/dev/xvdX`, or `/dev/xvdXX`). + * --Filters.BlockDeviceMappingLinkDates: array string * The link dates for the BSU volumes mapped to the VMs (for - * example, `2016-01-23T18:45:30.000Z`). - * -BlockDeviceMappingStates: array string + * example, + * `2016-01-23T18:45:30.000Z`). + * --Filters.BlockDeviceMappingStates: array string * The states for the BSU volumes (`attaching` \\| `attached` \\| * `detaching` \\| `detached`). - * -BlockDeviceMappingVolumeIds: array string + * --Filters.BlockDeviceMappingVolumeIds: array string * The volume IDs of the BSU volumes. - * -ClientTokens: array string + * --Filters.ClientTokens: array string * The idempotency tokens provided when launching the VMs. - * -CreationDates: array string + * --Filters.CreationDates: array string * The dates when the VMs were launched. - * -ImageIds: array string + * --Filters.ImageIds: array string * The IDs of the OMIs used to launch the VMs. - * -IsSourceDestChecked: bool + * --Filters.IsSourceDestChecked: bool * Whether the source/destination checking is enabled (true) or - * disabled (false). - * -KeypairNames: array string + * disabled + * (false). + * --Filters.KeypairNames: array string * The names of the keypairs used when launching the VMs. - * -LaunchNumbers: array integer + * --Filters.LaunchNumbers: array integer * The numbers for the VMs when launching a group of several VMs - * (for example, `0`, `1`, `2`, and so on). - * -Lifecycles: array string + * (for + * example, `0`, `1`, `2`, and so on). + * --Filters.Lifecycles: array string * Whether the VMs are Spot Instances (spot). - * -NetIds: array string + * --Filters.NetIds: array string * The IDs of the Nets in which the VMs are running. - * -NicAccountIds: array string + * --Filters.NicAccountIds: array string * The IDs of the NICs. - * -NicDescriptions: array string + * --Filters.NicDescriptions: array string * The descriptions of the NICs. - * -NicIsSourceDestChecked: bool + * --Filters.NicIsSourceDestChecked: bool * Whether the source/destination checking is enabled (true) or - * disabled (false). - * -NicLinkNicDeleteOnVmDeletion: bool + * disabled + * (false). + * --Filters.NicLinkNicDeleteOnVmDeletion: bool * Whether the NICs are deleted when the VMs they are attached to - * are deleted. - * -NicLinkNicDeviceNumbers: array integer + * are + * deleted. + * --Filters.NicLinkNicDeviceNumbers: array integer * The device numbers the NICs are attached to. - * -NicLinkNicLinkNicDates: array string - * The dates and times (UTC) when the NICs were attached to the - * VMs. - * -NicLinkNicLinkNicIds: array string + * --Filters.NicLinkNicLinkNicDates: array string + * The dates and times (UTC) when the NICs were attached to the VMs. + * --Filters.NicLinkNicLinkNicIds: array string * The IDs of the NIC attachments. - * -NicLinkNicStates: array string + * --Filters.NicLinkNicStates: array string * The states of the attachments. - * -NicLinkNicVmAccountIds: array string - * The account IDs of the owners of the VMs the NICs are attached - * to. - * -NicLinkNicVmIds: array string + * --Filters.NicLinkNicVmAccountIds: array string + * The account IDs of the owners of the VMs the NICs are attached to. + * --Filters.NicLinkNicVmIds: array string * The IDs of the VMs the NICs are attached to. - * -NicLinkPublicIpAccountIds: array string - * The account IDs of the owners of the public IPs associated - * with the NICs. - * -NicLinkPublicIpLinkPublicIpIds: array string - * The association IDs returned when the public IPs were - * associated with the NICs. - * -NicLinkPublicIpPublicIpIds: array string - * The allocation IDs returned when the public IPs were allocated - * to their accounts. - * -NicLinkPublicIpPublicIps: array string + * --Filters.NicLinkPublicIpAccountIds: array string + * The account IDs of the owners of the public IPs associated with + * the + * NICs. + * --Filters.NicLinkPublicIpLinkPublicIpIds: array string + * The association IDs returned when the public IPs were associated + * with + * the NICs. + * --Filters.NicLinkPublicIpPublicIpIds: array string + * The allocation IDs returned when the public IPs were allocated to + * their + * accounts. + * --Filters.NicLinkPublicIpPublicIps: array string * The public IPs associated with the NICs. - * -NicMacAddresses: array string + * --Filters.NicMacAddresses: array string * The Media Access Control (MAC) addresses of the NICs. - * -NicNetIds: array string + * --Filters.NicNetIds: array string * The IDs of the Nets where the NICs are located. - * -NicNicIds: array string + * --Filters.NicNicIds: array string * The IDs of the NICs. - * -NicPrivateIpsLinkPublicIpAccountIds: array string + * --Filters.NicPrivateIpsLinkPublicIpAccountIds: array string * The account IDs of the owner of the public IPs associated with - * the private IPs. - * -NicPrivateIpsLinkPublicIpIds: array string + * the + * private IPs. + * --Filters.NicPrivateIpsLinkPublicIpIds: array string * The public IPs associated with the private IPs. - * -NicPrivateIpsPrimaryIp: bool - * Whether the private IPs are the primary IPs associated with - * the NICs. - * -NicPrivateIpsPrivateIps: array string + * --Filters.NicPrivateIpsPrimaryIp: bool + * Whether the private IPs are the primary IPs associated with the + * NICs. + * --Filters.NicPrivateIpsPrivateIps: array string * The private IPs of the NICs. - * -NicSecurityGroupIds: array string + * --Filters.NicSecurityGroupIds: array string * The IDs of the security groups associated with the NICs. - * -NicSecurityGroupNames: array string + * --Filters.NicSecurityGroupNames: array string * The names of the security groups associated with the NICs. - * -NicStates: array string + * --Filters.NicStates: array string * The states of the NICs (`available` \\| `in-use`). - * -NicSubnetIds: array string + * --Filters.NicSubnetIds: array string * The IDs of the Subnets for the NICs. - * -NicSubregionNames: array string + * --Filters.NicSubregionNames: array string * The Subregions where the NICs are located. - * -Platforms: array string + * --Filters.Platforms: array string * The platforms. Use windows if you have Windows VMs. Otherwise, - * leave this filter blank. - * -PrivateIps: array string + * leave + * this filter blank. + * --Filters.PrivateIps: array string * The private IPs of the VMs. - * -ProductCodes: array string - * The product codes associated with the OMI used to create the - * VMs. - * -PublicIps: array string + * --Filters.ProductCodes: array string + * The product codes associated with the OMI used to create the VMs. + * --Filters.PublicIps: array string * The public IPs of the VMs. - * -ReservationIds: array string + * --Filters.ReservationIds: array string * The IDs of the reservation of the VMs, created every time you - * launch VMs. These reservation IDs can be associated with - * several VMs when you lauch a group of VMs using the same launch - * request. - * -RootDeviceNames: array string + * launch + * VMs. These reservation IDs can be associated with several VMs + * when you + * lauch a group of VMs using the same launch request. + * --Filters.RootDeviceNames: array string * The names of the root devices for the VMs (for example, - * `/dev/sda1`) - * -RootDeviceTypes: array string + * `/dev/sda1`) + * --Filters.RootDeviceTypes: array string * The root devices types used by the VMs (always `ebs`) - * -SecurityGroupIds: array string + * --Filters.SecurityGroupIds: array string * The IDs of the security groups for the VMs (only in the public - * Cloud). - * -SecurityGroupNames: array string - * The names of the security groups for the VMs (only in the - * public Cloud). - * -StateReasonCodes: array integer + * Cloud). + * --Filters.SecurityGroupNames: array string + * The names of the security groups for the VMs (only in the public + * Cloud). + * --Filters.StateReasonCodes: array integer * The reason codes for the state changes. - * -StateReasonMessages: array string + * --Filters.StateReasonMessages: array string * The messages describing the state changes. - * -StateReasons: array string - * The reasons explaining the current states of the VMs. This - * filter is like the `StateReasonCodes` one. - * -SubnetIds: array string + * --Filters.StateReasons: array string + * The reasons explaining the current states of the VMs. This filter + * is + * like the `StateReasonCodes` one. + * --Filters.SubnetIds: array string * The IDs of the Subnets for the VMs. - * -SubregionNames: array string + * --Filters.SubregionNames: array string * The names of the Subregions of the VMs. - * -TagKeys: array string + * --Filters.TagKeys: array string * The keys of the tags associated with the VMs. - * -TagValues: array string + * --Filters.TagValues: array string * The values of the tags associated with the VMs. - * -Tags: array string - * The key/value combination of the tags associated with the VMs, - * in the following format: - * "Filters":{"Tags":["TAGKEY=TAGVALUE&quo - * t;]}. - * -Tenancies: array string - * The tenancies of the VMs (`dedicated` \\| `default` \\| - * `host`). - * -VmIds: array string + * --Filters.Tags: array string + * The key/value combination of the tags associated with the VMs, in + * the + * following format: + * + * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. + * --Filters.Tenancies: array string + * The tenancies of the VMs (`dedicated` \\| `default` \\| `host`). + * --Filters.VmIds: array string * One or more IDs of VMs. - * -VmSecurityGroupIds: array string + * --Filters.VmSecurityGroupIds: array string * The IDs of the security groups for the VMs. - * -VmSecurityGroupNames: array string + * --Filters.VmSecurityGroupNames: array string * The names of the security group for the VMs. - * -VmStateCodes: array integer + * --Filters.VmStateCodes: array integer * The state codes of the VMs: `-1` (quarantine), `0` (pending), - * `16` (running), `32` (shutting-down), `48` (terminated), `64` - * (stopping), and `80` (stopped). - * -VmStateNames: array string + * `16` + * (running), `32` (shutting-down), `48` (terminated), `64` + * (stopping), and + * `80` (stopped). + * --Filters.VmStateNames: array string * The state names of the VMs (`pending` \\| `running` \\| - * `stopping` \\| `stopped` \\| `shutting-down` \\| `terminated` - * \\| `quarantine`). - * -VmTypes: array string - * The VM types (for example, t2.micro). For more information, - * see [VM + * `stopping` \\| + * `stopped` \\| `shutting-down` \\| `terminated` \\| `quarantine`). + * --Filters.VmTypes: array string + * The VM types (for example, t2.micro). For more information, see + * [VM * Types](https://docs.outscale.com/en/userguide/VM-Types.html). */ char *filters_str; int is_set_filters; - struct filters_vm filters; /* ref FiltersVm */ + struct filters_vm filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_vm_types_arg { @@ -8686,44 +8843,45 @@ struct osc_read_vm_types_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -BsuOptimized: bool - * This parameter is not available. It is present in our API for - * the sake of historical compatibility with AWS. - * -EphemeralsTypes: array string + * --Filters.BsuOptimized: bool + * This parameter is not available. It is present in our API for the + * sake + * of historical compatibility with AWS. + * --Filters.EphemeralsTypes: array string * The types of ephemeral storage disk. - * -Eths: array integer + * --Filters.Eths: array integer * The number of Ethernet interfaces available. - * -Gpus: array integer + * --Filters.Gpus: array integer * The number of GPUs available. - * -MemorySizes: array double + * --Filters.MemorySizes: array double * The amounts of memory, in gibibytes (GiB). - * -VcoreCounts: array integer + * --Filters.VcoreCounts: array integer * The numbers of vCores. - * -VmTypeNames: array string + * --Filters.VmTypeNames: array string * The names of the VM types. For more information, see [VM * Types](https://docs.outscale.com/en/userguide/VM-Types.html). - * -VolumeCounts: array integer + * --Filters.VolumeCounts: array integer * The maximum number of ephemeral storage disks. - * -VolumeSizes: array integer + * --Filters.VolumeSizes: array integer * The size of one ephemeral storage disk, in gibibytes (GiB). */ char *filters_str; int is_set_filters; - struct filters_vm_type filters; /* ref FiltersVmType */ + struct filters_vm_type filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_vm_templates_arg { @@ -8733,40 +8891,41 @@ struct osc_read_vm_templates_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * See 'filters' type documentation - * -CpuCores: array integer + * --Filters.CpuCores: array integer * The number of vCores. - * -CpuGenerations: array string + * --Filters.CpuGenerations: array string * The processor generations (for example, `v4`). - * -CpuPerformances: array string + * --Filters.CpuPerformances: array string * The performances of the VMs. - * -Descriptions: array string + * --Filters.Descriptions: array string * The descriptions of the VM templates. - * -ImageIds: array string + * --Filters.ImageIds: array string * The IDs of the OMIs. - * -KeypairNames: array string + * --Filters.KeypairNames: array string * The names of the keypairs. - * -Rams: array integer + * --Filters.Rams: array integer * The amount of RAM. - * -TagKeys: array string + * --Filters.TagKeys: array string * The keys of the tags associated with the VM templates. - * -TagValues: array string + * --Filters.TagValues: array string * The values of the tags associated with the VM templates. - * -Tags: array string + * --Filters.Tags: array string * The key/value combination of the tags associated with the VM - * templates, in the following format: - * "Filters":{"Tags":["TAGKEY=TAGVALUE&quo - * t;]}. - * -VmTemplateIds: array string + * templates, + * in the following format: + * + * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. + * --Filters.VmTemplateIds: array string * The IDs of the VM templates. - * -VmTemplateNames: array string + * --Filters.VmTemplateNames: array string * The names of the VM templates. */ char *filters_str; int is_set_filters; - struct filters_vm_template filters; /* ref FiltersVmTemplate */ + struct filters_vm_template filters; }; struct osc_read_vm_groups_arg { @@ -8776,36 +8935,37 @@ struct osc_read_vm_groups_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -Descriptions: array string + * --Filters.Descriptions: array string * The descriptions of the VM groups. - * -SecurityGroupIds: array string + * --Filters.SecurityGroupIds: array string * The IDs of the security groups. - * -SubnetIds: array string + * --Filters.SubnetIds: array string * The IDs of the Subnets. - * -TagKeys: array string + * --Filters.TagKeys: array string * The keys of the tags associated with the VM groups. - * -TagValues: array string + * --Filters.TagValues: array string * The values of the tags associated with the VM groups. - * -Tags: array string - * The key/value combination of the tags associated with the VMs, - * in the following format: - * "Filters":{"Tags":["TAGKEY=TAGVALUE&quo - * t;]}. - * -VmCounts: array integer + * --Filters.Tags: array string + * The key/value combination of the tags associated with the VMs, in + * the + * following format: + * + * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. + * --Filters.VmCounts: array integer * The number of VMs in the VM group. - * -VmGroupIds: array string + * --Filters.VmGroupIds: array string * The IDs of the VM groups. - * -VmGroupNames: array string + * --Filters.VmGroupNames: array string * The names of the VM groups. - * -VmTemplateIds: array string + * --Filters.VmTemplateIds: array string * The IDs of the VM templates. */ char *filters_str; int is_set_filters; - struct filters_vm_group filters; /* ref FiltersVmGroup */ + struct filters_vm_group filters; }; struct osc_read_virtual_gateways_arg { @@ -8815,47 +8975,47 @@ struct osc_read_virtual_gateways_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -ConnectionTypes: array string - * The types of the virtual gateways (only `ipsec.1` is - * supported). - * -LinkNetIds: array string + * --Filters.ConnectionTypes: array string + * The types of the virtual gateways (only `ipsec.1` is supported). + * --Filters.LinkNetIds: array string * The IDs of the Nets the virtual gateways are attached to. - * -LinkStates: array string + * --Filters.LinkStates: array string * The current states of the attachments between the virtual - * gateways and the Nets (`attaching` \\| `attached` \\| - * `detaching` \\| `detached`). - * -States: array string - * The states of the virtual gateways (`pending` \\| `available` - * \\| `deleting` \\| `deleted`). - * -TagKeys: array string + * gateways and + * the Nets (`attaching` \\| `attached` \\| `detaching` \\| + * `detached`). + * --Filters.States: array string + * The states of the virtual gateways (`pending` \\| `available` \\| + * `deleting` \\| `deleted`). + * --Filters.TagKeys: array string * The keys of the tags associated with the virtual gateways. - * -TagValues: array string + * --Filters.TagValues: array string * The values of the tags associated with the virtual gateways. - * -Tags: array string - * The key/value combination of the tags associated with the - * virtual gateways, in the following format: - * "Filters":{"Tags":["TAGKEY=TAGVALUE&quo - * t;]}. - * -VirtualGatewayIds: array string + * --Filters.Tags: array string + * The key/value combination of the tags associated with the virtual + * gateways, in the following format: + * + * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. + * --Filters.VirtualGatewayIds: array string * The IDs of the virtual gateways. */ char *filters_str; int is_set_filters; - struct filters_virtual_gateway filters; /* ref FiltersVirtualGateway */ + struct filters_virtual_gateway filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_users_arg { @@ -8865,7 +9025,7 @@ struct osc_read_users_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; }; struct osc_read_user_groups_per_user_arg { @@ -8875,15 +9035,15 @@ struct osc_read_user_groups_per_user_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The name of the user. */ - char *user_name; /* string */ + char *user_name; /* * The path to the user (by default, `/`). */ - char *user_path; /* string */ + char *user_path; }; struct osc_read_user_groups_arg { @@ -8893,29 +9053,30 @@ struct osc_read_user_groups_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -PathPrefix: string - * The path prefix of the groups. If not specified, it is set to - * a slash (`/`). - * -UserGroupIds: array string + * --Filters.PathPrefix: string + * The path prefix of the groups. If not specified, it is set to a + * slash + * (`/`). + * --Filters.UserGroupIds: array string * The IDs of the user groups. */ char *filters_str; int is_set_filters; - struct filters_user_group filters; /* ref FiltersUserGroup */ + struct filters_user_group filters; /* * The item starting the list of groups requested. */ int is_set_first_item; - int first_item; /* int */ + int first_item; /* * The maximum number of items that can be returned in a single response * (by default, `100`). */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_user_group_policy_arg { @@ -8925,19 +9086,19 @@ struct osc_read_user_group_policy_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The name of the policy. */ - char *policy_name; /* string */ + char *policy_name; /* * The name of the group. */ - char *user_group_name; /* string */ + char *user_group_name; /* * The path to the group. If not specified, it is set to a slash (`/`). */ - char *user_group_path; /* string */ + char *user_group_path; }; struct osc_read_user_group_policies_arg { @@ -8947,26 +9108,26 @@ struct osc_read_user_group_policies_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The item starting the list of policies requested. */ int is_set_first_item; - int first_item; /* int */ + int first_item; /* * The maximum number of items that can be returned in a single response * (by default, `100`). */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; /* * The name of the group. */ - char *user_group_name; /* string */ + char *user_group_name; /* * The path to the group. If not specified, it is set to a slash (`/`). */ - char *user_group_path; /* string */ + char *user_group_path; }; struct osc_read_user_group_arg { @@ -8976,15 +9137,15 @@ struct osc_read_user_group_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The path to the group. If not specified, it is set to a slash (`/`). */ - char *path; /* string */ + char *path; /* * The name of the group. */ - char *user_group_name; /* string */ + char *user_group_name; }; struct osc_read_tags_arg { @@ -8994,43 +9155,50 @@ struct osc_read_tags_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -Keys: array string - * The keys of the tags that are assigned to the resources. You - * can use this filter alongside the `Values` filter. In that - * case, you filter the resources corresponding to each tag, - * regardless of the other filter. - * -ResourceIds: array string + * --Filters.Keys: array string + * The keys of the tags that are assigned to the resources. You can + * use + * this filter alongside the `Values` filter. In that case, you + * filter the + * resources corresponding to each tag, regardless of the other + * filter. + * --Filters.ResourceIds: array string * The IDs of the resources with which the tags are associated. - * -ResourceTypes: array string - * The resource type (`vm` \\| `image` \\| `volume` \\| - * `snapshot` \\| `public-ip` \\| `security-group` \\| - * `route-table` \\| `nic` \\| `net` \\| `subnet` \\| - * `net-peering` \\| `net-access-point` \\| `nat-service` \\| - * `internet-service` \\| `client-gateway` \\| `virtual-gateway` - * \\| `vpn-connection` \\| `dhcp-options` \\| `task`). - * -Values: array string + * --Filters.ResourceTypes: array string + * The resource type (`vm` \\| `image` \\| `volume` \\| `snapshot` + * \\| + * `public-ip` \\| `security-group` \\| `route-table` \\| `nic` \\| + * `net` + * \\| `subnet` \\| `net-peering` \\| `net-access-point` \\| + * `nat-service` + * \\| `internet-service` \\| `client-gateway` \\| `virtual-gateway` + * \\| + * `vpn-connection` \\| `dhcp-options` \\| `task`). + * --Filters.Values: array string * The values of the tags that are assigned to the resources. You - * can use this filter alongside the `TagKeys` filter. In that - * case, you filter the resources corresponding to each tag, - * regardless of the other filter. + * can use + * this filter alongside the `TagKeys` filter. In that case, you + * filter the + * resources corresponding to each tag, regardless of the other + * filter. */ char *filters_str; int is_set_filters; - struct filters_tag filters; /* ref FiltersTag */ + struct filters_tag filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_subregions_arg { @@ -9040,30 +9208,30 @@ struct osc_read_subregions_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -RegionNames: array string + * --Filters.RegionNames: array string * The names of the Regions containing the Subregions. - * -States: array string + * --Filters.States: array string * The states of the Subregions. - * -SubregionNames: array string + * --Filters.SubregionNames: array string * The names of the Subregions. */ char *filters_str; int is_set_filters; - struct filters_subregion filters; /* ref FiltersSubregion */ + struct filters_subregion filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_subnets_arg { @@ -9073,47 +9241,48 @@ struct osc_read_subnets_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -AvailableIpsCounts: array integer + * --Filters.AvailableIpsCounts: array integer * The number of available IPs. - * -IpRanges: array string + * --Filters.IpRanges: array string * The IP ranges in the Subnets, in CIDR notation (for example, * `10.0.0.0/16`). - * -NetIds: array string + * --Filters.NetIds: array string * The IDs of the Nets in which the Subnets are. - * -States: array string + * --Filters.States: array string * The states of the Subnets (`pending` \\| `available` \\| - * `deleted`). - * -SubnetIds: array string + * `deleted`). + * --Filters.SubnetIds: array string * The IDs of the Subnets. - * -SubregionNames: array string + * --Filters.SubregionNames: array string * The names of the Subregions in which the Subnets are located. - * -TagKeys: array string + * --Filters.TagKeys: array string * The keys of the tags associated with the Subnets. - * -TagValues: array string + * --Filters.TagValues: array string * The values of the tags associated with the Subnets. - * -Tags: array string + * --Filters.Tags: array string * The key/value combination of the tags associated with the - * Subnets, in the following format: - * "Filters":{"Tags":["TAGKEY=TAGVALUE&quo - * t;]}. + * Subnets, in + * the following format: + * + * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *filters_str; int is_set_filters; - struct filters_subnet filters; /* ref FiltersSubnet */ + struct filters_subnet filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_snapshots_arg { @@ -9123,62 +9292,67 @@ struct osc_read_snapshots_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -AccountAliases: array string + * --Filters.AccountAliases: array string * The account aliases of the owners of the snapshots. - * -AccountIds: array string + * --Filters.AccountIds: array string * The account IDs of the owners of the snapshots. - * -Descriptions: array string + * --Filters.Descriptions: array string * The descriptions of the snapshots. - * -FromCreationDate: string + * --Filters.FromCreationDate: string * The beginning of the time period, in ISO 8601 date-time format - * (for example, `2020-06-14T00:00:00.000Z`). - * -PermissionsToCreateVolumeAccountIds: array string + * (for + * example, `2020-06-14T00:00:00.000Z`). + * --Filters.PermissionsToCreateVolumeAccountIds: array string * The account IDs which have permissions to create volumes. - * -PermissionsToCreateVolumeGlobalPermission: bool + * --Filters.PermissionsToCreateVolumeGlobalPermission: bool * If true, lists all public volumes. If false, lists all private - * volumes. - * -Progresses: array integer + * volumes. + * --Filters.Progresses: array integer * The progresses of the snapshots, as a percentage. - * -SnapshotIds: array string + * --Filters.SnapshotIds: array string * The IDs of the snapshots. - * -States: array string + * --Filters.States: array string * The states of the snapshots (`in-queue` \\| `pending` \\| - * `completed` \\| `error` \\| `deleting`). - * -TagKeys: array string + * `completed` + * \\| `error` \\| `deleting`). + * --Filters.TagKeys: array string * The keys of the tags associated with the snapshots. - * -TagValues: array string + * --Filters.TagValues: array string * The values of the tags associated with the snapshots. - * -Tags: array string + * --Filters.Tags: array string * The key/value combination of the tags associated with the - * snapshots, in the following format: - * "Filters":{"Tags":["TAGKEY=TAGVALUE&quo - * t;]}. - * -ToCreationDate: string + * snapshots, in + * the following format: + * + * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. + * --Filters.ToCreationDate: string * The end of the time period, in ISO 8601 date-time format (for - * example, `2020-06-30T00:00:00.000Z`). - * -VolumeIds: array string + * example, + * `2020-06-30T00:00:00.000Z`). + * --Filters.VolumeIds: array string * The IDs of the volumes used to create the snapshots. - * -VolumeSizes: array integer + * --Filters.VolumeSizes: array integer * The sizes of the volumes used to create the snapshots, in - * gibibytes (GiB). + * gibibytes + * (GiB). */ char *filters_str; int is_set_filters; - struct filters_snapshot filters; /* ref FiltersSnapshot */ + struct filters_snapshot filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_snapshot_export_tasks_arg { @@ -9188,26 +9362,26 @@ struct osc_read_snapshot_export_tasks_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -TaskIds: array string + * --Filters.TaskIds: array string * The IDs of the export tasks. */ char *filters_str; int is_set_filters; - struct filters_export_task filters; /* ref FiltersExportTask */ + struct filters_export_task filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_server_certificates_arg { @@ -9217,15 +9391,15 @@ struct osc_read_server_certificates_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -Paths: array string + * --Filters.Paths: array string * The paths to the server certificates. */ char *filters_str; int is_set_filters; - struct filters_server_certificate filters; /* ref FiltersServerCertificate */ + struct filters_server_certificate filters; }; struct osc_read_security_groups_arg { @@ -9235,82 +9409,89 @@ struct osc_read_security_groups_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -Descriptions: array string + * --Filters.Descriptions: array string * The descriptions of the security groups. - * -InboundRuleAccountIds: array string + * --Filters.InboundRuleAccountIds: array string * The account IDs that have been granted permissions. - * -InboundRuleFromPortRanges: array integer - * The beginnings of the port ranges for the TCP and UDP - * protocols, or the ICMP type numbers. - * -InboundRuleIpRanges: array string + * --Filters.InboundRuleFromPortRanges: array integer + * The beginnings of the port ranges for the TCP and UDP protocols, + * or the + * ICMP type numbers. + * --Filters.InboundRuleIpRanges: array string * The IP ranges that have been granted permissions, in CIDR - * notation (for example, `10.0.0.0/24`). - * -InboundRuleProtocols: array string - * The IP protocols for the permissions (`tcp` \\| `udp` \\| - * `icmp`, or a protocol number, or `-1` for all protocols). - * -InboundRuleSecurityGroupIds: array string - * The IDs of the security groups that have been granted - * permissions. - * -InboundRuleSecurityGroupNames: array string + * notation (for + * example, `10.0.0.0/24`). + * --Filters.InboundRuleProtocols: array string + * The IP protocols for the permissions (`tcp` \\| `udp` \\| `icmp`, + * or a + * protocol number, or `-1` for all protocols). + * --Filters.InboundRuleSecurityGroupIds: array string + * The IDs of the security groups that have been granted permissions. + * --Filters.InboundRuleSecurityGroupNames: array string * The names of the security groups that have been granted - * permissions. - * -InboundRuleToPortRanges: array integer - * The ends of the port ranges for the TCP and UDP protocols, or - * the ICMP code numbers. - * -NetIds: array string + * permissions. + * --Filters.InboundRuleToPortRanges: array integer + * The ends of the port ranges for the TCP and UDP protocols, or the + * ICMP + * code numbers. + * --Filters.NetIds: array string * The IDs of the Nets specified when the security groups were - * created. - * -OutboundRuleAccountIds: array string + * created. + * --Filters.OutboundRuleAccountIds: array string * The account IDs that have been granted permissions. - * -OutboundRuleFromPortRanges: array integer - * The beginnings of the port ranges for the TCP and UDP - * protocols, or the ICMP type numbers. - * -OutboundRuleIpRanges: array string + * --Filters.OutboundRuleFromPortRanges: array integer + * The beginnings of the port ranges for the TCP and UDP protocols, + * or the + * ICMP type numbers. + * --Filters.OutboundRuleIpRanges: array string * The IP ranges that have been granted permissions, in CIDR - * notation (for example, `10.0.0.0/24`). - * -OutboundRuleProtocols: array string - * The IP protocols for the permissions (`tcp` \\| `udp` \\| - * `icmp`, or a protocol number, or `-1` for all protocols). - * -OutboundRuleSecurityGroupIds: array string - * The IDs of the security groups that have been granted - * permissions. - * -OutboundRuleSecurityGroupNames: array string + * notation (for + * example, `10.0.0.0/24`). + * --Filters.OutboundRuleProtocols: array string + * The IP protocols for the permissions (`tcp` \\| `udp` \\| `icmp`, + * or a + * protocol number, or `-1` for all protocols). + * --Filters.OutboundRuleSecurityGroupIds: array string + * The IDs of the security groups that have been granted permissions. + * --Filters.OutboundRuleSecurityGroupNames: array string * The names of the security groups that have been granted - * permissions. - * -OutboundRuleToPortRanges: array integer - * The ends of the port ranges for the TCP and UDP protocols, or - * the ICMP code numbers. - * -SecurityGroupIds: array string + * permissions. + * --Filters.OutboundRuleToPortRanges: array integer + * The ends of the port ranges for the TCP and UDP protocols, or the + * ICMP + * code numbers. + * --Filters.SecurityGroupIds: array string * The IDs of the security groups. - * -SecurityGroupNames: array string + * --Filters.SecurityGroupNames: array string * The names of the security groups. - * -TagKeys: array string + * --Filters.TagKeys: array string * The keys of the tags associated with the security groups. - * -TagValues: array string + * --Filters.TagValues: array string * The values of the tags associated with the security groups. - * -Tags: array string + * --Filters.Tags: array string * The key/value combination of the tags associated with the - * security groups, in the following format: - * "Filters":{"Tags":["TAGKEY=TAGVALUE&quo - * t;]}. + * security + * groups, in the following format: + * + * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *filters_str; int is_set_filters; - struct filters_security_group filters; /* ref FiltersSecurityGroup */ + struct filters_security_group filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_secret_access_key_arg { @@ -9318,13 +9499,13 @@ struct osc_read_secret_access_key_arg { /* * The ID of the access key. */ - char *access_key_id; /* string */ + char *access_key_id; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; }; struct osc_read_route_tables_arg { @@ -9334,62 +9515,63 @@ struct osc_read_route_tables_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -LinkRouteTableIds: array string + * --Filters.LinkRouteTableIds: array string * The IDs of the route tables involved in the associations. - * -LinkRouteTableLinkRouteTableIds: array string + * --Filters.LinkRouteTableLinkRouteTableIds: array string * The IDs of the associations between the route tables and the - * Subnets. - * -LinkRouteTableMain: bool + * Subnets. + * --Filters.LinkRouteTableMain: bool * If true, the route tables are the main ones for their Nets. - * -LinkSubnetIds: array string + * --Filters.LinkSubnetIds: array string * The IDs of the Subnets involved in the associations. - * -NetIds: array string + * --Filters.NetIds: array string * The IDs of the Nets for the route tables. - * -RouteCreationMethods: array string + * --Filters.RouteCreationMethods: array string * The methods used to create a route. - * -RouteDestinationIpRanges: array string + * --Filters.RouteDestinationIpRanges: array string * The IP ranges specified in routes in the tables. - * -RouteDestinationServiceIds: array string + * --Filters.RouteDestinationServiceIds: array string * The service IDs specified in routes in the tables. - * -RouteGatewayIds: array string + * --Filters.RouteGatewayIds: array string * The IDs of the gateways specified in routes in the tables. - * -RouteNatServiceIds: array string + * --Filters.RouteNatServiceIds: array string * The IDs of the NAT services specified in routes in the tables. - * -RouteNetPeeringIds: array string + * --Filters.RouteNetPeeringIds: array string * The IDs of the Net peerings specified in routes in the tables. - * -RouteStates: array string + * --Filters.RouteStates: array string * The states of routes in the route tables (always `active`). - * -RouteTableIds: array string + * --Filters.RouteTableIds: array string * The IDs of the route tables. - * -RouteVmIds: array string + * --Filters.RouteVmIds: array string * The IDs of the VMs specified in routes in the tables. - * -TagKeys: array string + * --Filters.TagKeys: array string * The keys of the tags associated with the route tables. - * -TagValues: array string + * --Filters.TagValues: array string * The values of the tags associated with the route tables. - * -Tags: array string - * The key/value combination of the tags associated with the - * route tables, in the following format: - * "Filters":{"Tags":["TAGKEY=TAGVALUE&quo - * t;]}. + * --Filters.Tags: array string + * The key/value combination of the tags associated with the route + * tables, + * in the following format: + * + * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *filters_str; int is_set_filters; - struct filters_route_table filters; /* ref FiltersRouteTable */ + struct filters_route_table filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_regions_arg { @@ -9399,7 +9581,7 @@ struct osc_read_regions_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; }; struct osc_read_quotas_arg { @@ -9409,33 +9591,34 @@ struct osc_read_quotas_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -Collections: array string + * --Filters.Collections: array string * The group names of the quotas. - * -QuotaNames: array string + * --Filters.QuotaNames: array string * The names of the quotas. - * -QuotaTypes: array string - * The resource IDs if these are resource-specific quotas, - * `global` if they are not. - * -ShortDescriptions: array string + * --Filters.QuotaTypes: array string + * The resource IDs if these are resource-specific quotas, `global` + * if they + * are not. + * --Filters.ShortDescriptions: array string * The description of the quotas. */ char *filters_str; int is_set_filters; - struct filters_quota filters; /* ref FiltersQuota */ + struct filters_quota filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_public_ips_arg { @@ -9445,51 +9628,52 @@ struct osc_read_public_ips_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -LinkPublicIpIds: array string - * The IDs representing the associations of public IPs with VMs - * or NICs. - * -NicAccountIds: array string + * --Filters.LinkPublicIpIds: array string + * The IDs representing the associations of public IPs with VMs or + * NICs. + * --Filters.NicAccountIds: array string * The account IDs of the owners of the NICs. - * -NicIds: array string + * --Filters.NicIds: array string * The IDs of the NICs. - * -Placements: array string + * --Filters.Placements: array string * Whether the public IPs are for use in the public Cloud or in a - * Net. - * -PrivateIps: array string + * Net. + * --Filters.PrivateIps: array string * The private IPs associated with the public IPs. - * -PublicIpIds: array string + * --Filters.PublicIpIds: array string * The IDs of the public IPs. - * -PublicIps: array string + * --Filters.PublicIps: array string * The public IPs. - * -TagKeys: array string + * --Filters.TagKeys: array string * The keys of the tags associated with the public IPs. - * -TagValues: array string + * --Filters.TagValues: array string * The values of the tags associated with the public IPs. - * -Tags: array string - * The key/value combination of the tags associated with the - * public IPs, in the following format: - * "Filters":{"Tags":["TAGKEY=TAGVALUE&quo - * t;]}. - * -VmIds: array string + * --Filters.Tags: array string + * The key/value combination of the tags associated with the public + * IPs, in + * the following format: + * + * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. + * --Filters.VmIds: array string * The IDs of the VMs. */ char *filters_str; int is_set_filters; - struct filters_public_ip filters; /* ref FiltersPublicIp */ + struct filters_public_ip filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_public_ip_ranges_arg { @@ -9499,18 +9683,18 @@ struct osc_read_public_ip_ranges_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_public_catalog_arg { @@ -9520,7 +9704,7 @@ struct osc_read_public_catalog_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; }; struct osc_read_product_types_arg { @@ -9530,26 +9714,26 @@ struct osc_read_product_types_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -ProductTypeIds: array string + * --Filters.ProductTypeIds: array string * The IDs of the product types. */ char *filters_str; int is_set_filters; - struct filters_product_type filters; /* ref FiltersProductType */ + struct filters_product_type filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_policy_versions_arg { @@ -9558,20 +9742,20 @@ struct osc_read_policy_versions_arg { * The item starting the list of policies requested. */ int is_set_first_item; - int first_item; /* int */ + int first_item; /* * The OUTSCALE Resource Name (ORN) of the policy. For more information, * see [Resource * Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifie * rs.html). */ - char *policy_orn; /* string */ + char *policy_orn; /* * The maximum number of items that can be returned in a single response * (by default, `100`). */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_policy_version_arg { @@ -9582,11 +9766,11 @@ struct osc_read_policy_version_arg { * Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifie * rs.html). */ - char *policy_orn; /* string */ + char *policy_orn; /* * The ID of the policy version. */ - char *version_id; /* string */ + char *version_id; }; struct osc_read_policy_arg { @@ -9597,7 +9781,7 @@ struct osc_read_policy_arg { * Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifie * rs.html). */ - char *policy_orn; /* string */ + char *policy_orn; }; struct osc_read_policies_arg { @@ -9607,31 +9791,32 @@ struct osc_read_policies_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -OnlyLinked: bool + * --Filters.OnlyLinked: bool * If set to true, lists only the policies attached to a user. - * -PathPrefix: string + * --Filters.PathPrefix: string * The path prefix you can use to filter the results. If not - * specified, it is set to a slash (`/`). - * -Scope: string + * specified, it + * is set to a slash (`/`). + * --Filters.Scope: string * The scope to filter policies (`OWS` \\| `LOCAL`). */ char *filters_str; int is_set_filters; - struct read_policies_filters filters; /* ref ReadPoliciesFilters */ + struct read_policies_filters filters; /* * The item starting the list of policies requested. */ int is_set_first_item; - int first_item; /* int */ + int first_item; /* * The maximum number of items that can be returned in a single response * (by default, `100`). */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_nics_arg { @@ -9641,82 +9826,87 @@ struct osc_read_nics_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -Descriptions: array string + * --Filters.Descriptions: array string * The descriptions of the NICs. - * -IsSourceDestCheck: bool + * --Filters.IsSourceDestCheck: bool * Whether the source/destination checking is enabled (true) or - * disabled (false). - * -LinkNicDeleteOnVmDeletion: bool + * disabled + * (false). + * --Filters.LinkNicDeleteOnVmDeletion: bool * Whether the NICs are deleted when the VMs they are attached to - * are terminated. - * -LinkNicDeviceNumbers: array integer + * are + * terminated. + * --Filters.LinkNicDeviceNumbers: array integer * The device numbers the NICs are attached to. - * -LinkNicLinkNicIds: array string + * --Filters.LinkNicLinkNicIds: array string * The attachment IDs of the NICs. - * -LinkNicStates: array string + * --Filters.LinkNicStates: array string * The states of the attachments. - * -LinkNicVmAccountIds: array string - * The account IDs of the owners of the VMs the NICs are attached - * to. - * -LinkNicVmIds: array string + * --Filters.LinkNicVmAccountIds: array string + * The account IDs of the owners of the VMs the NICs are attached to. + * --Filters.LinkNicVmIds: array string * The IDs of the VMs the NICs are attached to. - * -LinkPublicIpAccountIds: array string - * The account IDs of the owners of the public IPs associated - * with the NICs. - * -LinkPublicIpLinkPublicIpIds: array string - * The association IDs returned when the public IPs were - * associated with the NICs. - * -LinkPublicIpPublicDnsNames: array string + * --Filters.LinkPublicIpAccountIds: array string + * The account IDs of the owners of the public IPs associated with + * the + * NICs. + * --Filters.LinkPublicIpLinkPublicIpIds: array string + * The association IDs returned when the public IPs were associated + * with + * the NICs. + * --Filters.LinkPublicIpPublicDnsNames: array string * The public DNS names associated with the public IPs. - * -LinkPublicIpPublicIpIds: array string - * The allocation IDs returned when the public IPs were allocated - * to their accounts. - * -LinkPublicIpPublicIps: array string + * --Filters.LinkPublicIpPublicIpIds: array string + * The allocation IDs returned when the public IPs were allocated to + * their + * accounts. + * --Filters.LinkPublicIpPublicIps: array string * The public IPs associated with the NICs. - * -MacAddresses: array string + * --Filters.MacAddresses: array string * The Media Access Control (MAC) addresses of the NICs. - * -NetIds: array string + * --Filters.NetIds: array string * The IDs of the Nets where the NICs are located. - * -NicIds: array string + * --Filters.NicIds: array string * The IDs of the NICs. - * -PrivateDnsNames: array string + * --Filters.PrivateDnsNames: array string * The private DNS names associated with the primary private IPs. - * -PrivateIpsLinkPublicIpAccountIds: array string + * --Filters.PrivateIpsLinkPublicIpAccountIds: array string * The account IDs of the owner of the public IPs associated with - * the private IPs. - * -PrivateIpsLinkPublicIpPublicIps: array string + * the + * private IPs. + * --Filters.PrivateIpsLinkPublicIpPublicIps: array string * The public IPs associated with the private IPs. - * -PrivateIpsPrimaryIp: bool - * Whether the private IP is the primary IP associated with the - * NIC. - * -PrivateIpsPrivateIps: array string + * --Filters.PrivateIpsPrimaryIp: bool + * Whether the private IP is the primary IP associated with the NIC. + * --Filters.PrivateIpsPrivateIps: array string * The private IPs of the NICs. - * -SecurityGroupIds: array string + * --Filters.SecurityGroupIds: array string * The IDs of the security groups associated with the NICs. - * -SecurityGroupNames: array string + * --Filters.SecurityGroupNames: array string * The names of the security groups associated with the NICs. - * -States: array string + * --Filters.States: array string * The states of the NICs. - * -SubnetIds: array string + * --Filters.SubnetIds: array string * The IDs of the Subnets for the NICs. - * -SubregionNames: array string + * --Filters.SubregionNames: array string * The Subregions where the NICs are located. - * -TagKeys: array string + * --Filters.TagKeys: array string * The keys of the tags associated with the NICs. - * -TagValues: array string + * --Filters.TagValues: array string * The values of the tags associated with the NICs. - * -Tags: array string - * The key/value combination of the tags associated with the - * NICs, in the following format: - * "Filters":{"Tags":["TAGKEY=TAGVALUE&quo - * t;]}. + * --Filters.Tags: array string + * The key/value combination of the tags associated with the NICs, + * in the + * following format: + * + * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *filters_str; int is_set_filters; - struct filters_nic filters; /* ref FiltersNic */ + struct filters_nic filters; }; struct osc_read_nets_arg { @@ -9726,45 +9916,45 @@ struct osc_read_nets_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -DhcpOptionsSetIds: array string + * --Filters.DhcpOptionsSetIds: array string * The IDs of the DHCP options sets. - * -IpRanges: array string + * --Filters.IpRanges: array string * The IP ranges for the Nets, in CIDR notation (for example, * `10.0.0.0/16`). - * -IsDefault: bool + * --Filters.IsDefault: bool * If true, the Net used is the default one. - * -NetIds: array string + * --Filters.NetIds: array string * The IDs of the Nets. - * -States: array string - * The states of the Nets (`pending` \\| `available` \\| - * `deleting`). - * -TagKeys: array string + * --Filters.States: array string + * The states of the Nets (`pending` \\| `available` \\| `deleting`). + * --Filters.TagKeys: array string * The keys of the tags associated with the Nets. - * -TagValues: array string + * --Filters.TagValues: array string * The values of the tags associated with the Nets. - * -Tags: array string - * The key/value combination of the tags associated with the - * Nets, in the following format: - * "Filters":{"Tags":["TAGKEY=TAGVALUE&quo - * t;]}. + * --Filters.Tags: array string + * The key/value combination of the tags associated with the Nets, + * in the + * following format: + * + * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *filters_str; int is_set_filters; - struct filters_net filters; /* ref FiltersNet */ + struct filters_net filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_net_peerings_arg { @@ -9774,58 +9964,58 @@ struct osc_read_net_peerings_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -AccepterNetAccountIds: array string + * --Filters.AccepterNetAccountIds: array string * The account IDs of the owners of the peer Nets. - * -AccepterNetIpRanges: array string + * --Filters.AccepterNetIpRanges: array string * The IP ranges of the peer Nets, in CIDR notation (for example, * `10.0.0.0/24`). - * -AccepterNetNetIds: array string + * --Filters.AccepterNetNetIds: array string * The IDs of the peer Nets. - * -ExpirationDates: array string - * The dates and times at which the Net peerings expire, in ISO - * 8601 date-time format (for example, - * `2020-06-14T00:00:00.000Z`). - * -NetPeeringIds: array string + * --Filters.ExpirationDates: array string + * The dates and times at which the Net peerings expire, in ISO 8601 + * date-time format (for example, `2020-06-14T00:00:00.000Z`). + * --Filters.NetPeeringIds: array string * The IDs of the Net peerings. - * -SourceNetAccountIds: array string + * --Filters.SourceNetAccountIds: array string * The account IDs of the owners of the peer Nets. - * -SourceNetIpRanges: array string + * --Filters.SourceNetIpRanges: array string * The IP ranges of the peer Nets. - * -SourceNetNetIds: array string + * --Filters.SourceNetNetIds: array string * The IDs of the peer Nets. - * -StateMessages: array string + * --Filters.StateMessages: array string * Additional information about the states of the Net peerings. - * -StateNames: array string - * The states of the Net peerings (`pending-acceptance` \\| - * `active` \\| `rejected` \\| `failed` \\| `expired` \\| - * `deleted`). - * -TagKeys: array string + * --Filters.StateNames: array string + * The states of the Net peerings (`pending-acceptance` \\| `active` + * \\| + * `rejected` \\| `failed` \\| `expired` \\| `deleted`). + * --Filters.TagKeys: array string * The keys of the tags associated with the Net peerings. - * -TagValues: array string + * --Filters.TagValues: array string * The values of the tags associated with the Net peerings. - * -Tags: array string + * --Filters.Tags: array string * The key/value combination of the tags associated with the Net - * peerings, in the following format: - * "Filters":{"Tags":["TAGKEY=TAGVALUE&quo - * t;]}. + * peerings, + * in the following format: + * + * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *filters_str; int is_set_filters; - struct filters_net_peering filters; /* ref FiltersNetPeering */ + struct filters_net_peering filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_net_access_points_arg { @@ -9835,43 +10025,45 @@ struct osc_read_net_access_points_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -NetAccessPointIds: array string + * --Filters.NetAccessPointIds: array string * The IDs of the Net access points. - * -NetIds: array string + * --Filters.NetIds: array string * The IDs of the Nets. - * -ServiceNames: array string + * --Filters.ServiceNames: array string * The names of the services. For more information, see * [ReadNetAccessPointServices](#readnetaccesspointservices). - * -States: array string + * --Filters.States: array string * The states of the Net access points (`pending` \\| `available` - * \\| `deleting` \\| `deleted`). - * -TagKeys: array string + * \\| + * `deleting` \\| `deleted`). + * --Filters.TagKeys: array string * The keys of the tags associated with the Net access points. - * -TagValues: array string + * --Filters.TagValues: array string * The values of the tags associated with the Net access points. - * -Tags: array string + * --Filters.Tags: array string * The key/value combination of the tags associated with the Net - * access points, in the following format: - * "Filters":{"Tags":["TAGKEY=TAGVALUE&quo - * t;]}. + * access + * points, in the following format: + * + * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *filters_str; int is_set_filters; - struct filters_net_access_point filters; /* ref FiltersNetAccessPoint */ + struct filters_net_access_point filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_net_access_point_services_arg { @@ -9881,28 +10073,28 @@ struct osc_read_net_access_point_services_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -ServiceIds: array string + * --Filters.ServiceIds: array string * The IDs of the services. - * -ServiceNames: array string + * --Filters.ServiceNames: array string * The names of the services. */ char *filters_str; int is_set_filters; - struct filters_service filters; /* ref FiltersService */ + struct filters_service filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_nat_services_arg { @@ -9912,45 +10104,46 @@ struct osc_read_nat_services_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -ClientTokens: array string - * The idempotency tokens provided when creating the NAT - * services. - * -NatServiceIds: array string + * --Filters.ClientTokens: array string + * The idempotency tokens provided when creating the NAT services. + * --Filters.NatServiceIds: array string * The IDs of the NAT services. - * -NetIds: array string + * --Filters.NetIds: array string * The IDs of the Nets in which the NAT services are. - * -States: array string + * --Filters.States: array string * The states of the NAT services (`pending` \\| `available` \\| - * `deleting` \\| `deleted`). - * -SubnetIds: array string + * `deleting` + * \\| `deleted`). + * --Filters.SubnetIds: array string * The IDs of the Subnets in which the NAT services are. - * -TagKeys: array string + * --Filters.TagKeys: array string * The keys of the tags associated with the NAT services. - * -TagValues: array string + * --Filters.TagValues: array string * The values of the tags associated with the NAT services. - * -Tags: array string + * --Filters.Tags: array string * The key/value combination of the tags associated with the NAT - * services, in the following format: - * "Filters":{"Tags":["TAGKEY=TAGVALUE&quo - * t;]}. + * services, + * in the following format: + * + * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *filters_str; int is_set_filters; - struct filters_nat_service filters; /* ref FiltersNatService */ + struct filters_nat_service filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_managed_policies_linked_to_user_group_arg { @@ -9960,33 +10153,34 @@ struct osc_read_managed_policies_linked_to_user_group_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -PathPrefix: string - * The path prefix of the groups. If not specified, it is set to - * a slash (`/`). - * -UserGroupIds: array string + * --Filters.PathPrefix: string + * The path prefix of the groups. If not specified, it is set to a + * slash + * (`/`). + * --Filters.UserGroupIds: array string * The IDs of the user groups. */ char *filters_str; int is_set_filters; - struct filters_user_group filters; /* ref FiltersUserGroup */ + struct filters_user_group filters; /* * The item starting the list of policies requested. */ int is_set_first_item; - int first_item; /* int */ + int first_item; /* * The maximum number of items that can be returned in a single response * (by default, `100`). */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; /* * The name of the group. */ - char *user_group_name; /* string */ + char *user_group_name; }; struct osc_read_locations_arg { @@ -9996,18 +10190,18 @@ struct osc_read_locations_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_load_balancers_arg { @@ -10017,15 +10211,15 @@ struct osc_read_load_balancers_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -LoadBalancerNames: array string + * --Filters.LoadBalancerNames: array string * The names of the load balancers. */ char *filters_str; int is_set_filters; - struct filters_load_balancer filters; /* ref FiltersLoadBalancer */ + struct filters_load_balancer filters; }; struct osc_read_load_balancer_tags_arg { @@ -10035,12 +10229,12 @@ struct osc_read_load_balancer_tags_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more load balancer names. */ char *load_balancer_names_str; - char **load_balancer_names; /* array string */ + char **load_balancer_names; }; struct osc_read_listener_rules_arg { @@ -10050,15 +10244,15 @@ struct osc_read_listener_rules_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -ListenerRuleNames: array string + * --Filters.ListenerRuleNames: array string * The names of the listener rules. */ char *filters_str; int is_set_filters; - struct filters_listener_rule filters; /* ref FiltersListenerRule */ + struct filters_listener_rule filters; }; struct osc_read_linked_policies_arg { @@ -10068,31 +10262,32 @@ struct osc_read_linked_policies_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -PathPrefix: string - * The path prefix of the policies. If not specified, it is set - * to a slash (`/`). + * --Filters.PathPrefix: string + * The path prefix of the policies. If not specified, it is set to a + * slash + * (`/`). */ char *filters_str; int is_set_filters; - struct read_linked_policies_filters filters; /* ref ReadLinkedPoliciesFilters */ + struct read_linked_policies_filters filters; /* * The item starting the list of policies requested. */ int is_set_first_item; - int first_item; /* int */ + int first_item; /* * The maximum number of items that can be returned in a single response * (by default, `100`). */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; /* * The name of the user the policies are linked to. */ - char *user_name; /* string */ + char *user_name; }; struct osc_read_keypairs_arg { @@ -10102,32 +10297,32 @@ struct osc_read_keypairs_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -KeypairFingerprints: array string + * --Filters.KeypairFingerprints: array string * The fingerprints of the keypairs. - * -KeypairNames: array string + * --Filters.KeypairNames: array string * The names of the keypairs. - * -KeypairTypes: array string + * --Filters.KeypairTypes: array string * The types of the keypairs (`ssh-rsa`, `ssh-ed25519`, * `ecdsa-sha2-nistp256`, `ecdsa-sha2-nistp384`, or - * `ecdsa-sha2-nistp521`). + * `ecdsa-sha2-nistp521`). */ char *filters_str; int is_set_filters; - struct filters_keypair filters; /* ref FiltersKeypair */ + struct filters_keypair filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_internet_services_arg { @@ -10137,41 +10332,44 @@ struct osc_read_internet_services_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -InternetServiceIds: array string + * --Filters.InternetServiceIds: array string * The IDs of the Internet services. - * -LinkNetIds: array string + * --Filters.LinkNetIds: array string * The IDs of the Nets the Internet services are attached to. - * -LinkStates: array string + * --Filters.LinkStates: array string * The current states of the attachments between the Internet - * services and the Nets (only `available`, if the Internet - * gateway is attached to a Net). - * -TagKeys: array string + * services and + * the Nets (only `available`, if the Internet gateway is attached + * to a + * Net). + * --Filters.TagKeys: array string * The keys of the tags associated with the Internet services. - * -TagValues: array string + * --Filters.TagValues: array string * The values of the tags associated with the Internet services. - * -Tags: array string + * --Filters.Tags: array string * The key/value combination of the tags associated with the - * Internet services, in the following format: - * "Filters":{"Tags":["TAGKEY=TAGVALUE&quo - * t;]}. + * Internet + * services, in the following format: + * + * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *filters_str; int is_set_filters; - struct filters_internet_service filters; /* ref FiltersInternetService */ + struct filters_internet_service filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_images_arg { @@ -10181,79 +10379,78 @@ struct osc_read_images_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -AccountAliases: array string + * --Filters.AccountAliases: array string * The account aliases of the owners of the OMIs. - * -AccountIds: array string + * --Filters.AccountIds: array string * The account IDs of the owners of the OMIs. By default, all the - * OMIs for which you have launch permissions are described. - * -Architectures: array string + * OMIs for + * which you have launch permissions are described. + * --Filters.Architectures: array string * The architectures of the OMIs (`i386` \\| `x86_64`). - * -BlockDeviceMappingDeleteOnVmDeletion: bool - * Whether the volumes are deleted or not when terminating the - * VM. - * -BlockDeviceMappingDeviceNames: array string + * --Filters.BlockDeviceMappingDeleteOnVmDeletion: bool + * Whether the volumes are deleted or not when terminating the VM. + * --Filters.BlockDeviceMappingDeviceNames: array string * The device names for the volumes. - * -BlockDeviceMappingSnapshotIds: array string + * --Filters.BlockDeviceMappingSnapshotIds: array string * The IDs of the snapshots used to create the volumes. - * -BlockDeviceMappingVolumeSizes: array integer + * --Filters.BlockDeviceMappingVolumeSizes: array integer * The sizes of the volumes, in gibibytes (GiB). - * -BlockDeviceMappingVolumeTypes: array string + * --Filters.BlockDeviceMappingVolumeTypes: array string * The types of volumes (`standard` \\| `gp2` \\| `io1`). - * -Descriptions: array string + * --Filters.Descriptions: array string * The descriptions of the OMIs, provided when they were created. - * -FileLocations: array string + * --Filters.FileLocations: array string * The locations of the buckets where the OMI files are stored. - * -Hypervisors: array string + * --Filters.Hypervisors: array string * The hypervisor type of the OMI (always `xen`). - * -ImageIds: array string + * --Filters.ImageIds: array string * The IDs of the OMIs. - * -ImageNames: array string + * --Filters.ImageNames: array string * The names of the OMIs, provided when they were created. - * -PermissionsToLaunchAccountIds: array string + * --Filters.PermissionsToLaunchAccountIds: array string * The account IDs which have launch permissions for the OMIs. - * -PermissionsToLaunchGlobalPermission: bool - * If true, lists all public OMIs. If false, lists all private - * OMIs. - * -ProductCodeNames: array string + * --Filters.PermissionsToLaunchGlobalPermission: bool + * If true, lists all public OMIs. If false, lists all private OMIs. + * --Filters.ProductCodeNames: array string * The names of the product codes associated with the OMI. - * -ProductCodes: array string + * --Filters.ProductCodes: array string * The product codes associated with the OMI. - * -RootDeviceNames: array string + * --Filters.RootDeviceNames: array string * The name of the root device. This value must be /dev/sda1. - * -RootDeviceTypes: array string + * --Filters.RootDeviceTypes: array string * The types of root device used by the OMIs (`bsu` or `ebs`). - * -States: array string - * The states of the OMIs (`pending` \\| `available` \\| - * `failed`). - * -TagKeys: array string + * --Filters.States: array string + * The states of the OMIs (`pending` \\| `available` \\| `failed`). + * --Filters.TagKeys: array string * The keys of the tags associated with the OMIs. - * -TagValues: array string + * --Filters.TagValues: array string * The values of the tags associated with the OMIs. - * -Tags: array string - * The key/value combination of the tags associated with the - * OMIs, in the following format: - * "Filters":{"Tags":["TAGKEY=TAGVALUE&quo - * t;]}. - * -VirtualizationTypes: array string + * --Filters.Tags: array string + * The key/value combination of the tags associated with the OMIs, + * in the + * following format: + * + * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. + * --Filters.VirtualizationTypes: array string * The virtualization types (always `hvm`). */ char *filters_str; int is_set_filters; - struct filters_image filters; /* ref FiltersImage */ + struct filters_image filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_image_export_tasks_arg { @@ -10263,26 +10460,26 @@ struct osc_read_image_export_tasks_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -TaskIds: array string + * --Filters.TaskIds: array string * The IDs of the export tasks. */ char *filters_str; int is_set_filters; - struct filters_export_task filters; /* ref FiltersExportTask */ + struct filters_export_task filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_flexible_gpus_arg { @@ -10292,31 +10489,33 @@ struct osc_read_flexible_gpus_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -DeleteOnVmDeletion: bool + * --Filters.DeleteOnVmDeletion: bool * Indicates whether the fGPU is deleted when terminating the VM. - * -FlexibleGpuIds: array string + * --Filters.FlexibleGpuIds: array string * One or more IDs of fGPUs. - * -Generations: array string + * --Filters.Generations: array string * The processor generations that the fGPUs are compatible with. - * -ModelNames: array string + * --Filters.ModelNames: array string * One or more models of fGPUs. For more information, see [About - * Flexible - * GPUs](https://docs.outscale.com/en/userguide/About-Flexible-GPUs - * .html). - * -States: array string + * Flexible + * + * GPUs](https://docs.outscale.com/en/userguide/About-Flexible-GPUs.html) + * . + * --Filters.States: array string * The states of the fGPUs (`allocated` \\| `attaching` \\| - * `attached` \\| `detaching`). - * -SubregionNames: array string + * `attached` \\| + * `detaching`). + * --Filters.SubregionNames: array string * The Subregions where the fGPUs are located. - * -VmIds: array string + * --Filters.VmIds: array string * One or more IDs of VMs. */ char *filters_str; int is_set_filters; - struct filters_flexible_gpu filters; /* ref FiltersFlexibleGpu */ + struct filters_flexible_gpu filters; }; struct osc_read_flexible_gpu_catalog_arg { @@ -10326,7 +10525,7 @@ struct osc_read_flexible_gpu_catalog_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; }; struct osc_read_direct_links_arg { @@ -10336,26 +10535,26 @@ struct osc_read_direct_links_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -DirectLinkIds: array string + * --Filters.DirectLinkIds: array string * The IDs of the DirectLinks. */ char *filters_str; int is_set_filters; - struct filters_direct_link filters; /* ref FiltersDirectLink */ + struct filters_direct_link filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_direct_link_interfaces_arg { @@ -10365,28 +10564,28 @@ struct osc_read_direct_link_interfaces_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -DirectLinkIds: array string + * --Filters.DirectLinkIds: array string * The IDs of the DirectLinks. - * -DirectLinkInterfaceIds: array string + * --Filters.DirectLinkInterfaceIds: array string * The IDs of the DirectLink interfaces. */ char *filters_str; int is_set_filters; - struct filters_direct_link_interface filters; /* ref FiltersDirectLinkInterface */ + struct filters_direct_link_interface filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_dhcp_options_arg { @@ -10396,48 +10595,49 @@ struct osc_read_dhcp_options_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -Default: bool - * If true, lists all default DHCP options set. If false, lists - * all non-default DHCP options set. - * -DhcpOptionsSetIds: array string + * --Filters.Default: bool + * If true, lists all default DHCP options set. If false, lists all + * non-default DHCP options set. + * --Filters.DhcpOptionsSetIds: array string * The IDs of the DHCP options sets. - * -DomainNameServers: array string - * The IPs of the domain name servers used for the DHCP options - * sets. - * -DomainNames: array string + * --Filters.DomainNameServers: array string + * The IPs of the domain name servers used for the DHCP options sets. + * --Filters.DomainNames: array string * The domain names used for the DHCP options sets. - * -LogServers: array string + * --Filters.LogServers: array string * The IPs of the log servers used for the DHCP options sets. - * -NtpServers: array string - * The IPs of the Network Time Protocol (NTP) servers used for - * the DHCP options sets. - * -TagKeys: array string + * --Filters.NtpServers: array string + * The IPs of the Network Time Protocol (NTP) servers used for the + * DHCP + * options sets. + * --Filters.TagKeys: array string * The keys of the tags associated with the DHCP options sets. - * -TagValues: array string + * --Filters.TagValues: array string * The values of the tags associated with the DHCP options sets. - * -Tags: array string + * --Filters.Tags: array string * The key/value combination of the tags associated with the DHCP - * options sets, in the following format: - * "Filters":{"Tags":["TAGKEY=TAGVALUE&quo - * t;]}. + * options + * sets, in the following format: + * + * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *filters_str; int is_set_filters; - struct filters_dhcp_options filters; /* ref FiltersDhcpOptions */ + struct filters_dhcp_options filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_dedicated_groups_arg { @@ -10447,34 +10647,34 @@ struct osc_read_dedicated_groups_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -CpuGenerations: array integer - * The processor generation for the VMs in the dedicated group - * (for example, `4`). - * -DedicatedGroupIds: array string + * --Filters.CpuGenerations: array integer + * The processor generation for the VMs in the dedicated group (for + * example, `4`). + * --Filters.DedicatedGroupIds: array string * The IDs of the dedicated groups. - * -Names: array string + * --Filters.Names: array string * The names of the dedicated groups. - * -SubregionNames: array string + * --Filters.SubregionNames: array string * The names of the Subregions in which the dedicated groups are - * located. + * located. */ char *filters_str; int is_set_filters; - struct filters_dedicated_group filters; /* ref FiltersDedicatedGroup */ + struct filters_dedicated_group filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_consumption_account_arg { @@ -10484,7 +10684,7 @@ struct osc_read_consumption_account_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The beginning of the time period, in ISO 8601 date format (for * example, `2020-06-14`). The date-time format is also accepted, but @@ -10492,7 +10692,7 @@ struct osc_read_consumption_account_arg { * `2020-06-14T00:00:00.000Z`). This value is included in the time * period. */ - char *from_date; /* string */ + char *from_date; /* * By default or if false, returns only the consumption of the specific * account that sends this request. If true, returns either the overall @@ -10501,7 +10701,7 @@ struct osc_read_consumption_account_arg { * nothing (if the account that sends this request is a linked account). */ int is_set_overall; - int overall; /* bool */ + int overall; /* * If true, the response also includes the unit price of the consumed * resource (`UnitPrice`) and the total price of the consumed resource @@ -10509,7 +10709,7 @@ struct osc_read_consumption_account_arg { * account. */ int is_set_show_price; - int show_price; /* bool */ + int show_price; /* * The end of the time period, in ISO 8601 date format (for example, * `2020-06-30`). The date-time format is also accepted, but only with a @@ -10517,7 +10717,7 @@ struct osc_read_consumption_account_arg { * value is excluded from the time period, and must be set to a later * date than `FromDate`. */ - char *to_date; /* string */ + char *to_date; }; struct osc_read_console_output_arg { @@ -10527,11 +10727,11 @@ struct osc_read_console_output_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the VM. */ - char *vm_id; /* string */ + char *vm_id; }; struct osc_read_client_gateways_arg { @@ -10541,46 +10741,48 @@ struct osc_read_client_gateways_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -BgpAsns: array integer + * --Filters.BgpAsns: array integer * The Border Gateway Protocol (BGP) Autonomous System Numbers - * (ASNs) of the connections. - * -ClientGatewayIds: array string + * (ASNs) of + * the connections. + * --Filters.ClientGatewayIds: array string * The IDs of the client gateways. - * -ConnectionTypes: array string + * --Filters.ConnectionTypes: array string * The types of communication tunnels used by the client gateways - * (only `ipsec.1` is supported). - * -PublicIps: array string + * (only + * `ipsec.1` is supported). + * --Filters.PublicIps: array string * The public IPv4 addresses of the client gateways. - * -States: array string - * The states of the client gateways (`pending` \\| `available` - * \\| `deleting` \\| `deleted`). - * -TagKeys: array string + * --Filters.States: array string + * The states of the client gateways (`pending` \\| `available` \\| + * `deleting` \\| `deleted`). + * --Filters.TagKeys: array string * The keys of the tags associated with the client gateways. - * -TagValues: array string + * --Filters.TagValues: array string * The values of the tags associated with the client gateways. - * -Tags: array string - * The key/value combination of the tags associated with the - * client gateways, in the following format: - * "Filters":{"Tags":["TAGKEY=TAGVALUE&quo - * t;]}. + * --Filters.Tags: array string + * The key/value combination of the tags associated with the client + * gateways, in the following format: + * + * "Filters":{"Tags":["TAGKEY=TAGVALUE"]}. */ char *filters_str; int is_set_filters; - struct filters_client_gateway filters; /* ref FiltersClientGateway */ + struct filters_client_gateway filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; }; struct osc_read_catalogs_arg { @@ -10590,26 +10792,28 @@ struct osc_read_catalogs_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -CurrentCatalogOnly: bool - * By default or if set to true, only returns the current - * catalog. If false, returns the current catalog and past - * catalogs. - * -FromDate: string + * --Filters.CurrentCatalogOnly: bool + * By default or if set to true, only returns the current catalog. + * If + * false, returns the current catalog and past catalogs. + * --Filters.FromDate: string * The beginning of the time period, in ISO 8601 date format (for - * example, `2020-06-14`). This date cannot be older than 3 years. - * You must specify the parameters `FromDate` and `ToDate` + * example, + * `2020-06-14`). This date cannot be older than 3 years. You must + * specify + * the parameters `FromDate` and `ToDate` together. + * --Filters.ToDate: string + * The end of the time period, in ISO 8601 date format (for example, + * `2020-06-30`). You must specify the parameters `FromDate` and + * `ToDate` * together. - * -ToDate: string - * The end of the time period, in ISO 8601 date format (for - * example, `2020-06-30`). You must specify the parameters - * `FromDate` and `ToDate` together. */ char *filters_str; int is_set_filters; - struct filters_catalogs filters; /* ref FiltersCatalogs */ + struct filters_catalogs filters; }; struct osc_read_catalog_arg { @@ -10619,7 +10823,7 @@ struct osc_read_catalog_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; }; struct osc_read_cas_arg { @@ -10629,19 +10833,19 @@ struct osc_read_cas_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -CaFingerprints: array string + * --Filters.CaFingerprints: array string * The fingerprints of the CAs. - * -CaIds: array string + * --Filters.CaIds: array string * The IDs of the CAs. - * -Descriptions: array string + * --Filters.Descriptions: array string * The descriptions of the CAs. */ char *filters_str; int is_set_filters; - struct filters_ca filters; /* ref FiltersCa */ + struct filters_ca filters; }; struct osc_read_api_logs_arg { @@ -10651,101 +10855,107 @@ struct osc_read_api_logs_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -QueryAccessKeys: array string + * --Filters.QueryAccessKeys: array string * The access keys used for the logged calls. - * -QueryApiNames: array string - * The names of the APIs of the logged calls (always `oapi` for - * the OUTSCALE API). - * -QueryCallNames: array string + * --Filters.QueryApiNames: array string + * The names of the APIs of the logged calls (always `oapi` for the + * OUTSCALE API). + * --Filters.QueryCallNames: array string * The names of the logged calls. - * -QueryDateAfter: string - * The date and time, or the date, after which you want to - * retrieve logged calls, in ISO 8601 format (for example, - * `2020-06-14T00:00:00.000Z` or `2020-06-14`). By default, this - * date is set to 48 hours before the `QueryDateBefore` parameter - * value. - * -QueryDateBefore: string - * The date and time, or the date, before which you want to - * retrieve logged calls, in ISO 8601 format (for example, - * `2020-06-30T00:00:00.000Z` or `2020-06-14`). By default, this - * date is set to now, or 48 hours after the `QueryDateAfter` - * parameter value. - * -QueryIpAddresses: array string + * --Filters.QueryDateAfter: string + * The date and time, or the date, after which you want to retrieve + * logged + * calls, in ISO 8601 format (for example, + * `2020-06-14T00:00:00.000Z` or + * `2020-06-14`). By default, this date is set to 48 hours before + * the + * `QueryDateBefore` parameter value. + * --Filters.QueryDateBefore: string + * The date and time, or the date, before which you want to retrieve + * logged + * calls, in ISO 8601 format (for example, + * `2020-06-30T00:00:00.000Z` or + * `2020-06-14`). By default, this date is set to now, or 48 hours + * after the + * `QueryDateAfter` parameter value. + * --Filters.QueryIpAddresses: array string * The IPs used for the logged calls. - * -QueryUserAgents: array string + * --Filters.QueryUserAgents: array string * The user agents of the HTTP requests of the logged calls. - * -RequestIds: array string + * --Filters.RequestIds: array string * The request IDs provided in the responses of the logged calls. - * -ResponseStatusCodes: array integer + * --Filters.ResponseStatusCodes: array integer * The HTTP status codes of the logged calls. */ char *filters_str; int is_set_filters; - struct filters_api_log filters; /* ref FiltersApiLog */ + struct filters_api_log filters; /* * The token to request the next page of results. Each token refers to a * specific page. */ - char *next_page_token; /* string */ + char *next_page_token; /* * The maximum number of logs returned in a single response (between * `1`and `1000`, both included). By default, `100`. */ int is_set_results_per_page; - int results_per_page; /* int */ + int results_per_page; /* * The information to display in each returned log. - * -AccountId: bool + * --With.AccountId: bool * By default or if set to true, the account ID is displayed. - * -CallDuration: bool + * --With.CallDuration: bool * By default or if set to true, the duration of the call is - * displayed. - * -QueryAccessKey: bool + * displayed. + * --With.QueryAccessKey: bool * By default or if set to true, the access key is displayed. - * -QueryApiName: bool - * By default or if set to true, the name of the API is - * displayed. - * -QueryApiVersion: bool - * By default or if set to true, the version of the API is - * displayed. - * -QueryCallName: bool - * By default or if set to true, the name of the call is + * --With.QueryApiName: bool + * By default or if set to true, the name of the API is displayed. + * --With.QueryApiVersion: bool + * By default or if set to true, the version of the API is displayed. + * --With.QueryCallName: bool + * By default or if set to true, the name of the call is displayed. + * --With.QueryDate: bool + * By default or if set to true, the date of the call is displayed. + * --With.QueryHeaderRaw: bool + * By default or if set to true, the raw header of the HTTP request + * is * displayed. - * -QueryDate: bool - * By default or if set to true, the date of the call is - * displayed. - * -QueryHeaderRaw: bool - * By default or if set to true, the raw header of the HTTP + * --With.QueryHeaderSize: bool + * By default or if set to true, the size of the raw header of the + * HTTP * request is displayed. - * -QueryHeaderSize: bool - * By default or if set to true, the size of the raw header of - * the HTTP request is displayed. - * -QueryIpAddress: bool + * --With.QueryIpAddress: bool * By default or if set to true, the IP is displayed. - * -QueryPayloadRaw: bool - * By default or if set to true, the raw payload of the HTTP - * request is displayed. - * -QueryPayloadSize: bool - * By default or if set to true, the size of the raw payload of - * the HTTP request is displayed. - * -QueryUserAgent: bool - * By default or if set to true, the user agent of the HTTP + * --With.QueryPayloadRaw: bool + * By default or if set to true, the raw payload of the HTTP request + * is + * displayed. + * --With.QueryPayloadSize: bool + * By default or if set to true, the size of the raw payload of the + * HTTP * request is displayed. - * -RequestId: bool + * --With.QueryUserAgent: bool + * By default or if set to true, the user agent of the HTTP request + * is + * displayed. + * --With.RequestId: bool * By default or if set to true, the request ID is displayed. - * -ResponseSize: bool + * --With.ResponseSize: bool * By default or if set to true, the size of the response is - * displayed. - * -ResponseStatusCode: bool + * displayed. + * --With.ResponseStatusCode: bool * By default or if set to true, the HTTP status code of the - * response is displayed. + * response is + * displayed. */ char *with_str; int is_set_with; - struct with with; /* ref With */ + struct with with; }; struct osc_read_api_access_rules_arg { @@ -10755,23 +10965,23 @@ struct osc_read_api_access_rules_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -ApiAccessRuleIds: array string + * --Filters.ApiAccessRuleIds: array string * One or more IDs of API access rules. - * -CaIds: array string + * --Filters.CaIds: array string * One or more IDs of Client Certificate Authorities (CAs). - * -Cns: array string + * --Filters.Cns: array string * One or more Client Certificate Common Names (CNs). - * -Descriptions: array string + * --Filters.Descriptions: array string * One or more descriptions of API access rules. - * -IpRanges: array string + * --Filters.IpRanges: array string * One or more IPs or CIDR blocks (for example, `192.0.2.0/16`). */ char *filters_str; int is_set_filters; - struct filters_api_access_rule filters; /* ref FiltersApiAccessRule */ + struct filters_api_access_rule filters; }; struct osc_read_api_access_policy_arg { @@ -10781,7 +10991,7 @@ struct osc_read_api_access_policy_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; }; struct osc_read_admin_password_arg { @@ -10791,11 +11001,11 @@ struct osc_read_admin_password_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the VM. */ - char *vm_id; /* string */ + char *vm_id; }; struct osc_read_accounts_arg { @@ -10805,7 +11015,7 @@ struct osc_read_accounts_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; }; struct osc_read_access_keys_arg { @@ -10815,22 +11025,22 @@ struct osc_read_access_keys_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more filters. - * -AccessKeyIds: array string + * --Filters.AccessKeyIds: array string * The IDs of the access keys. - * -States: array string + * --Filters.States: array string * The states of the access keys (`ACTIVE` \\| `INACTIVE`). */ char *filters_str; int is_set_filters; - struct filters_access_keys filters; /* ref FiltersAccessKeys */ + struct filters_access_keys filters; /* * The name of the EIM user. By default, the user who sends the request * (which can be the root account). */ - char *user_name; /* string */ + char *user_name; }; struct osc_put_user_group_policy_arg { @@ -10840,26 +11050,26 @@ struct osc_put_user_group_policy_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The policy document, corresponding to a JSON string that contains the * policy. For more information, see [EIM Reference * Information](https://docs.outscale.com/en/userguide/EIM-Reference-Info * rmation.html). */ - char *policy_document; /* string */ + char *policy_document; /* * The name of the policy. */ - char *policy_name; /* string */ + char *policy_name; /* * The name of the group. */ - char *user_group_name; /* string */ + char *user_group_name; /* * The path to the group. If not specified, it is set to a slash (`/`). */ - char *user_group_path; /* string */ + char *user_group_path; }; struct osc_link_volume_arg { @@ -10870,21 +11080,21 @@ struct osc_link_volume_arg { * or `/dev/xvdXX` (where the first `X` is a letter between `b` and `z`, * and the second `X` is a letter between `a` and `z`). */ - char *device_name; /* string */ + char *device_name; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the VM you want to attach the volume to. */ - char *vm_id; /* string */ + char *vm_id; /* * The ID of the volume you want to attach. */ - char *volume_id; /* string */ + char *volume_id; }; struct osc_link_virtual_gateway_arg { @@ -10894,15 +11104,15 @@ struct osc_link_virtual_gateway_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the Net to which you want to attach the virtual gateway. */ - char *net_id; /* string */ + char *net_id; /* * The ID of the virtual gateway. */ - char *virtual_gateway_id; /* string */ + char *virtual_gateway_id; }; struct osc_link_route_table_arg { @@ -10912,15 +11122,15 @@ struct osc_link_route_table_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the route table. */ - char *route_table_id; /* string */ + char *route_table_id; /* * The ID of the Subnet. */ - char *subnet_id; /* string */ + char *subnet_id; }; struct osc_link_public_ip_arg { @@ -10933,42 +11143,42 @@ struct osc_link_public_ip_arg { * VM or NIC. (By default, true in the public Cloud, false in a Net.) */ int is_set_allow_relink; - int allow_relink; /* bool */ + int allow_relink; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * (Net only) The ID of the NIC. This parameter is required if the VM * has more than one NIC attached. Otherwise, you need to specify the * `VmId` parameter instead. You cannot specify both parameters at the * same time. */ - char *nic_id; /* string */ + char *nic_id; /* * (Net only) The primary or secondary private IP of the specified NIC. * By default, the primary private IP. */ - char *private_ip; /* string */ + char *private_ip; /* * The public IP. This parameter is required unless you use the * `PublicIpId` parameter. */ - char *public_ip; /* string */ + char *public_ip; /* * The allocation ID of the public IP. This parameter is required unless * you use the `PublicIp` parameter. */ - char *public_ip_id; /* string */ + char *public_ip_id; /* * The ID of the VM.
\n- In the public Cloud, this parameter is * required.
\n- In a Net, this parameter is required if the VM has * only one NIC. Otherwise, you need to specify the `NicId` parameter * instead. You cannot specify both parameters at the same time. */ - char *vm_id; /* string */ + char *vm_id; }; struct osc_link_private_ips_arg { @@ -10978,28 +11188,28 @@ struct osc_link_private_ips_arg { * same Subnet to be assigned to the NIC you specified. */ int is_set_allow_relink; - int allow_relink; /* bool */ + int allow_relink; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the NIC. */ - char *nic_id; /* string */ + char *nic_id; /* * The secondary private IP or IPs you want to assign to the NIC within * the IP range of the Subnet. */ char *private_ips_str; - char **private_ips; /* array string */ + char **private_ips; /* * The number of secondary private IPs to assign to the NIC. */ int is_set_secondary_private_ip_count; - int secondary_private_ip_count; /* int */ + int secondary_private_ip_count; }; struct osc_link_policy_arg { @@ -11009,19 +11219,19 @@ struct osc_link_policy_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The OUTSCALE Resource Name (ORN) of the policy. For more information, * see [Resource * Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifie * rs.html). */ - char *policy_orn; /* string */ + char *policy_orn; /* * The name of the user you want to link the policy to (between 1 and 64 * characters). */ - char *user_name; /* string */ + char *user_name; }; struct osc_link_nic_arg { @@ -11031,21 +11241,21 @@ struct osc_link_nic_arg { * `7`, both included). */ int is_set_device_number; - int device_number; /* int */ + int device_number; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the NIC you want to attach. */ - char *nic_id; /* string */ + char *nic_id; /* * The ID of the VM to which you want to attach the NIC. */ - char *vm_id; /* string */ + char *vm_id; }; struct osc_link_managed_policy_to_user_group_arg { @@ -11055,18 +11265,18 @@ struct osc_link_managed_policy_to_user_group_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The OUTSCALE Resource Name (ORN) of the policy. For more information, * see [Resource * Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifie * rs.html). */ - char *policy_orn; /* string */ + char *policy_orn; /* * The name of the group you want to link the policy to. */ - char *user_group_name; /* string */ + char *user_group_name; }; struct osc_link_load_balancer_backend_machines_arg { @@ -11075,22 +11285,22 @@ struct osc_link_load_balancer_backend_machines_arg { * One or more public IPs of backend VMs. */ char *backend_ips_str; - char **backend_ips; /* array string */ + char **backend_ips; /* * One or more IDs of backend VMs. */ char *backend_vm_ids_str; - char **backend_vm_ids; /* array string */ + char **backend_vm_ids; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The name of the load balancer. */ - char *load_balancer_name; /* string */ + char *load_balancer_name; }; struct osc_link_internet_service_arg { @@ -11100,15 +11310,15 @@ struct osc_link_internet_service_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the Internet service you want to attach. */ - char *internet_service_id; /* string */ + char *internet_service_id; /* * The ID of the Net to which you want to attach the Internet service. */ - char *net_id; /* string */ + char *net_id; }; struct osc_link_flexible_gpu_arg { @@ -11118,15 +11328,15 @@ struct osc_link_flexible_gpu_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the fGPU you want to attach. */ - char *flexible_gpu_id; /* string */ + char *flexible_gpu_id; /* * The ID of the VM you want to attach the fGPU to. */ - char *vm_id; /* string */ + char *vm_id; }; struct osc_deregister_vms_in_load_balancer_arg { @@ -11135,17 +11345,17 @@ struct osc_deregister_vms_in_load_balancer_arg { * One or more IDs of backend VMs. */ char *backend_vm_ids_str; - char **backend_vm_ids; /* array string */ + char **backend_vm_ids; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The name of the load balancer. */ - char *load_balancer_name; /* string */ + char *load_balancer_name; }; struct osc_delete_vpn_connection_route_arg { @@ -11154,17 +11364,17 @@ struct osc_delete_vpn_connection_route_arg { * The network prefix of the route to delete, in CIDR notation (for * example, `10.12.0.0/16`). */ - char *destination_ip_range; /* string */ + char *destination_ip_range; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the target VPN connection of the static route to delete. */ - char *vpn_connection_id; /* string */ + char *vpn_connection_id; }; struct osc_delete_vpn_connection_arg { @@ -11174,11 +11384,11 @@ struct osc_delete_vpn_connection_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the VPN connection you want to delete. */ - char *vpn_connection_id; /* string */ + char *vpn_connection_id; }; struct osc_delete_volume_arg { @@ -11188,11 +11398,11 @@ struct osc_delete_volume_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the volume you want to delete. */ - char *volume_id; /* string */ + char *volume_id; }; struct osc_delete_vms_arg { @@ -11202,12 +11412,12 @@ struct osc_delete_vms_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more IDs of VMs. */ char *vm_ids_str; - char **vm_ids; /* array string */ + char **vm_ids; }; struct osc_delete_vm_template_arg { @@ -11217,11 +11427,11 @@ struct osc_delete_vm_template_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the VM template you want to delete. */ - char *vm_template_id; /* string */ + char *vm_template_id; }; struct osc_delete_vm_group_arg { @@ -11231,11 +11441,11 @@ struct osc_delete_vm_group_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the VM group you want to delete. */ - char *vm_group_id; /* string */ + char *vm_group_id; }; struct osc_delete_virtual_gateway_arg { @@ -11245,11 +11455,11 @@ struct osc_delete_virtual_gateway_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the virtual gateway you want to delete. */ - char *virtual_gateway_id; /* string */ + char *virtual_gateway_id; }; struct osc_delete_user_group_policy_arg { @@ -11259,19 +11469,19 @@ struct osc_delete_user_group_policy_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The name of the policy document you want to delete. */ - char *policy_name; /* string */ + char *policy_name; /* * The name of the group. */ - char *user_group_name; /* string */ + char *user_group_name; /* * The path to the group. If not specified, it is set to a slash (`/`). */ - char *user_group_path; /* string */ + char *user_group_path; }; struct osc_delete_user_group_arg { @@ -11281,21 +11491,21 @@ struct osc_delete_user_group_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * If true, forces the deletion of the user group even if it is not * empty. */ int is_set_force; - int force; /* bool */ + int force; /* * The path to the group. If not specified, it is set to a slash (`/`). */ - char *path; /* string */ + char *path; /* * The name of the group you want to delete. */ - char *user_group_name; /* string */ + char *user_group_name; }; struct osc_delete_user_arg { @@ -11305,11 +11515,11 @@ struct osc_delete_user_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The name of the EIM user you want to delete. */ - char *user_name; /* string */ + char *user_name; }; struct osc_delete_tags_arg { @@ -11319,24 +11529,24 @@ struct osc_delete_tags_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more resource IDs. */ char *resource_ids_str; - char **resource_ids; /* array string */ + char **resource_ids; /* * One or more tags to delete (if you set a tag value, only the tags * matching exactly this value are deleted). * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; }; struct osc_delete_subnet_arg { @@ -11346,11 +11556,11 @@ struct osc_delete_subnet_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the Subnet you want to delete. */ - char *subnet_id; /* string */ + char *subnet_id; }; struct osc_delete_snapshot_arg { @@ -11360,11 +11570,11 @@ struct osc_delete_snapshot_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the snapshot you want to delete. */ - char *snapshot_id; /* string */ + char *snapshot_id; }; struct osc_delete_server_certificate_arg { @@ -11374,11 +11584,11 @@ struct osc_delete_server_certificate_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The name of the server certificate you want to delete. */ - char *name; /* string */ + char *name; }; struct osc_delete_security_group_rule_arg { @@ -11388,18 +11598,18 @@ struct osc_delete_security_group_rule_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The direction of the flow: `Inbound` or `Outbound`. You can specify * `Outbound` for Nets only. */ - char *flow; /* string */ + char *flow; /* * The beginning of the port range for the TCP and UDP protocols, or an * ICMP type number. */ int is_set_from_port_range; - int from_port_range; /* int */ + int from_port_range; /* * The IP protocol name (`tcp`, `udp`, `icmp`, or `-1` for all * protocols). By default, `-1`. In a Net, this can also be an IP @@ -11407,73 +11617,82 @@ struct osc_delete_security_group_rule_arg { * website](https://www.iana.org/assignments/protocol-numbers/protocol-nu * mbers.xhtml). */ - char *ip_protocol; /* string */ + char *ip_protocol; /* * The IP range for the security group rule, in CIDR notation (for * example, `10.0.0.0/16`). */ - char *ip_range; /* string */ + char *ip_range; /* * One or more rules you want to delete from the security group. * Information about the security group rule. - * -FromPortRange: int - * The beginning of the port range for the TCP and UDP protocols, - * or an ICMP type number. - * -IpProtocol: string + * --Rules.INDEX.FromPortRange: int + * The beginning of the port range for the TCP and UDP protocols, or + * an + * ICMP type number. + * --Rules.INDEX.IpProtocol: string * The IP protocol name (`tcp`, `udp`, `icmp`, or `-1` for all - * protocols). By default, `-1`. In a Net, this can also be an IP - * protocol number. For more information, see the [IANA.org - * website](https://www.iana.org/assignments/protocol-numbers/proto - * col-numbers.xhtml). - * -IpRanges: array string + * protocols). + * By default, `-1`. In a Net, this can also be an IP protocol + * number. For + * more information, see the [IANA.org + * + * website](https://www.iana.org/assignments/protocol-numbers/protocol-nu + * mber + * s.xhtml). + * --Rules.INDEX.IpRanges: array string * One or more IP ranges for the security group rules, in CIDR - * notation (for example, `10.0.0.0/16`). - * -SecurityGroupsMembers: array ref SecurityGroupsMember + * notation + * (for example, `10.0.0.0/16`). + * --Rules.INDEX.SecurityGroupsMembers: array ref SecurityGroupsMember * Information about one or more source or destination security - * groups. + * groups. * Information about a source or destination security group. - * -AccountId: string + * --Rules.INDEX.SecurityGroupsMembers.INDEX.AccountId: string * The account ID that owns the source or destination security - * group. - * -SecurityGroupId: string + * group. + * --Rules.INDEX.SecurityGroupsMembers.INDEX.SecurityGroupId: + * string * The ID of a source or destination security group that you - * want - * to link to the security group of the rule. - * -SecurityGroupName: string + * want to link + * to the security group of the rule. + * --Rules.INDEX.SecurityGroupsMembers.INDEX.SecurityGroupName: + * string * (Public Cloud only) The name of a source or destination - * security group that you want to link to the security group of - * the rule. - * -ServiceIds: array string - * One or more service IDs to allow traffic from a Net to access - * the corresponding OUTSCALE services. For more information, see + * security group + * that you want to link to the security group of the rule. + * --Rules.INDEX.ServiceIds: array string + * One or more service IDs to allow traffic from a Net to access the + * corresponding OUTSCALE services. For more information, see * [ReadNetAccessPointServices](#readnetaccesspointservices). - * -ToPortRange: int + * --Rules.INDEX.ToPortRange: int * The end of the port range for the TCP and UDP protocols, or an - * ICMP code number. + * ICMP code + * number. */ char *rules_str; int nb_rules; - struct security_group_rule *rules; /* array ref SecurityGroupRule */ + struct security_group_rule *rules; /* * The account ID of the owner of the security group you want to delete * a rule from. */ - char *security_group_account_id_to_unlink; /* string */ + char *security_group_account_id_to_unlink; /* * The ID of the security group you want to delete a rule from. */ - char *security_group_id; /* string */ + char *security_group_id; /* * The ID of the source security group. If you are in the Public Cloud, * you can also specify the name of the source security group. */ - char *security_group_name_to_unlink; /* string */ + char *security_group_name_to_unlink; /* * The end of the port range for the TCP and UDP protocols, or an ICMP * code number. */ int is_set_to_port_range; - int to_port_range; /* int */ + int to_port_range; }; struct osc_delete_security_group_arg { @@ -11483,15 +11702,15 @@ struct osc_delete_security_group_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the security group you want to delete. */ - char *security_group_id; /* string */ + char *security_group_id; /* * The name of the security group. */ - char *security_group_name; /* string */ + char *security_group_name; }; struct osc_delete_route_table_arg { @@ -11501,11 +11720,11 @@ struct osc_delete_route_table_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the route table you want to delete. */ - char *route_table_id; /* string */ + char *route_table_id; }; struct osc_delete_route_arg { @@ -11513,17 +11732,17 @@ struct osc_delete_route_arg { /* * The exact IP range for the route. */ - char *destination_ip_range; /* string */ + char *destination_ip_range; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the route table from which you want to delete a route. */ - char *route_table_id; /* string */ + char *route_table_id; }; struct osc_delete_public_ip_arg { @@ -11533,16 +11752,16 @@ struct osc_delete_public_ip_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The public IP. In the public Cloud, this parameter is required. */ - char *public_ip; /* string */ + char *public_ip; /* * The ID representing the association of the public IP with the VM or * the NIC. In a Net, this parameter is required. */ - char *public_ip_id; /* string */ + char *public_ip_id; }; struct osc_delete_policy_version_arg { @@ -11553,11 +11772,11 @@ struct osc_delete_policy_version_arg { * Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifie * rs.html). */ - char *policy_orn; /* string */ + char *policy_orn; /* * The ID of the version of the policy you want to delete. */ - char *version_id; /* string */ + char *version_id; }; struct osc_delete_policy_arg { @@ -11567,14 +11786,14 @@ struct osc_delete_policy_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The OUTSCALE Resource Name (ORN) of the policy you want to delete. * For more information, see [Resource * Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifie * rs.html). */ - char *policy_orn; /* string */ + char *policy_orn; }; struct osc_delete_nic_arg { @@ -11584,11 +11803,11 @@ struct osc_delete_nic_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the NIC you want to delete. */ - char *nic_id; /* string */ + char *nic_id; }; struct osc_delete_net_peering_arg { @@ -11598,11 +11817,11 @@ struct osc_delete_net_peering_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the Net peering you want to delete. */ - char *net_peering_id; /* string */ + char *net_peering_id; }; struct osc_delete_net_access_point_arg { @@ -11612,11 +11831,11 @@ struct osc_delete_net_access_point_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the Net access point. */ - char *net_access_point_id; /* string */ + char *net_access_point_id; }; struct osc_delete_net_arg { @@ -11626,11 +11845,11 @@ struct osc_delete_net_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the Net you want to delete. */ - char *net_id; /* string */ + char *net_id; }; struct osc_delete_nat_service_arg { @@ -11640,11 +11859,11 @@ struct osc_delete_nat_service_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the NAT service you want to delete. */ - char *nat_service_id; /* string */ + char *nat_service_id; }; struct osc_delete_load_balancer_tags_arg { @@ -11654,21 +11873,21 @@ struct osc_delete_load_balancer_tags_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more load balancer names. */ char *load_balancer_names_str; - char **load_balancer_names; /* array string */ + char **load_balancer_names; /* * One or more tags to delete from the load balancers. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. */ char *tags_str; int nb_tags; - struct resource_load_balancer_tag *tags; /* array ref ResourceLoadBalancerTag */ + struct resource_load_balancer_tag *tags; }; struct osc_delete_load_balancer_policy_arg { @@ -11678,15 +11897,15 @@ struct osc_delete_load_balancer_policy_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The name of the load balancer for which you want to delete a policy. */ - char *load_balancer_name; /* string */ + char *load_balancer_name; /* * The name of the policy you want to delete. */ - char *policy_name; /* string */ + char *policy_name; }; struct osc_delete_load_balancer_listeners_arg { @@ -11696,16 +11915,16 @@ struct osc_delete_load_balancer_listeners_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The name of the load balancer for which you want to delete listeners. */ - char *load_balancer_name; /* string */ + char *load_balancer_name; /* * One or more port numbers of the listeners you want to delete. */ char *load_balancer_ports_str; - int *load_balancer_ports; /* array integer */ + int *load_balancer_ports; }; struct osc_delete_load_balancer_arg { @@ -11715,11 +11934,11 @@ struct osc_delete_load_balancer_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The name of the load balancer you want to delete. */ - char *load_balancer_name; /* string */ + char *load_balancer_name; }; struct osc_delete_listener_rule_arg { @@ -11729,11 +11948,11 @@ struct osc_delete_listener_rule_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The name of the rule you want to delete. */ - char *listener_rule_name; /* string */ + char *listener_rule_name; }; struct osc_delete_keypair_arg { @@ -11743,11 +11962,11 @@ struct osc_delete_keypair_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The name of the keypair you want to delete. */ - char *keypair_name; /* string */ + char *keypair_name; }; struct osc_delete_internet_service_arg { @@ -11757,11 +11976,11 @@ struct osc_delete_internet_service_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the Internet service you want to delete. */ - char *internet_service_id; /* string */ + char *internet_service_id; }; struct osc_delete_image_arg { @@ -11771,11 +11990,11 @@ struct osc_delete_image_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the OMI you want to delete. */ - char *image_id; /* string */ + char *image_id; }; struct osc_delete_flexible_gpu_arg { @@ -11785,11 +12004,11 @@ struct osc_delete_flexible_gpu_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the fGPU you want to delete. */ - char *flexible_gpu_id; /* string */ + char *flexible_gpu_id; }; struct osc_delete_export_task_arg { @@ -11799,11 +12018,11 @@ struct osc_delete_export_task_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the export task to delete. */ - char *export_task_id; /* string */ + char *export_task_id; }; struct osc_delete_direct_link_interface_arg { @@ -11811,13 +12030,13 @@ struct osc_delete_direct_link_interface_arg { /* * The ID of the DirectLink interface you want to delete. */ - char *direct_link_interface_id; /* string */ + char *direct_link_interface_id; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; }; struct osc_delete_direct_link_arg { @@ -11825,13 +12044,13 @@ struct osc_delete_direct_link_arg { /* * The ID of the DirectLink you want to delete. */ - char *direct_link_id; /* string */ + char *direct_link_id; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; }; struct osc_delete_dhcp_options_arg { @@ -11839,13 +12058,13 @@ struct osc_delete_dhcp_options_arg { /* * The ID of the DHCP options set you want to delete. */ - char *dhcp_options_set_id; /* string */ + char *dhcp_options_set_id; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; }; struct osc_delete_dedicated_group_arg { @@ -11853,19 +12072,19 @@ struct osc_delete_dedicated_group_arg { /* * The ID of the dedicated group you want to delete. */ - char *dedicated_group_id; /* string */ + char *dedicated_group_id; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * If true, forces the deletion of the dedicated group and all its * dependencies. */ int is_set_force; - int force; /* bool */ + int force; }; struct osc_delete_client_gateway_arg { @@ -11873,13 +12092,13 @@ struct osc_delete_client_gateway_arg { /* * The ID of the client gateway you want to delete. */ - char *client_gateway_id; /* string */ + char *client_gateway_id; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; }; struct osc_delete_ca_arg { @@ -11887,13 +12106,13 @@ struct osc_delete_ca_arg { /* * The ID of the CA you want to delete. */ - char *ca_id; /* string */ + char *ca_id; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; }; struct osc_delete_api_access_rule_arg { @@ -11901,13 +12120,13 @@ struct osc_delete_api_access_rule_arg { /* * The ID of the API access rule you want to delete. */ - char *api_access_rule_id; /* string */ + char *api_access_rule_id; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; }; struct osc_delete_access_key_arg { @@ -11915,19 +12134,19 @@ struct osc_delete_access_key_arg { /* * The ID of the access key you want to delete. */ - char *access_key_id; /* string */ + char *access_key_id; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The name of the EIM user the access key you want to delete is * associated with. By default, the user who sends the request (which * can be the root account). */ - char *user_name; /* string */ + char *user_name; }; struct osc_create_vpn_connection_route_arg { @@ -11936,17 +12155,17 @@ struct osc_create_vpn_connection_route_arg { * The network prefix of the route, in CIDR notation (for example, * `10.12.0.0/16`). */ - char *destination_ip_range; /* string */ + char *destination_ip_range; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the target VPN connection of the static route. */ - char *vpn_connection_id; /* string */ + char *vpn_connection_id; }; struct osc_create_vpn_connection_arg { @@ -11954,17 +12173,17 @@ struct osc_create_vpn_connection_arg { /* * The ID of the client gateway. */ - char *client_gateway_id; /* string */ + char *client_gateway_id; /* * The type of VPN connection (only `ipsec.1` is supported). */ - char *connection_type; /* string */ + char *connection_type; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * By default or if false, the VPN connection uses dynamic routing with * Border Gateway Protocol (BGP). If true, routing is controlled using @@ -11974,11 +12193,11 @@ struct osc_create_vpn_connection_arg { * [DeleteVpnConnectionRoute](#deletevpnconnectionroute). */ int is_set_static_routes_only; - int static_routes_only; /* bool */ + int static_routes_only; /* * The ID of the virtual gateway. */ - char *virtual_gateway_id; /* string */ + char *virtual_gateway_id; }; struct osc_create_volume_arg { @@ -11988,7 +12207,7 @@ struct osc_create_volume_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The number of I/O operations per second (IOPS). This parameter must * be specified only if you create an `io1` volume. The maximum number @@ -11996,22 +12215,22 @@ struct osc_create_volume_arg { * performance ratio of 300 IOPS per gibibyte. */ int is_set_iops; - int iops; /* int */ + int iops; /* * The size of the volume, in gibibytes (GiB). The maximum allowed size * for a volume is 14901 GiB. This parameter is required if the volume * is not created from a snapshot (`SnapshotId` unspecified). */ int is_set_size; - int size; /* int */ + int size; /* * The ID of the snapshot from which you want to create the volume. */ - char *snapshot_id; /* string */ + char *snapshot_id; /* * The Subregion in which you want to create the volume. */ - char *subregion_name; /* string */ + char *subregion_name; /* * The type of volume you want to create (`io1` \\| `gp2` \\| * `standard`). If not specified, a `standard` volume is created.
\nIf you - * specify a snapshot ID, the volume size must be at least equal - * to the snapshot size.
\nIf you specify a snapshot ID but - * no volume size, the volume is created with a size similar to - * the snapshot one. - * -VolumeType: string + * specify a + * snapshot ID, the volume size must be at least equal to the + * snapshot + * size.
\nIf you specify a snapshot ID but no volume size, + * the volume + * is created with a size similar to the snapshot one. + * --BlockDeviceMappings.INDEX.Bsu.VolumeType: string * The type of the volume (`standard` \\| `io1` \\| `gp2`). If - * not specified in the request, a `standard` volume is - * created.
\nFor more information about volume types, see - * [About Volumes > Volume Types and + * not + * specified in the request, a `standard` volume is created.
\nFor more + * information about volume types, see [About Volumes > Volume + * Types and * - * IOPS](https://docs.outscale.com/en/userguide/About-Volumes.html# - * _volume_types_and_iops). - * -DeviceName: string - * The device name for the volume. For a root device, you must - * use `/dev/sda1`. For other volumes, you must use `/dev/sdX`, - * `/dev/sdXX`, `/dev/xvdX`, or `/dev/xvdXX` (where the first `X` - * is a letter between `b` and `z`, and the second `X` is a letter - * between `a` and `z`). - * -NoDevice: string - * Removes the device which is included in the block device - * mapping of the OMI. - * -VirtualDeviceName: string + * IOPS](https://docs.outscale.com/en/userguide/About-Volumes.html#_volum + * e_ty + * pes_and_iops). + * --BlockDeviceMappings.INDEX.DeviceName: string + * The device name for the volume. For a root device, you must use + * `/dev/sda1`. For other volumes, you must use `/dev/sdX`, + * `/dev/sdXX`, + * `/dev/xvdX`, or `/dev/xvdXX` (where the first `X` is a letter + * between `b` + * and `z`, and the second `X` is a letter between `a` and `z`). + * --BlockDeviceMappings.INDEX.NoDevice: string + * Removes the device which is included in the block device mapping + * of the + * OMI. + * --BlockDeviceMappings.INDEX.VirtualDeviceName: string * The name of the virtual device (`ephemeralN`). */ char *block_device_mappings_str; int nb_block_device_mappings; - struct block_device_mapping_vm_creation *block_device_mappings; /* array ref BlockDeviceMappingVmCreation */ + struct block_device_mapping_vm_creation *block_device_mappings; /* * By default or if true, the VM is started on creation. If false, the * VM is stopped on creation. */ int is_set_boot_on_creation; - int boot_on_creation; /* bool */ + int boot_on_creation; /* * This parameter is not available. It is present in our API for the * sake of historical compatibility with AWS. */ int is_set_bsu_optimized; - int bsu_optimized; /* bool */ + int bsu_optimized; /* * A unique identifier which enables you to manage the idempotency. */ - char *client_token; /* string */ + char *client_token; /* * If true, you cannot delete the VM unless you change this parameter * back to false. */ int is_set_deletion_protection; - int deletion_protection; /* bool */ + int deletion_protection; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the OMI used to create the VM. You can find the list of * OMIs by calling the [ReadImages](#readimages) method. */ - char *image_id; /* string */ + char *image_id; /* * The name of the keypair. */ - char *keypair_name; /* string */ + char *keypair_name; /* * The maximum number of VMs you want to create. If all the VMs cannot * be created, the largest possible number of VMs above MinVmsCount is * created. */ int is_set_max_vms_count; - int max_vms_count; /* int */ + int max_vms_count; /* * The minimum number of VMs you want to create. If this number of VMs * cannot be created, no VMs are created. */ int is_set_min_vms_count; - int min_vms_count; /* int */ + int min_vms_count; /* * (dedicated tenancy only) If true, nested virtualization is enabled. * If false, it is disabled. */ int is_set_nested_virtualization; - int nested_virtualization; /* bool */ + int nested_virtualization; /* * One or more NICs. If you specify this parameter, you must not specify * the `SubnetId` and `SubregionName` parameters. You also must define * one NIC as the primary network interface of the VM with `0` as its * device number. - * Information about the network interface card (NIC) when - * creating a virtual machine (VM). - * -DeleteOnVmDeletion: bool + * Information about the network interface card (NIC) when creating a + * virtual machine (VM). + * --Nics.INDEX.DeleteOnVmDeletion: bool * If true, the NIC is deleted when the VM is terminated. You can - * specify this parameter only for a new NIC. To modify this value - * for an existing NIC, see [UpdateNic](#updatenic). - * -Description: string + * specify + * this parameter only for a new NIC. To modify this value for an + * existing + * NIC, see [UpdateNic](#updatenic). + * --Nics.INDEX.Description: string * The description of the NIC, if you are creating a NIC when - * creating the VM. - * -DeviceNumber: int + * creating the + * VM. + * --Nics.INDEX.DeviceNumber: int * The index of the VM device for the NIC attachment (between `0` - * and `7`, both included). This parameter is required if you - * create a NIC when creating the VM. - * -NicId: string + * and `7`, + * both included). This parameter is required if you create a NIC + * when + * creating the VM. + * --Nics.INDEX.NicId: string * The ID of the NIC, if you are attaching an existing NIC when - * creating a VM. - * -PrivateIps: array ref PrivateIpLight - * One or more private IPs to assign to the NIC, if you create a - * NIC when creating a VM. Only one private IP can be the primary - * private IP. + * creating a + * VM. + * --Nics.INDEX.PrivateIps: array ref PrivateIpLight + * One or more private IPs to assign to the NIC, if you create a NIC + * when + * creating a VM. Only one private IP can be the primary private IP. * Information about the private IP. - * -IsPrimary: bool + * --Nics.INDEX.PrivateIps.INDEX.IsPrimary: bool * If true, the IP is the primary private IP of the NIC. - * -PrivateIp: string + * --Nics.INDEX.PrivateIps.INDEX.PrivateIp: string * The private IP of the NIC. - * -SecondaryPrivateIpCount: int + * --Nics.INDEX.SecondaryPrivateIpCount: int * The number of secondary private IPs, if you create a NIC when - * creating a VM. This parameter cannot be specified if you - * specified more than one private IP in the `PrivateIps` - * parameter. - * -SecurityGroupIds: array string - * One or more IDs of security groups for the NIC, if you create - * a NIC when creating a VM. - * -SubnetId: string + * creating a + * VM. This parameter cannot be specified if you specified more than + * one + * private IP in the `PrivateIps` parameter. + * --Nics.INDEX.SecurityGroupIds: array string + * One or more IDs of security groups for the NIC, if you create a + * NIC when + * creating a VM. + * --Nics.INDEX.SubnetId: string * The ID of the Subnet for the NIC, if you create a NIC when - * creating a VM. This parameter is required if you create a NIC - * when creating the VM. + * creating a + * VM. This parameter is required if you create a NIC when creating + * the VM. */ char *nics_str; int nb_nics; - struct nic_for_vm_creation *nics; /* array ref NicForVmCreation */ + struct nic_for_vm_creation *nics; /* * The performance of the VM (`medium` \\| `high` \\| `highest`). By * default, `high`. This parameter is ignored if you specify a * performance flag directly in the `VmType` parameter. */ - char *performance; /* string */ + char *performance; /* * Information about the placement of the VM. - * -SubregionName: string + * --Placement.SubregionName: string * The name of the Subregion. If you specify this parameter, you - * must not specify the `Nics` parameter. - * -Tenancy: string + * must not + * specify the `Nics` parameter. + * --Placement.Tenancy: string * The tenancy of the VM (`default`, `dedicated`, or a dedicated - * group ID). + * group ID). */ char *placement_str; int is_set_placement; - struct placement placement; /* ref Placement */ + struct placement placement; /* * One or more private IPs of the VM. */ char *private_ips_str; - char **private_ips; /* array string */ + char **private_ips; /* * One or more IDs of security group for the VMs. */ char *security_group_ids_str; - char **security_group_ids; /* array string */ + char **security_group_ids; /* * One or more names of security groups for the VMs. */ char *security_groups_str; - char **security_groups; /* array string */ + char **security_groups; /* * The ID of the Subnet in which you want to create the VM. If you * specify this parameter, you must not specify the `Nics` parameter. */ - char *subnet_id; /* string */ + char *subnet_id; /* * Data or script used to add a specific configuration to the VM. It * must be Base64-encoded and is limited to 500 kibibytes (KiB). */ - char *user_data; /* string */ + char *user_data; /* * The VM behavior when you stop it. By default or if set to `stop`, the * VM stops. If set to `restart`, the VM stops then automatically * restarts. If set to `terminate`, the VM stops and is terminated. */ - char *vm_initiated_shutdown_behavior; /* string */ + char *vm_initiated_shutdown_behavior; /* * The type of VM. You can specify a TINA type (in the `tinavW.cXrYpZ` * or `tinavW.cXrY` format), or an AWS type (for example, `t2.small`, @@ -12233,7 +12472,7 @@ struct osc_create_vms_arg { * parameter. For more information, see [VM * Types](https://docs.outscale.com/en/userguide/VM-Types.html). */ - char *vm_type; /* string */ + char *vm_type; }; struct osc_create_vm_template_arg { @@ -12242,54 +12481,54 @@ struct osc_create_vm_template_arg { * The number of vCores to use for each VM. */ int is_set_cpu_cores; - int cpu_cores; /* int */ + int cpu_cores; /* * The processor generation to use for each VM (for example, `v4`). */ - char *cpu_generation; /* string */ + char *cpu_generation; /* * The performance of the VMs (`medium` \\| `high` \\| `highest`). */ - char *cpu_performance; /* string */ + char *cpu_performance; /* * A description for the VM template. */ - char *description; /* string */ + char *description; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the OMI to use for each VM. You can find a list of OMIs by * calling the [ReadImages](#readimages) method. */ - char *image_id; /* string */ + char *image_id; /* * The name of the keypair to use for each VM. */ - char *keypair_name; /* string */ + char *keypair_name; /* * The amount of RAM to use for each VM. */ int is_set_ram; - int ram; /* int */ + int ram; /* * One or more tags to add to the VM template. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; /* * The name of the VM template. */ - char *vm_template_name; /* string */ + char *vm_template_name; }; struct osc_create_vm_group_arg { @@ -12297,13 +12536,13 @@ struct osc_create_vm_group_arg { /* * A description for the VM group. */ - char *description; /* string */ + char *description; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The positioning strategy of VMs on hypervisors. By default, or if set * to `no-strategy` our orchestrator determines the most adequate @@ -12312,40 +12551,40 @@ struct osc_create_vm_group_arg { * `repulse`, your VMs are deployed on a different hypervisor, which * improves fault tolerance. */ - char *positioning_strategy; /* string */ + char *positioning_strategy; /* * One or more IDs of security groups for the VM group. */ char *security_group_ids_str; - char **security_group_ids; /* array string */ + char **security_group_ids; /* * The ID of the Subnet in which you want to create the VM group. */ - char *subnet_id; /* string */ + char *subnet_id; /* * One or more tags to add to the VM group. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; /* * The number of VMs deployed in the VM group. */ int is_set_vm_count; - int vm_count; /* int */ + int vm_count; /* * The name of the VM group. */ - char *vm_group_name; /* string */ + char *vm_group_name; /* * The ID of the VM template used to launch VMs in the VM group. */ - char *vm_template_id; /* string */ + char *vm_template_id; }; struct osc_create_virtual_gateway_arg { @@ -12354,13 +12593,13 @@ struct osc_create_virtual_gateway_arg { * The type of VPN connection supported by the virtual gateway (only * `ipsec.1` is supported). */ - char *connection_type; /* string */ + char *connection_type; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; }; struct osc_create_user_group_arg { @@ -12370,15 +12609,15 @@ struct osc_create_user_group_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The path to the group. If not specified, it is set to a slash (`/`). */ - char *path; /* string */ + char *path; /* * The name of the group. */ - char *user_group_name; /* string */ + char *user_group_name; }; struct osc_create_user_arg { @@ -12388,20 +12627,20 @@ struct osc_create_user_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The path to the EIM user you want to create (by default, `/`). This * path name must begin and end with a slash (`/`), and contain between * 1 and 512 alphanumeric characters and/or slashes (`/`), or * underscores (_). */ - char *path; /* string */ + char *path; /* * The name of the EIM user. This user name must contain between 1 and * 64 alphanumeric characters and/or pluses (+), equals (=), commas (,), * periods (.), at signs (@), dashes (-), or underscores (_). */ - char *user_name; /* string */ + char *user_name; }; struct osc_create_tags_arg { @@ -12411,23 +12650,23 @@ struct osc_create_tags_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more resource IDs. */ char *resource_ids_str; - char **resource_ids; /* array string */ + char **resource_ids; /* * One or more tags to add to the specified resources. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; }; struct osc_create_subnet_arg { @@ -12437,7 +12676,7 @@ struct osc_create_subnet_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The IP range in the Subnet, in CIDR notation (for example, * `10.0.0.0/16`).
\nThe IP range of the Subnet can be either the @@ -12447,15 +12686,15 @@ struct osc_create_subnet_arg { * uses a /29 netmask (eight IPs). For more information, see [About * Nets](https://docs.outscale.com/en/userguide/About-Nets.html). */ - char *ip_range; /* string */ + char *ip_range; /* * The ID of the Net for which you want to create a Subnet. */ - char *net_id; /* string */ + char *net_id; /* * The name of the Subregion in which you want to create the Subnet. */ - char *subregion_name; /* string */ + char *subregion_name; }; struct osc_create_snapshot_export_task_arg { @@ -12465,34 +12704,33 @@ struct osc_create_snapshot_export_task_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * Information about the OOS export task to create. - * -DiskImageFormat: string + * --OsuExport.DiskImageFormat: string * The format of the export disk (`qcow2` \\| `raw`). - * -OsuApiKey: ref OsuApiKey + * --OsuExport.OsuApiKey: ref OsuApiKey * Information about the OOS API key. - * -ApiKeyId: string + * --OsuExport.OsuApiKey.ApiKeyId: string * The API key of the OOS account that enables you to access the - * bucket. - * -SecretKey: string + * bucket. + * --OsuExport.OsuApiKey.SecretKey: string * The secret key of the OOS account that enables you to access - * the bucket. - * -OsuBucket: string - * The name of the OOS bucket where you want to export the - * object. - * -OsuManifestUrl: string + * the bucket. + * --OsuExport.OsuBucket: string + * The name of the OOS bucket where you want to export the object. + * --OsuExport.OsuManifestUrl: string * The URL of the manifest file. - * -OsuPrefix: string + * --OsuExport.OsuPrefix: string * The prefix for the key of the OOS object. */ char *osu_export_str; int is_set_osu_export; - struct osu_export_to_create osu_export; /* ref OsuExportToCreate */ + struct osu_export_to_create osu_export; /* * The ID of the snapshot to export. */ - char *snapshot_id; /* string */ + char *snapshot_id; }; struct osc_create_snapshot_arg { @@ -12500,13 +12738,13 @@ struct osc_create_snapshot_arg { /* * A description for the snapshot. */ - char *description; /* string */ + char *description; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * **(when importing from a bucket)** The pre-signed URL of the snapshot * you want to import, or the normal URL of the snapshot if you have @@ -12517,28 +12755,28 @@ struct osc_create_snapshot_arg { * Objects](https://docs.outscale.com/en/userguide/Managing-Access-to-You * r-Buckets-and-Objects.html). */ - char *file_location; /* string */ + char *file_location; /* * **(when importing from a bucket)** The size of the snapshot you want * to create in your account, in bytes. This size must be greater than * or equal to the size of the original, uncompressed snapshot. */ int is_set_snapshot_size; - int snapshot_size; /* int */ + int snapshot_size; /* * **(when copying a snapshot)** The name of the source Region, which * must be the same as the Region of your account. */ - char *source_region_name; /* string */ + char *source_region_name; /* * **(when copying a snapshot)** The ID of the snapshot you want to copy. */ - char *source_snapshot_id; /* string */ + char *source_snapshot_id; /* * **(when creating from a volume)** The ID of the volume you want to * create a snapshot of. */ - char *volume_id; /* string */ + char *volume_id; }; struct osc_create_server_certificate_arg { @@ -12548,36 +12786,36 @@ struct osc_create_server_certificate_arg { * following syntax to make sure your certificate file is correctly * parsed: `--Body="$(cat FILENAME)"`. */ - char *body; /* string */ + char *body; /* * The PEM-encoded intermediate certification authorities.
With OSC * CLI, use the following syntax to make sure your certificate chain * file is correctly parsed: `--Chain="$(cat FILENAME)"`. */ - char *chain; /* string */ + char *chain; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * A unique name for the certificate. Constraints: 1-128 alphanumeric * characters, pluses (+), equals (=), commas (,), periods (.), at signs * (@), minuses (-), or underscores (_). */ - char *name; /* string */ + char *name; /* * The path to the server certificate, set to a slash (/) if not * specified. */ - char *path; /* string */ + char *path; /* * The PEM-encoded private key matching the certificate.
With OSC * CLI, use the following syntax to make sure your key file is correctly * parsed: `--PrivateKey="$(cat FILENAME)"`. */ - char *private_key; /* string */ + char *private_key; }; struct osc_create_security_group_rule_arg { @@ -12587,19 +12825,19 @@ struct osc_create_security_group_rule_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The direction of the flow: `Inbound` or `Outbound`. You can specify * `Outbound` for Nets only. */ - char *flow; /* string */ + char *flow; /* * The beginning of the port range for the TCP and UDP protocols, or an * ICMP type number. If you specify this parameter, you cannot specify * the `Rules` parameter and its subparameters. */ int is_set_from_port_range; - int from_port_range; /* int */ + int from_port_range; /* * The IP protocol name (`tcp`, `udp`, `icmp`, or `-1` for all * protocols). By default, `-1`. In a Net, this can also be an IP @@ -12608,78 +12846,87 @@ struct osc_create_security_group_rule_arg { * mbers.xhtml). If you specify this parameter, you cannot specify the * `Rules` parameter and its subparameters. */ - char *ip_protocol; /* string */ + char *ip_protocol; /* * The IP range for the security group rule, in CIDR notation (for * example, 10.0.0.0/16). If you specify this parameter, you cannot * specify the `Rules` parameter and its subparameters. */ - char *ip_range; /* string */ + char *ip_range; /* * Information about the security group rule to create. If you specify * this parent parameter and its subparameters, you cannot specify the * following parent parameters: `FromPortRange`, `IpProtocol`, * `IpRange`, and `ToPortRange`. * Information about the security group rule. - * -FromPortRange: int - * The beginning of the port range for the TCP and UDP protocols, - * or an ICMP type number. - * -IpProtocol: string + * --Rules.INDEX.FromPortRange: int + * The beginning of the port range for the TCP and UDP protocols, or + * an + * ICMP type number. + * --Rules.INDEX.IpProtocol: string * The IP protocol name (`tcp`, `udp`, `icmp`, or `-1` for all - * protocols). By default, `-1`. In a Net, this can also be an IP - * protocol number. For more information, see the [IANA.org - * website](https://www.iana.org/assignments/protocol-numbers/proto - * col-numbers.xhtml). - * -IpRanges: array string + * protocols). + * By default, `-1`. In a Net, this can also be an IP protocol + * number. For + * more information, see the [IANA.org + * + * website](https://www.iana.org/assignments/protocol-numbers/protocol-nu + * mber + * s.xhtml). + * --Rules.INDEX.IpRanges: array string * One or more IP ranges for the security group rules, in CIDR - * notation (for example, `10.0.0.0/16`). - * -SecurityGroupsMembers: array ref SecurityGroupsMember + * notation + * (for example, `10.0.0.0/16`). + * --Rules.INDEX.SecurityGroupsMembers: array ref SecurityGroupsMember * Information about one or more source or destination security - * groups. + * groups. * Information about a source or destination security group. - * -AccountId: string + * --Rules.INDEX.SecurityGroupsMembers.INDEX.AccountId: string * The account ID that owns the source or destination security - * group. - * -SecurityGroupId: string + * group. + * --Rules.INDEX.SecurityGroupsMembers.INDEX.SecurityGroupId: + * string * The ID of a source or destination security group that you - * want - * to link to the security group of the rule. - * -SecurityGroupName: string + * want to link + * to the security group of the rule. + * --Rules.INDEX.SecurityGroupsMembers.INDEX.SecurityGroupName: + * string * (Public Cloud only) The name of a source or destination - * security group that you want to link to the security group of - * the rule. - * -ServiceIds: array string - * One or more service IDs to allow traffic from a Net to access - * the corresponding OUTSCALE services. For more information, see + * security group + * that you want to link to the security group of the rule. + * --Rules.INDEX.ServiceIds: array string + * One or more service IDs to allow traffic from a Net to access the + * corresponding OUTSCALE services. For more information, see * [ReadNetAccessPointServices](#readnetaccesspointservices). - * -ToPortRange: int + * --Rules.INDEX.ToPortRange: int * The end of the port range for the TCP and UDP protocols, or an - * ICMP code number. + * ICMP code + * number. */ char *rules_str; int nb_rules; - struct security_group_rule *rules; /* array ref SecurityGroupRule */ + struct security_group_rule *rules; /* * The account ID that owns the source or destination security group * specified in the `SecurityGroupNameToLink` parameter. */ - char *security_group_account_id_to_link; /* string */ + char *security_group_account_id_to_link; /* * The ID of the security group for which you want to create a rule. */ - char *security_group_id; /* string */ + char *security_group_id; /* * The ID of a source or destination security group that you want to * link to the security group of the rule. */ - char *security_group_name_to_link; /* string */ + char *security_group_name_to_link; /* * The end of the port range for the TCP and UDP protocols, or an ICMP * code number. If you specify this parameter, you cannot specify the * `Rules` parameter and its subparameters. */ int is_set_to_port_range; - int to_port_range; /* int */ + int to_port_range; }; struct osc_create_security_group_arg { @@ -12689,24 +12936,24 @@ struct osc_create_security_group_arg { * contain between 1 and 255 characters. Allowed characters are `a-z`, * `A-Z`, `0-9`, accented letters, spaces, and `_.-:/()#,@[]+=&;{}!$*`. */ - char *description; /* string */ + char *description; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the Net for the security group. */ - char *net_id; /* string */ + char *net_id; /* * The name of the security group.
\nThis name must not start with * `sg-`.
\nThis name must be unique and contain between 1 and 255 * characters. Allowed characters are `a-z`, `A-Z`, `0-9`, spaces, and * `_.-:/()#,@[]+=&;{}!$*`. */ - char *security_group_name; /* string */ + char *security_group_name; }; struct osc_create_route_table_arg { @@ -12716,11 +12963,11 @@ struct osc_create_route_table_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the Net for which you want to create a route table. */ - char *net_id; /* string */ + char *net_id; }; struct osc_create_route_arg { @@ -12729,37 +12976,37 @@ struct osc_create_route_arg { * The IP range used for the destination match, in CIDR notation (for * example, `10.0.0.0/24`). */ - char *destination_ip_range; /* string */ + char *destination_ip_range; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of an Internet service or virtual gateway attached to your Net. */ - char *gateway_id; /* string */ + char *gateway_id; /* * The ID of a NAT service. */ - char *nat_service_id; /* string */ + char *nat_service_id; /* * The ID of a Net peering. */ - char *net_peering_id; /* string */ + char *net_peering_id; /* * The ID of a NIC. */ - char *nic_id; /* string */ + char *nic_id; /* * The ID of the route table for which you want to create a route. */ - char *route_table_id; /* string */ + char *route_table_id; /* * The ID of a NAT VM in your Net (attached to exactly one NIC). */ - char *vm_id; /* string */ + char *vm_id; }; struct osc_create_public_ip_arg { @@ -12769,7 +13016,7 @@ struct osc_create_public_ip_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; }; struct osc_create_product_type_arg { @@ -12777,17 +13024,17 @@ struct osc_create_product_type_arg { /* * The description of the product type. */ - char *description; /* string */ + char *description; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The vendor of the product type. */ - char *vendor; /* string */ + char *vendor; }; struct osc_create_policy_version_arg { @@ -12798,20 +13045,20 @@ struct osc_create_policy_version_arg { * Information](https://docs.outscale.com/en/userguide/EIM-Reference-Info * rmation.html). */ - char *document; /* string */ + char *document; /* * The OUTSCALE Resource Name (ORN) of the policy. For more information, * see [Resource * Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifie * rs.html). */ - char *policy_orn; /* string */ + char *policy_orn; /* * If set to true, the new policy version is set as the default version * and becomes the operative one. */ int is_set_set_as_default; - int set_as_default; /* bool */ + int set_as_default; }; struct osc_create_policy_arg { @@ -12819,28 +13066,28 @@ struct osc_create_policy_arg { /* * A description for the policy. */ - char *description; /* string */ + char *description; /* * The policy document, corresponding to a JSON string that contains the * policy. For more information, see [EIM Reference * Information](https://docs.outscale.com/en/userguide/EIM-Reference-Info * rmation.html). */ - char *document; /* string */ + char *document; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The path of the policy. */ - char *path; /* string */ + char *path; /* * The name of the policy. */ - char *policy_name; /* string */ + char *policy_name; }; struct osc_create_nic_arg { @@ -12848,36 +13095,36 @@ struct osc_create_nic_arg { /* * A description for the NIC. */ - char *description; /* string */ + char *description; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The primary private IP for the NIC.
\nThis IP must be within the * IP range of the Subnet that you specify with the `SubnetId` * attribute.
\nIf you do not specify this attribute, a random * private IP is selected within the IP range of the Subnet. * Information about the private IP. - * -IsPrimary: bool + * --PrivateIps.INDEX.IsPrimary: bool * If true, the IP is the primary private IP of the NIC. - * -PrivateIp: string + * --PrivateIps.INDEX.PrivateIp: string * The private IP of the NIC. */ char *private_ips_str; int nb_private_ips; - struct private_ip_light *private_ips; /* array ref PrivateIpLight */ + struct private_ip_light *private_ips; /* * One or more IDs of security groups for the NIC. */ char *security_group_ids_str; - char **security_group_ids; /* array string */ + char **security_group_ids; /* * The ID of the Subnet in which you want to create the NIC. */ - char *subnet_id; /* string */ + char *subnet_id; }; struct osc_create_net_peering_arg { @@ -12885,17 +13132,17 @@ struct osc_create_net_peering_arg { /* * The ID of the Net you want to connect with. */ - char *accepter_net_id; /* string */ + char *accepter_net_id; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the Net you send the peering request from. */ - char *source_net_id; /* string */ + char *source_net_id; }; struct osc_create_net_access_point_arg { @@ -12905,20 +13152,20 @@ struct osc_create_net_access_point_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the Net. */ - char *net_id; /* string */ + char *net_id; /* * One or more IDs of route tables to use for the connection. */ char *route_table_ids_str; - char **route_table_ids; /* array string */ + char **route_table_ids; /* * The name of the service (in the format `com.outscale.region.service`). */ - char *service_name; /* string */ + char *service_name; }; struct osc_create_net_arg { @@ -12928,12 +13175,12 @@ struct osc_create_net_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The IP range for the Net, in CIDR notation (for example, * `10.0.0.0/16`). */ - char *ip_range; /* string */ + char *ip_range; /* * The tenancy options for the VMs:
\n- `default` if a VM created * in a Net can be launched with any tenancy.
\n- `dedicated` if it @@ -12941,7 +13188,7 @@ struct osc_create_net_arg { * hardware.
\n- `dedicated group ID`: if it can be launched in a * dedicated group on single-tenant hardware. */ - char *tenancy; /* string */ + char *tenancy; }; struct osc_create_nat_service_arg { @@ -12949,23 +13196,23 @@ struct osc_create_nat_service_arg { /* * A unique identifier which enables you to manage the idempotency. */ - char *client_token; /* string */ + char *client_token; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The allocation ID of the public IP to associate with the NAT * service.
\nIf the public IP is already associated with another * resource, you must first disassociate it. */ - char *public_ip_id; /* string */ + char *public_ip_id; /* * The ID of the Subnet in which you want to create the NAT service. */ - char *subnet_id; /* string */ + char *subnet_id; }; struct osc_create_load_balancer_tags_arg { @@ -12975,23 +13222,23 @@ struct osc_create_load_balancer_tags_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more load balancer names. */ char *load_balancer_names_str; - char **load_balancer_names; /* array string */ + char **load_balancer_names; /* * One or more tags to add to the specified load balancers. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; }; struct osc_create_load_balancer_policy_arg { @@ -13002,33 +13249,33 @@ struct osc_create_load_balancer_policy_arg { * lasts for the duration of the browser session. */ int is_set_cookie_expiration_period; - int cookie_expiration_period; /* int */ + int cookie_expiration_period; /* * The name of the application cookie used for stickiness. This * parameter is required if you create a stickiness policy based on an * application-generated cookie. */ - char *cookie_name; /* string */ + char *cookie_name; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The name of the load balancer for which you want to create a policy. */ - char *load_balancer_name; /* string */ + char *load_balancer_name; /* * The name of the policy. This name must be unique and consist of * alphanumeric characters and dashes (-). */ - char *policy_name; /* string */ + char *policy_name; /* * The type of stickiness policy you want to create: `app` or * `load_balancer`. */ - char *policy_type; /* string */ + char *policy_type; }; struct osc_create_load_balancer_listeners_arg { @@ -13038,35 +13285,39 @@ struct osc_create_load_balancer_listeners_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more listeners for the load balancer. * Information about the listener to create. - * -BackendPort: int + * --Listeners.INDEX.BackendPort: int * The port on which the backend VM is listening (between `1` and - * `65535`, both included). - * -BackendProtocol: string + * `65535`, + * both included). + * --Listeners.INDEX.BackendProtocol: string * The protocol for routing traffic to backend VMs (`HTTP` \\| - * `HTTPS` \\| `TCP` \\| `SSL`). - * -LoadBalancerPort: int - * The port on which the load balancer is listening (between `1` - * and `65535`, both included). - * -LoadBalancerProtocol: string + * `HTTPS` \\| + * `TCP` \\| `SSL`). + * --Listeners.INDEX.LoadBalancerPort: int + * The port on which the load balancer is listening (between `1` and + * `65535`, both included). + * --Listeners.INDEX.LoadBalancerProtocol: string * The routing protocol (`HTTP` \\| `HTTPS` \\| `TCP` \\| `SSL`). - * -ServerCertificateId: string - * The OUTSCALE Resource Name (ORN) of the server certificate. - * For more information, see [Resource Identifiers > OUTSCALE - * Resource Names - * (ORNs)](https://docs.outscale.com/en/userguide/Resource-Identifi - * ers.html#_outscale_resource_names_orns). + * --Listeners.INDEX.ServerCertificateId: string + * The OUTSCALE Resource Name (ORN) of the server certificate. For + * more + * information, see [Resource Identifiers > OUTSCALE Resource Names + * + * (ORNs)](https://docs.outscale.com/en/userguide/Resource-Identifiers.ht + * ml#_ + * outscale_resource_names_orns). */ char *listeners_str; int nb_listeners; - struct listener_for_creation *listeners; /* array ref ListenerForCreation */ + struct listener_for_creation *listeners; /* * The name of the load balancer for which you want to create listeners. */ - char *load_balancer_name; /* string */ + char *load_balancer_name; }; struct osc_create_load_balancer_arg { @@ -13076,61 +13327,65 @@ struct osc_create_load_balancer_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more listeners to create. * Information about the listener to create. - * -BackendPort: int + * --Listeners.INDEX.BackendPort: int * The port on which the backend VM is listening (between `1` and - * `65535`, both included). - * -BackendProtocol: string + * `65535`, + * both included). + * --Listeners.INDEX.BackendProtocol: string * The protocol for routing traffic to backend VMs (`HTTP` \\| - * `HTTPS` \\| `TCP` \\| `SSL`). - * -LoadBalancerPort: int - * The port on which the load balancer is listening (between `1` - * and `65535`, both included). - * -LoadBalancerProtocol: string + * `HTTPS` \\| + * `TCP` \\| `SSL`). + * --Listeners.INDEX.LoadBalancerPort: int + * The port on which the load balancer is listening (between `1` and + * `65535`, both included). + * --Listeners.INDEX.LoadBalancerProtocol: string * The routing protocol (`HTTP` \\| `HTTPS` \\| `TCP` \\| `SSL`). - * -ServerCertificateId: string - * The OUTSCALE Resource Name (ORN) of the server certificate. - * For more information, see [Resource Identifiers > OUTSCALE - * Resource Names - * (ORNs)](https://docs.outscale.com/en/userguide/Resource-Identifi - * ers.html#_outscale_resource_names_orns). + * --Listeners.INDEX.ServerCertificateId: string + * The OUTSCALE Resource Name (ORN) of the server certificate. For + * more + * information, see [Resource Identifiers > OUTSCALE Resource Names + * + * (ORNs)](https://docs.outscale.com/en/userguide/Resource-Identifiers.ht + * ml#_ + * outscale_resource_names_orns). */ char *listeners_str; int nb_listeners; - struct listener_for_creation *listeners; /* array ref ListenerForCreation */ + struct listener_for_creation *listeners; /* * The unique name of the load balancer (32 alphanumeric or hyphen * characters maximum, but cannot start or end with a hyphen). */ - char *load_balancer_name; /* string */ + char *load_balancer_name; /* * The type of load balancer: `internet-facing` or `internal`. Use this * parameter only for load balancers in a Net. */ - char *load_balancer_type; /* string */ + char *load_balancer_type; /* * (internet-facing only) The public IP you want to associate with the * load balancer. If not specified, a public IP owned by 3DS OUTSCALE is * associated. */ - char *public_ip; /* string */ + char *public_ip; /* * (Net only) One or more IDs of security groups you want to assign to * the load balancer. If not specified, the default security group of * the Net is assigned to the load balancer. */ char *security_groups_str; - char **security_groups; /* array string */ + char **security_groups; /* * (Net only) The ID of the Subnet in which you want to create the load * balancer. Regardless of this Subnet, the load balancer can distribute * traffic to all Subnets. This parameter is required in a Net. */ char *subnets_str; - char **subnets; /* array string */ + char **subnets; /* * (public Cloud only) The Subregion in which you want to create the * load balancer. Regardless of this Subregion, the load balancer can @@ -13138,18 +13393,18 @@ struct osc_create_load_balancer_arg { * the public Cloud. */ char *subregion_names_str; - char **subregion_names; /* array string */ + char **subregion_names; /* * One or more tags assigned to the load balancer. * Information about the tag. - * -Key: string + * --Tags.INDEX.Key: string * The key of the tag, with a minimum of 1 character. - * -Value: string + * --Tags.INDEX.Value: string * The value of the tag, between 0 and 255 characters. */ char *tags_str; int nb_tags; - struct resource_tag *tags; /* array ref ResourceTag */ + struct resource_tag *tags; }; struct osc_create_listener_rule_arg { @@ -13159,48 +13414,50 @@ struct osc_create_listener_rule_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * Information about the load balancer. - * -LoadBalancerName: string - * The name of the load balancer to which the listener is - * attached. - * -LoadBalancerPort: int - * The port of load balancer on which the load balancer is - * listening (between `1` and `65535` both included). + * --Listener.LoadBalancerName: string + * The name of the load balancer to which the listener is attached. + * --Listener.LoadBalancerPort: int + * The port of load balancer on which the load balancer is listening + * (between `1` and `65535` both included). */ char *listener_str; int is_set_listener; - struct load_balancer_light listener; /* ref LoadBalancerLight */ + struct load_balancer_light listener; /* * Information about the listener rule. - * -Action: string + * --ListenerRule.Action: string * The type of action for the rule (always `forward`). - * -HostNamePattern: string + * --ListenerRule.HostNamePattern: string * A host-name pattern for the rule, with a maximum length of 128 * characters. This host-name pattern supports maximum three - * wildcards, and must not contain any special characters except - * [-.?]. - * -ListenerRuleName: string + * wildcards, and + * must not contain any special characters except [-.?]. + * --ListenerRule.ListenerRuleName: string * A human-readable name for the listener rule. - * -PathPattern: string + * --ListenerRule.PathPattern: string * A path pattern for the rule, with a maximum length of 128 - * characters. This path pattern supports maximum three wildcards, - * and must not contain any special characters except - * [_-.$/~"'@:+?]. - * -Priority: int - * The priority level of the listener rule, between `1` and - * `19999` both included. Each rule must have a unique priority - * level. Otherwise, an error is returned. + * characters. + * This path pattern supports maximum three wildcards, and must not + * contain + * any special characters except [_-.$/~"'@:+?]. + * --ListenerRule.Priority: int + * The priority level of the listener rule, between `1` and `19999` + * both + * included. Each rule must have a unique priority level. Otherwise, + * an + * error is returned. */ char *listener_rule_str; int is_set_listener_rule; - struct listener_rule_for_creation listener_rule; /* ref ListenerRuleForCreation */ + struct listener_rule_for_creation listener_rule; /* * The IDs of the backend VMs. */ char *vm_ids_str; - char **vm_ids; /* array string */ + char **vm_ids; }; struct osc_create_keypair_arg { @@ -13210,18 +13467,18 @@ struct osc_create_keypair_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * A unique name for the keypair, with a maximum length of 255 [ASCII * printable * characters](https://en.wikipedia.org/wiki/ASCII#Printable_characters). */ - char *keypair_name; /* string */ + char *keypair_name; /* * The public key to import in your account, if you are importing an * existing keypair. This value must be Base64-encoded. */ - char *public_key; /* string */ + char *public_key; }; struct osc_create_internet_service_arg { @@ -13231,7 +13488,7 @@ struct osc_create_internet_service_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; }; struct osc_create_image_export_task_arg { @@ -13241,34 +13498,33 @@ struct osc_create_image_export_task_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the OMI to export. */ - char *image_id; /* string */ + char *image_id; /* * Information about the OOS export task to create. - * -DiskImageFormat: string + * --OsuExport.DiskImageFormat: string * The format of the export disk (`qcow2` \\| `raw`). - * -OsuApiKey: ref OsuApiKey + * --OsuExport.OsuApiKey: ref OsuApiKey * Information about the OOS API key. - * -ApiKeyId: string + * --OsuExport.OsuApiKey.ApiKeyId: string * The API key of the OOS account that enables you to access the - * bucket. - * -SecretKey: string + * bucket. + * --OsuExport.OsuApiKey.SecretKey: string * The secret key of the OOS account that enables you to access - * the bucket. - * -OsuBucket: string - * The name of the OOS bucket where you want to export the - * object. - * -OsuManifestUrl: string + * the bucket. + * --OsuExport.OsuBucket: string + * The name of the OOS bucket where you want to export the object. + * --OsuExport.OsuManifestUrl: string * The URL of the manifest file. - * -OsuPrefix: string + * --OsuExport.OsuPrefix: string * The prefix for the key of the OOS object. */ char *osu_export_str; int is_set_osu_export; - struct osu_export_to_create osu_export; /* ref OsuExportToCreate */ + struct osu_export_to_create osu_export; }; struct osc_create_image_arg { @@ -13277,62 +13533,72 @@ struct osc_create_image_arg { * **(when registering from a snapshot, or from a bucket without using a * manifest file)** The architecture of the OMI (`i386` or `x86_64`). */ - char *architecture; /* string */ + char *architecture; /* * **(when registering from a snapshot, or from a bucket without using a * manifest file)** One or more block device mappings. - * One or more parameters used to automatically set up volumes - * when the VM is created. - * -Bsu: ref BsuToCreate + * One or more parameters used to automatically set up volumes when + * the VM + * is created. + * --BlockDeviceMappings.INDEX.Bsu: ref BsuToCreate * Information about the BSU volume to create. - * -DeleteOnVmDeletion: bool + * --BlockDeviceMappings.INDEX.Bsu.DeleteOnVmDeletion: bool * By default or if set to true, the volume is deleted when - * terminating the VM. If false, the volume is not deleted when - * terminating the VM. - * -Iops: int + * terminating the + * VM. If false, the volume is not deleted when terminating the + * VM. + * --BlockDeviceMappings.INDEX.Bsu.Iops: int * The number of I/O operations per second (IOPS). This - * parameter - * must be specified only if you create an `io1` volume. The - * maximum number of IOPS allowed for `io1` volumes is `13000` - * with a maximum performance ratio of 300 IOPS per gibibyte. - * -SnapshotId: string + * parameter must be + * specified only if you create an `io1` volume. The maximum + * number of IOPS + * allowed for `io1` volumes is `13000` with a maximum + * performance ratio of + * 300 IOPS per gibibyte. + * --BlockDeviceMappings.INDEX.Bsu.SnapshotId: string * The ID of the snapshot used to create the volume. - * -VolumeSize: int + * --BlockDeviceMappings.INDEX.Bsu.VolumeSize: int * The size of the volume, in gibibytes (GiB).
\nIf you - * specify a snapshot ID, the volume size must be at least equal - * to the snapshot size.
\nIf you specify a snapshot ID but - * no volume size, the volume is created with a size similar to - * the snapshot one. - * -VolumeType: string + * specify a + * snapshot ID, the volume size must be at least equal to the + * snapshot + * size.
\nIf you specify a snapshot ID but no volume size, + * the volume + * is created with a size similar to the snapshot one. + * --BlockDeviceMappings.INDEX.Bsu.VolumeType: string * The type of the volume (`standard` \\| `io1` \\| `gp2`). If - * not specified in the request, a `standard` volume is - * created.
\nFor more information about volume types, see - * [About Volumes > Volume Types and + * not + * specified in the request, a `standard` volume is created.
\nFor more + * information about volume types, see [About Volumes > Volume + * Types and * - * IOPS](https://docs.outscale.com/en/userguide/About-Volumes.html# - * _volume_types_and_iops). - * -DeviceName: string - * The device name for the volume. For a root device, you must - * use `/dev/sda1`. For other volumes, you must use `/dev/sdX`, - * `/dev/sdXX`, `/dev/xvdX`, or `/dev/xvdXX` (where the first `X` - * is a letter between `b` and `z`, and the second `X` is a letter - * between `a` and `z`). - * -VirtualDeviceName: string + * IOPS](https://docs.outscale.com/en/userguide/About-Volumes.html#_volum + * e_ty + * pes_and_iops). + * --BlockDeviceMappings.INDEX.DeviceName: string + * The device name for the volume. For a root device, you must use + * `/dev/sda1`. For other volumes, you must use `/dev/sdX`, + * `/dev/sdXX`, + * `/dev/xvdX`, or `/dev/xvdXX` (where the first `X` is a letter + * between `b` + * and `z`, and the second `X` is a letter between `a` and `z`). + * --BlockDeviceMappings.INDEX.VirtualDeviceName: string * The name of the virtual device (`ephemeralN`). */ char *block_device_mappings_str; int nb_block_device_mappings; - struct block_device_mapping_image *block_device_mappings; /* array ref BlockDeviceMappingImage */ + struct block_device_mapping_image *block_device_mappings; /* * A description for the new OMI. */ - char *description; /* string */ + char *description; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * **(when registering from a bucket by using a manifest file)** The * pre-signed URL of the manifest file for the OMI you want to register. @@ -13346,43 +13612,43 @@ struct osc_create_image_arg { * specify through the other parameters all the information that would * otherwise be read from the manifest file. */ - char *file_location; /* string */ + char *file_location; /* * A unique name for the new OMI.
\nConstraints: 3-128 alphanumeric * characters, underscores (`_`), spaces (` `), parentheses (`()`), * slashes (`/`), periods (`.`), or dashes (`-`). */ - char *image_name; /* string */ + char *image_name; /* * **(when creating from a VM)** If false, the VM shuts down before * creating the OMI and then reboots. If true, the VM does not. */ int is_set_no_reboot; - int no_reboot; /* bool */ + int no_reboot; /* * The product codes associated with the OMI. */ char *product_codes_str; - char **product_codes; /* array string */ + char **product_codes; /* * **(when registering from a snapshot, or from a bucket without using a * manifest file)** The name of the root device for the new OMI. */ - char *root_device_name; /* string */ + char *root_device_name; /* * **(when copying an OMI)** The ID of the OMI you want to copy. */ - char *source_image_id; /* string */ + char *source_image_id; /* * **(when copying an OMI)** The name of the source Region (always the * same as the Region of your account). */ - char *source_region_name; /* string */ + char *source_region_name; /* * **(when creating from a VM)** The ID of the VM from which you want to * create the OMI. */ - char *vm_id; /* string */ + char *vm_id; }; struct osc_create_flexible_gpu_arg { @@ -13391,31 +13657,31 @@ struct osc_create_flexible_gpu_arg { * If true, the fGPU is deleted when the VM is terminated. */ int is_set_delete_on_vm_deletion; - int delete_on_vm_deletion; /* bool */ + int delete_on_vm_deletion; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The processor generation that the fGPU must be compatible with. If * not specified, the oldest possible processor generation is selected * (as provided by [ReadFlexibleGpuCatalog](#readflexiblegpucatalog) for * the specified model of fGPU). */ - char *generation; /* string */ + char *generation; /* * The model of fGPU you want to allocate. For more information, see * [About Flexible * GPUs](https://docs.outscale.com/en/userguide/About-Flexible-GPUs.html) * . */ - char *model_name; /* string */ + char *model_name; /* * The Subregion in which you want to create the fGPU. */ - char *subregion_name; /* string */ + char *subregion_name; }; struct osc_create_direct_link_interface_arg { @@ -13424,36 +13690,39 @@ struct osc_create_direct_link_interface_arg { * The ID of the existing DirectLink for which you want to create the * DirectLink interface. */ - char *direct_link_id; /* string */ + char *direct_link_id; /* * Information about the DirectLink interface. - * -BgpAsn: int - * The BGP (Border Gateway Protocol) ASN (Autonomous System - * Number) on the customer's side of the DirectLink interface. - * This number must be between `64512` and `65534`. - * -BgpKey: string + * --DirectLinkInterface.BgpAsn: int + * The BGP (Border Gateway Protocol) ASN (Autonomous System Number) + * on the + * customer's side of the DirectLink interface. This number must be + * between + * `64512` and `65534`. + * --DirectLinkInterface.BgpKey: string * The BGP authentication key. - * -ClientPrivateIp: string + * --DirectLinkInterface.ClientPrivateIp: string * The IP on the customer's side of the DirectLink interface. - * -DirectLinkInterfaceName: string + * --DirectLinkInterface.DirectLinkInterfaceName: string * The name of the DirectLink interface. - * -OutscalePrivateIp: string + * --DirectLinkInterface.OutscalePrivateIp: string * The IP on the OUTSCALE side of the DirectLink interface. - * -VirtualGatewayId: string + * --DirectLinkInterface.VirtualGatewayId: string * The ID of the target virtual gateway. - * -Vlan: int + * --DirectLinkInterface.Vlan: int * The VLAN number associated with the DirectLink interface. This - * number must be unique and be between `2` and `4094`. + * number + * must be unique and be between `2` and `4094`. */ char *direct_link_interface_str; int is_set_direct_link_interface; - struct direct_link_interface direct_link_interface; /* ref DirectLinkInterface */ + struct direct_link_interface direct_link_interface; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; }; struct osc_create_direct_link_arg { @@ -13461,22 +13730,22 @@ struct osc_create_direct_link_arg { /* * The bandwidth of the DirectLink (`1Gbps` \\| `10Gbps`). */ - char *bandwidth; /* string */ + char *bandwidth; /* * The name of the DirectLink. */ - char *direct_link_name; /* string */ + char *direct_link_name; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The code of the requested location for the DirectLink, returned by * the [ReadLocations](#readlocations) method. */ - char *location; /* string */ + char *location; }; struct osc_create_dhcp_options_arg { @@ -13487,7 +13756,7 @@ struct osc_create_dhcp_options_arg { * parameters: `DomainName`, `DomainNameServers`, `LogServers`, or * `NtpServers`. */ - char *domain_name; /* string */ + char *domain_name; /* * The IPs of domain name servers. If no IPs are specified, the * `OutscaleProvidedDNS` value is set by default. You must specify at @@ -13495,27 +13764,27 @@ struct osc_create_dhcp_options_arg { * `DomainNameServers`, `LogServers`, or `NtpServers`. */ char *domain_name_servers_str; - char **domain_name_servers; /* array string */ + char **domain_name_servers; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The IPs of the log servers. You must specify at least one of the * following parameters: `DomainName`, `DomainNameServers`, * `LogServers`, or `NtpServers`. */ char *log_servers_str; - char **log_servers; /* array string */ + char **log_servers; /* * The IPs of the Network Time Protocol (NTP) servers. You must specify * at least one of the following parameters: `DomainName`, * `DomainNameServers`, `LogServers`, or `NtpServers`. */ char *ntp_servers_str; - char **ntp_servers; /* array string */ + char **ntp_servers; }; struct osc_create_dedicated_group_arg { @@ -13525,21 +13794,21 @@ struct osc_create_dedicated_group_arg { * example, `4`). */ int is_set_cpu_generation; - int cpu_generation; /* int */ + int cpu_generation; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * A name for the dedicated group. */ - char *name; /* string */ + char *name; /* * The Subregion in which you want to create the dedicated group. */ - char *subregion_name; /* string */ + char *subregion_name; }; struct osc_create_client_gateway_arg { @@ -13552,22 +13821,22 @@ struct osc_create_client_gateway_arg { * or between 4200000000 and 4294967294. */ int is_set_bgp_asn; - int bgp_asn; /* int */ + int bgp_asn; /* * The communication protocol used to establish tunnel with your client * gateway (only `ipsec.1` is supported). */ - char *connection_type; /* string */ + char *connection_type; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The public fixed IPv4 address of your client gateway. */ - char *public_ip; /* string */ + char *public_ip; }; struct osc_create_ca_arg { @@ -13577,17 +13846,17 @@ struct osc_create_ca_arg { * make sure your CA file is correctly parsed: `--CaPem="$(cat * FILENAME)"`. */ - char *ca_pem; /* string */ + char *ca_pem; /* * The description of the CA. */ - char *description; /* string */ + char *description; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; }; struct osc_create_api_access_rule_arg { @@ -13596,28 +13865,28 @@ struct osc_create_api_access_rule_arg { * One or more IDs of Client Certificate Authorities (CAs). */ char *ca_ids_str; - char **ca_ids; /* array string */ + char **ca_ids; /* * One or more Client Certificate Common Names (CNs). If this parameter * is specified, you must also specify the `CaIds` parameter. */ char *cns_str; - char **cns; /* array string */ + char **cns; /* * A description for the API access rule. */ - char *description; /* string */ + char *description; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * One or more IPs or CIDR blocks (for example, `192.0.2.0/16`). */ char *ip_ranges_str; - char **ip_ranges; /* array string */ + char **ip_ranges; }; struct osc_create_account_arg { @@ -13629,66 +13898,66 @@ struct osc_create_account_arg { * it. To remove all registered additional emails, specify an empty list. */ char *additional_emails_str; - char **additional_emails; /* array string */ + char **additional_emails; /* * The city of the account owner. */ - char *city; /* string */ + char *city; /* * The name of the company for the account. */ - char *company_name; /* string */ + char *company_name; /* * The country of the account owner. */ - char *country; /* string */ + char *country; /* * The ID of the customer. It must be 8 digits. */ - char *customer_id; /* string */ + char *customer_id; /* * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The main email address for the account. This address is used for your * credentials and notifications. */ - char *email; /* string */ + char *email; /* * The first name of the account owner. */ - char *first_name; /* string */ + char *first_name; /* * The job title of the account owner. */ - char *job_title; /* string */ + char *job_title; /* * The last name of the account owner. */ - char *last_name; /* string */ + char *last_name; /* * The mobile phone number of the account owner. */ - char *mobile_number; /* string */ + char *mobile_number; /* * The landline phone number of the account owner. */ - char *phone_number; /* string */ + char *phone_number; /* * The state/province of the account. */ - char *state_province; /* string */ + char *state_province; /* * The value added tax (VAT) number for the account. */ - char *vat_number; /* string */ + char *vat_number; /* * The ZIP code of the city. */ - char *zip_code; /* string */ + char *zip_code; }; struct osc_create_access_key_arg { @@ -13698,20 +13967,20 @@ struct osc_create_access_key_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The date and time, or the date, at which you want the access key to * expire, in ISO 8601 format (for example, `2020-06-14T00:00:00.000Z`, * or `2020-06-14`). To remove an existing expiration date, use the * method without specifying this parameter. */ - char *expiration_date; /* string */ + char *expiration_date; /* * The name of the EIM user that owns the key to be created. If you do * not specify a user name, this action creates an access key for the * user who sends the request (which can be the root account). */ - char *user_name; /* string */ + char *user_name; }; struct osc_check_authentication_arg { @@ -13721,15 +13990,15 @@ struct osc_check_authentication_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The email address of the account. */ - char *login; /* string */ + char *login; /* * The password of the account. */ - char *password; /* string */ + char *password; }; struct osc_add_user_to_user_group_arg { @@ -13739,23 +14008,23 @@ struct osc_add_user_to_user_group_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The name of the group you want to add a user to. */ - char *user_group_name; /* string */ + char *user_group_name; /* * The path to the group. If not specified, it is set to a slash (`/`). */ - char *user_group_path; /* string */ + char *user_group_path; /* * The name of the user you want to add to the group. */ - char *user_name; /* string */ + char *user_name; /* * The path to the user. If not specified, it is set to a slash (`/`). */ - char *user_path; /* string */ + char *user_path; }; struct osc_accept_net_peering_arg { @@ -13765,11 +14034,11 @@ struct osc_accept_net_peering_arg { * the action. */ int is_set_dry_run; - int dry_run; /* bool */ + int dry_run; /* * The ID of the Net peering you want to accept. */ - char *net_peering_id; /* string */ + char *net_peering_id; }; From 1e498cde69b346fb7ddb720ba0841388d9ac34a9 Mon Sep 17 00:00:00 2001 From: Matthias Gatto Date: Mon, 29 Jul 2024 11:50:37 +0200 Subject: [PATCH 3/4] update cognac to for strcmp incoherence Signed-off-by: Matthias Gatto --- COGNAC | 2 +- main.c | 4650 ++++++++++++++++++++++++++++---------------------------- 2 files changed, 2328 insertions(+), 2324 deletions(-) diff --git a/COGNAC b/COGNAC index 0a5617f..ac8968e 160000 --- a/COGNAC +++ b/COGNAC @@ -1 +1 @@ -Subproject commit 0a5617f451a8ea0422d7888c733b6afaa21b0dc1 +Subproject commit ac8968e5bd5d6d51ae68759b75cfce34df394503 diff --git a/main.c b/main.c index eea22cb..c6fe2ce 100644 --- a/main.c +++ b/main.c @@ -116,7 +116,11 @@ static int argcmp2(const char *s1, const char *s2, char dst) static int argcmp(const char *s1, const char *s2) { - return argcmp2(s1, s2, '.'); + while (*s1 == *s2 && *s1 && *s2) { + s1++; + s2++; + } + return *s1 - *s2; } #define MAX_FILES_PER_CMD 64 @@ -417,17 +421,17 @@ int with_parser(void *s, char *str, char *aa, struct ptr_array *pa); int accepter_net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct accepter_net *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = strcmp(str, "IpRange")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IpRange")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "IpRange argument missing\n"); s->ip_range = aa; // string string } else - if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string @@ -442,27 +446,27 @@ int accepter_net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int access_key_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct access_key *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccessKeyId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccessKeyId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccessKeyId argument missing\n"); s->access_key_id = aa; // string string } else - if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = strcmp(str, "ExpirationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ExpirationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ExpirationDate argument missing\n"); s->expiration_date = aa; // string string } else - if ((aret = strcmp(str, "LastModificationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LastModificationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LastModificationDate argument missing\n"); s->last_modification_date = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string @@ -477,32 +481,32 @@ int access_key_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int access_key_secret_key_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct access_key_secret_key *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccessKeyId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccessKeyId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccessKeyId argument missing\n"); s->access_key_id = aa; // string string } else - if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = strcmp(str, "ExpirationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ExpirationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ExpirationDate argument missing\n"); s->expiration_date = aa; // string string } else - if ((aret = strcmp(str, "LastModificationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LastModificationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LastModificationDate argument missing\n"); s->last_modification_date = aa; // string string } else - if ((aret = strcmp(str, "SecretKey")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecretKey")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SecretKey argument missing\n"); s->secret_key = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string @@ -517,7 +521,7 @@ int access_key_secret_key_parser(void *v_s, char *str, char *aa, struct ptr_arra int access_log_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct access_log *s = v_s; int aret = 0; - if ((aret = strcmp(str, "IsEnabled")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IsEnabled")) == 0 || aret == '=' || aret == '.') { s->is_set_is_enabled = 1; if (!aa || !strcasecmp(aa, "true")) { s->is_enabled = 1; @@ -527,17 +531,17 @@ int access_log_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("IsEnabled require true/false\n"); } } else - if ((aret = strcmp(str, "OsuBucketName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OsuBucketName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OsuBucketName argument missing\n"); s->osu_bucket_name = aa; // string string } else - if ((aret = strcmp(str, "OsuBucketPrefix")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OsuBucketPrefix")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OsuBucketPrefix argument missing\n"); s->osu_bucket_prefix = aa; // string string } else - if ((aret = strcmp(str, "PublicationInterval")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PublicationInterval")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicationInterval argument missing\n"); s->is_set_publication_interval = 1; s->publication_interval = atoi(aa); @@ -552,12 +556,12 @@ int access_log_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int account_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct account *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = strcmp(str, "AdditionalEmails")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AdditionalEmails")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -581,71 +585,71 @@ int account_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "AdditionalEmails argument missing\n"); s->additional_emails_str = aa; } - } else if (!(aret = strcmp(str, "AdditionalEmails[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "AdditionalEmails[]")) || aret == '=') { TRY(!aa, "AdditionalEmails[] argument missing\n"); SET_NEXT(s->additional_emails, (aa), pa); } else - if ((aret = strcmp(str, "City")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "City")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "City argument missing\n"); s->city = aa; // string string } else - if ((aret = strcmp(str, "CompanyName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CompanyName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CompanyName argument missing\n"); s->company_name = aa; // string string } else - if ((aret = strcmp(str, "Country")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Country")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Country argument missing\n"); s->country = aa; // string string } else - if ((aret = strcmp(str, "CustomerId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CustomerId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CustomerId argument missing\n"); s->customer_id = aa; // string string } else - if ((aret = strcmp(str, "Email")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Email")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Email argument missing\n"); s->email = aa; // string string } else - if ((aret = strcmp(str, "FirstName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "FirstName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "FirstName argument missing\n"); s->first_name = aa; // string string } else - if ((aret = strcmp(str, "JobTitle")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "JobTitle")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "JobTitle argument missing\n"); s->job_title = aa; // string string } else - if ((aret = strcmp(str, "LastName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LastName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LastName argument missing\n"); s->last_name = aa; // string string } else - if ((aret = strcmp(str, "MobileNumber")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "MobileNumber")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "MobileNumber argument missing\n"); s->mobile_number = aa; // string string } else - if ((aret = strcmp(str, "PhoneNumber")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PhoneNumber")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PhoneNumber argument missing\n"); s->phone_number = aa; // string string } else - if ((aret = strcmp(str, "StateProvince")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "StateProvince")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "StateProvince argument missing\n"); s->state_province = aa; // string string } else - if ((aret = strcmp(str, "VatNumber")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VatNumber")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VatNumber argument missing\n"); s->vat_number = aa; // string string } else - if ((aret = strcmp(str, "ZipCode")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ZipCode")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ZipCode argument missing\n"); s->zip_code = aa; // string string @@ -660,12 +664,12 @@ int account_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int api_access_policy_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct api_access_policy *s = v_s; int aret = 0; - if ((aret = strcmp(str, "MaxAccessKeyExpirationSeconds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "MaxAccessKeyExpirationSeconds")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "MaxAccessKeyExpirationSeconds argument missing\n"); s->is_set_max_access_key_expiration_seconds = 1; s->max_access_key_expiration_seconds = atoi(aa); } else - if ((aret = strcmp(str, "RequireTrustedEnv")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RequireTrustedEnv")) == 0 || aret == '=' || aret == '.') { s->is_set_require_trusted_env = 1; if (!aa || !strcasecmp(aa, "true")) { s->require_trusted_env = 1; @@ -685,12 +689,12 @@ int api_access_policy_parser(void *v_s, char *str, char *aa, struct ptr_array *p int api_access_rule_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct api_access_rule *s = v_s; int aret = 0; - if ((aret = strcmp(str, "ApiAccessRuleId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ApiAccessRuleId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ApiAccessRuleId argument missing\n"); s->api_access_rule_id = aa; // string string } else - if ((aret = strcmp(str, "CaIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CaIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -714,11 +718,11 @@ int api_access_rule_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "CaIds argument missing\n"); s->ca_ids_str = aa; } - } else if (!(aret = strcmp(str, "CaIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "CaIds[]")) || aret == '=') { TRY(!aa, "CaIds[] argument missing\n"); SET_NEXT(s->ca_ids, (aa), pa); } else - if ((aret = strcmp(str, "Cns")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Cns")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -742,16 +746,16 @@ int api_access_rule_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "Cns argument missing\n"); s->cns_str = aa; } - } else if (!(aret = strcmp(str, "Cns[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Cns[]")) || aret == '=') { TRY(!aa, "Cns[] argument missing\n"); SET_NEXT(s->cns, (aa), pa); } else - if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = strcmp(str, "IpRanges")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IpRanges")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -775,7 +779,7 @@ int api_access_rule_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "IpRanges argument missing\n"); s->ip_ranges_str = aa; } - } else if (!(aret = strcmp(str, "IpRanges[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "IpRanges[]")) || aret == '=') { TRY(!aa, "IpRanges[] argument missing\n"); SET_NEXT(s->ip_ranges, (aa), pa); } else @@ -789,12 +793,12 @@ int api_access_rule_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int application_sticky_cookie_policy_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct application_sticky_cookie_policy *s = v_s; int aret = 0; - if ((aret = strcmp(str, "CookieName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CookieName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CookieName argument missing\n"); s->cookie_name = aa; // string string } else - if ((aret = strcmp(str, "PolicyName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PolicyName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PolicyName argument missing\n"); s->policy_name = aa; // string string @@ -809,22 +813,22 @@ int application_sticky_cookie_policy_parser(void *v_s, char *str, char *aa, stru int backend_vm_health_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct backend_vm_health *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "StateReason")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "StateReason")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "StateReason argument missing\n"); s->state_reason = aa; // string string } else - if ((aret = strcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmId argument missing\n"); s->vm_id = aa; // string string @@ -839,7 +843,7 @@ int backend_vm_health_parser(void *v_s, char *str, char *aa, struct ptr_array *p int block_device_mapping_created_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct block_device_mapping_created *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Bsu")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Bsu")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "Bsu argument missing\n"); @@ -856,7 +860,7 @@ int block_device_mapping_created_parser(void *v_s, char *str, char *aa, struct p s->bsu_str = aa; } } else - if ((aret = strcmp(str, "DeviceName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DeviceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DeviceName argument missing\n"); s->device_name = aa; // string string @@ -871,7 +875,7 @@ int block_device_mapping_created_parser(void *v_s, char *str, char *aa, struct p int block_device_mapping_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct block_device_mapping_image *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Bsu")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Bsu")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "Bsu argument missing\n"); @@ -888,12 +892,12 @@ int block_device_mapping_image_parser(void *v_s, char *str, char *aa, struct ptr s->bsu_str = aa; } } else - if ((aret = strcmp(str, "DeviceName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DeviceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DeviceName argument missing\n"); s->device_name = aa; // string string } else - if ((aret = strcmp(str, "VirtualDeviceName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VirtualDeviceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VirtualDeviceName argument missing\n"); s->virtual_device_name = aa; // string string @@ -908,7 +912,7 @@ int block_device_mapping_image_parser(void *v_s, char *str, char *aa, struct ptr int block_device_mapping_vm_creation_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct block_device_mapping_vm_creation *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Bsu")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Bsu")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "Bsu argument missing\n"); @@ -925,17 +929,17 @@ int block_device_mapping_vm_creation_parser(void *v_s, char *str, char *aa, stru s->bsu_str = aa; } } else - if ((aret = strcmp(str, "DeviceName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DeviceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DeviceName argument missing\n"); s->device_name = aa; // string string } else - if ((aret = strcmp(str, "NoDevice")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NoDevice")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NoDevice argument missing\n"); s->no_device = aa; // string string } else - if ((aret = strcmp(str, "VirtualDeviceName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VirtualDeviceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VirtualDeviceName argument missing\n"); s->virtual_device_name = aa; // string string @@ -950,7 +954,7 @@ int block_device_mapping_vm_creation_parser(void *v_s, char *str, char *aa, stru int block_device_mapping_vm_update_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct block_device_mapping_vm_update *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Bsu")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Bsu")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "Bsu argument missing\n"); @@ -967,17 +971,17 @@ int block_device_mapping_vm_update_parser(void *v_s, char *str, char *aa, struct s->bsu_str = aa; } } else - if ((aret = strcmp(str, "DeviceName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DeviceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DeviceName argument missing\n"); s->device_name = aa; // string string } else - if ((aret = strcmp(str, "NoDevice")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NoDevice")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NoDevice argument missing\n"); s->no_device = aa; // string string } else - if ((aret = strcmp(str, "VirtualDeviceName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VirtualDeviceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VirtualDeviceName argument missing\n"); s->virtual_device_name = aa; // string string @@ -992,7 +996,7 @@ int block_device_mapping_vm_update_parser(void *v_s, char *str, char *aa, struct int bsu_created_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct bsu_created *s = v_s; int aret = 0; - if ((aret = strcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->delete_on_vm_deletion = 1; @@ -1002,17 +1006,17 @@ int bsu_created_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = strcmp(str, "LinkDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LinkDate argument missing\n"); s->link_date = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "VolumeId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VolumeId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VolumeId argument missing\n"); s->volume_id = aa; // string string @@ -1027,7 +1031,7 @@ int bsu_created_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int bsu_to_create_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct bsu_to_create *s = v_s; int aret = 0; - if ((aret = strcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->delete_on_vm_deletion = 1; @@ -1037,22 +1041,22 @@ int bsu_to_create_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = strcmp(str, "Iops")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Iops")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Iops argument missing\n"); s->is_set_iops = 1; s->iops = atoi(aa); } else - if ((aret = strcmp(str, "SnapshotId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SnapshotId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SnapshotId argument missing\n"); s->snapshot_id = aa; // string string } else - if ((aret = strcmp(str, "VolumeSize")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VolumeSize")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VolumeSize argument missing\n"); s->is_set_volume_size = 1; s->volume_size = atoi(aa); } else - if ((aret = strcmp(str, "VolumeType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VolumeType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VolumeType argument missing\n"); s->volume_type = aa; // string string @@ -1067,7 +1071,7 @@ int bsu_to_create_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int bsu_to_update_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct bsu_to_update_vm *s = v_s; int aret = 0; - if ((aret = strcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->delete_on_vm_deletion = 1; @@ -1077,7 +1081,7 @@ int bsu_to_update_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = strcmp(str, "VolumeId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VolumeId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VolumeId argument missing\n"); s->volume_id = aa; // string string @@ -1092,17 +1096,17 @@ int bsu_to_update_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa int ca_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct ca *s = v_s; int aret = 0; - if ((aret = strcmp(str, "CaFingerprint")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CaFingerprint")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CaFingerprint argument missing\n"); s->ca_fingerprint = aa; // string string } else - if ((aret = strcmp(str, "CaId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CaId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CaId argument missing\n"); s->ca_id = aa; // string string } else - if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string @@ -1117,7 +1121,7 @@ int ca_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int catalog_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct catalog *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Entries")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Entries")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -1152,42 +1156,42 @@ int catalog_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int catalog_entry_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct catalog_entry *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Category")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Category")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Category argument missing\n"); s->category = aa; // string string } else - if ((aret = strcmp(str, "Flags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Flags")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Flags argument missing\n"); s->flags = aa; // string string } else - if ((aret = strcmp(str, "Operation")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Operation")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Operation argument missing\n"); s->operation = aa; // string string } else - if ((aret = strcmp(str, "Service")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Service")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Service argument missing\n"); s->service = aa; // string string } else - if ((aret = strcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubregionName argument missing\n"); s->subregion_name = aa; // string string } else - if ((aret = strcmp(str, "Title")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Title")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Title argument missing\n"); s->title = aa; // string string } else - if ((aret = strcmp(str, "Type")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Type")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Type argument missing\n"); s->type = aa; // string string } else - if ((aret = strcmp(str, "UnitPrice")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "UnitPrice")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "UnitPrice argument missing\n"); s->is_set_unit_price = 1; s->unit_price = atof(aa); @@ -1202,7 +1206,7 @@ int catalog_entry_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int catalogs_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct catalogs *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Entries")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Entries")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -1227,17 +1231,17 @@ int catalogs_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->entries_str = aa; // array ref CatalogEntry ref } } else - if ((aret = strcmp(str, "FromDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "FromDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "FromDate argument missing\n"); s->from_date = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "ToDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ToDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ToDate argument missing\n"); s->to_date = aa; // string string @@ -1252,32 +1256,32 @@ int catalogs_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int client_gateway_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct client_gateway *s = v_s; int aret = 0; - if ((aret = strcmp(str, "BgpAsn")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BgpAsn")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "BgpAsn argument missing\n"); s->is_set_bgp_asn = 1; s->bgp_asn = atoi(aa); } else - if ((aret = strcmp(str, "ClientGatewayId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ClientGatewayId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ClientGatewayId argument missing\n"); s->client_gateway_id = aa; // string string } else - if ((aret = strcmp(str, "ConnectionType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ConnectionType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ConnectionType argument missing\n"); s->connection_type = aa; // string string } else - if ((aret = strcmp(str, "PublicIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PublicIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIp argument missing\n"); s->public_ip = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -1312,67 +1316,67 @@ int client_gateway_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int consumption_entry_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct consumption_entry *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = strcmp(str, "Category")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Category")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Category argument missing\n"); s->category = aa; // string string } else - if ((aret = strcmp(str, "FromDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "FromDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "FromDate argument missing\n"); s->from_date = aa; // string string } else - if ((aret = strcmp(str, "Operation")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Operation")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Operation argument missing\n"); s->operation = aa; // string string } else - if ((aret = strcmp(str, "PayingAccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PayingAccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PayingAccountId argument missing\n"); s->paying_account_id = aa; // string string } else - if ((aret = strcmp(str, "Price")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Price")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Price argument missing\n"); s->is_set_price = 1; s->price = atof(aa); } else - if ((aret = strcmp(str, "Service")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Service")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Service argument missing\n"); s->service = aa; // string string } else - if ((aret = strcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubregionName argument missing\n"); s->subregion_name = aa; // string string } else - if ((aret = strcmp(str, "Title")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Title")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Title argument missing\n"); s->title = aa; // string string } else - if ((aret = strcmp(str, "ToDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ToDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ToDate argument missing\n"); s->to_date = aa; // string string } else - if ((aret = strcmp(str, "Type")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Type")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Type argument missing\n"); s->type = aa; // string string } else - if ((aret = strcmp(str, "UnitPrice")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "UnitPrice")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "UnitPrice argument missing\n"); s->is_set_unit_price = 1; s->unit_price = atof(aa); } else - if ((aret = strcmp(str, "Value")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Value")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Value argument missing\n"); s->is_set_value = 1; s->value = atof(aa); @@ -1387,27 +1391,27 @@ int consumption_entry_parser(void *v_s, char *str, char *aa, struct ptr_array *p int dedicated_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct dedicated_group *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = strcmp(str, "CpuGeneration")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CpuGeneration")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CpuGeneration argument missing\n"); s->is_set_cpu_generation = 1; s->cpu_generation = atoi(aa); } else - if ((aret = strcmp(str, "DedicatedGroupId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DedicatedGroupId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DedicatedGroupId argument missing\n"); s->dedicated_group_id = aa; // string string } else - if ((aret = strcmp(str, "Name")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Name")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Name argument missing\n"); s->name = aa; // string string } else - if ((aret = strcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -1431,16 +1435,16 @@ int dedicated_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "NetIds argument missing\n"); s->net_ids_str = aa; } - } else if (!(aret = strcmp(str, "NetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NetIds[]")) || aret == '=') { TRY(!aa, "NetIds[] argument missing\n"); SET_NEXT(s->net_ids, (aa), pa); } else - if ((aret = strcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubregionName argument missing\n"); s->subregion_name = aa; // string string } else - if ((aret = strcmp(str, "VmIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -1464,7 +1468,7 @@ int dedicated_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "VmIds argument missing\n"); s->vm_ids_str = aa; } - } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); } else @@ -1478,7 +1482,7 @@ int dedicated_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int dhcp_options_set_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct dhcp_options_set *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Default")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Default")) == 0 || aret == '=' || aret == '.') { s->is_set_default_arg = 1; if (!aa || !strcasecmp(aa, "true")) { s->default_arg = 1; @@ -1488,17 +1492,17 @@ int dhcp_options_set_parser(void *v_s, char *str, char *aa, struct ptr_array *pa BAD_RET("Default require true/false\n"); } } else - if ((aret = strcmp(str, "DhcpOptionsSetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DhcpOptionsSetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DhcpOptionsSetId argument missing\n"); s->dhcp_options_set_id = aa; // string string } else - if ((aret = strcmp(str, "DomainName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DomainName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DomainName argument missing\n"); s->domain_name = aa; // string string } else - if ((aret = strcmp(str, "DomainNameServers")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DomainNameServers")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -1522,11 +1526,11 @@ int dhcp_options_set_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "DomainNameServers argument missing\n"); s->domain_name_servers_str = aa; } - } else if (!(aret = strcmp(str, "DomainNameServers[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "DomainNameServers[]")) || aret == '=') { TRY(!aa, "DomainNameServers[] argument missing\n"); SET_NEXT(s->domain_name_servers, (aa), pa); } else - if ((aret = strcmp(str, "LogServers")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LogServers")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -1550,11 +1554,11 @@ int dhcp_options_set_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "LogServers argument missing\n"); s->log_servers_str = aa; } - } else if (!(aret = strcmp(str, "LogServers[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LogServers[]")) || aret == '=') { TRY(!aa, "LogServers[] argument missing\n"); SET_NEXT(s->log_servers, (aa), pa); } else - if ((aret = strcmp(str, "NtpServers")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NtpServers")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -1578,11 +1582,11 @@ int dhcp_options_set_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "NtpServers argument missing\n"); s->ntp_servers_str = aa; } - } else if (!(aret = strcmp(str, "NtpServers[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NtpServers[]")) || aret == '=') { TRY(!aa, "NtpServers[] argument missing\n"); SET_NEXT(s->ntp_servers, (aa), pa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -1617,37 +1621,37 @@ int dhcp_options_set_parser(void *v_s, char *str, char *aa, struct ptr_array *pa int direct_link_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct direct_link *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = strcmp(str, "Bandwidth")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Bandwidth")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Bandwidth argument missing\n"); s->bandwidth = aa; // string string } else - if ((aret = strcmp(str, "DirectLinkId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DirectLinkId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DirectLinkId argument missing\n"); s->direct_link_id = aa; // string string } else - if ((aret = strcmp(str, "DirectLinkName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DirectLinkName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DirectLinkName argument missing\n"); s->direct_link_name = aa; // string string } else - if ((aret = strcmp(str, "Location")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Location")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Location argument missing\n"); s->location = aa; // string string } else - if ((aret = strcmp(str, "RegionName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RegionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "RegionName argument missing\n"); s->region_name = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string @@ -1662,37 +1666,37 @@ int direct_link_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int direct_link_interface_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct direct_link_interface *s = v_s; int aret = 0; - if ((aret = strcmp(str, "BgpAsn")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BgpAsn")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "BgpAsn argument missing\n"); s->is_set_bgp_asn = 1; s->bgp_asn = atoi(aa); } else - if ((aret = strcmp(str, "BgpKey")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BgpKey")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "BgpKey argument missing\n"); s->bgp_key = aa; // string string } else - if ((aret = strcmp(str, "ClientPrivateIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ClientPrivateIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ClientPrivateIp argument missing\n"); s->client_private_ip = aa; // string string } else - if ((aret = strcmp(str, "DirectLinkInterfaceName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DirectLinkInterfaceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DirectLinkInterfaceName argument missing\n"); s->direct_link_interface_name = aa; // string string } else - if ((aret = strcmp(str, "OutscalePrivateIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OutscalePrivateIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OutscalePrivateIp argument missing\n"); s->outscale_private_ip = aa; // string string } else - if ((aret = strcmp(str, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VirtualGatewayId argument missing\n"); s->virtual_gateway_id = aa; // string string } else - if ((aret = strcmp(str, "Vlan")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Vlan")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Vlan argument missing\n"); s->is_set_vlan = 1; s->vlan = atoi(aa); @@ -1707,72 +1711,72 @@ int direct_link_interface_parser(void *v_s, char *str, char *aa, struct ptr_arra int direct_link_interfaces_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct direct_link_interfaces *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = strcmp(str, "BgpAsn")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BgpAsn")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "BgpAsn argument missing\n"); s->is_set_bgp_asn = 1; s->bgp_asn = atoi(aa); } else - if ((aret = strcmp(str, "BgpKey")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BgpKey")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "BgpKey argument missing\n"); s->bgp_key = aa; // string string } else - if ((aret = strcmp(str, "ClientPrivateIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ClientPrivateIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ClientPrivateIp argument missing\n"); s->client_private_ip = aa; // string string } else - if ((aret = strcmp(str, "DirectLinkId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DirectLinkId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DirectLinkId argument missing\n"); s->direct_link_id = aa; // string string } else - if ((aret = strcmp(str, "DirectLinkInterfaceId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DirectLinkInterfaceId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DirectLinkInterfaceId argument missing\n"); s->direct_link_interface_id = aa; // string string } else - if ((aret = strcmp(str, "DirectLinkInterfaceName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DirectLinkInterfaceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DirectLinkInterfaceName argument missing\n"); s->direct_link_interface_name = aa; // string string } else - if ((aret = strcmp(str, "InterfaceType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "InterfaceType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "InterfaceType argument missing\n"); s->interface_type = aa; // string string } else - if ((aret = strcmp(str, "Location")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Location")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Location argument missing\n"); s->location = aa; // string string } else - if ((aret = strcmp(str, "Mtu")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Mtu")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Mtu argument missing\n"); s->is_set_mtu = 1; s->mtu = atoi(aa); } else - if ((aret = strcmp(str, "OutscalePrivateIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OutscalePrivateIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OutscalePrivateIp argument missing\n"); s->outscale_private_ip = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VirtualGatewayId argument missing\n"); s->virtual_gateway_id = aa; // string string } else - if ((aret = strcmp(str, "Vlan")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Vlan")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Vlan argument missing\n"); s->is_set_vlan = 1; s->vlan = atoi(aa); @@ -1787,17 +1791,17 @@ int direct_link_interfaces_parser(void *v_s, char *str, char *aa, struct ptr_arr int errors_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct errors *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Code")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Code")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Code argument missing\n"); s->code = aa; // string string } else - if ((aret = strcmp(str, "Details")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Details")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Details argument missing\n"); s->details = aa; // string string } else - if ((aret = strcmp(str, "Type")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Type")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Type argument missing\n"); s->type = aa; // string string @@ -1812,7 +1816,7 @@ int errors_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int filters_access_keys_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_access_keys *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccessKeyIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccessKeyIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -1836,11 +1840,11 @@ int filters_access_keys_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "AccessKeyIds argument missing\n"); s->access_key_ids_str = aa; } - } else if (!(aret = strcmp(str, "AccessKeyIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "AccessKeyIds[]")) || aret == '=') { TRY(!aa, "AccessKeyIds[] argument missing\n"); SET_NEXT(s->access_key_ids, (aa), pa); } else - if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "States")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -1864,7 +1868,7 @@ int filters_access_keys_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "States argument missing\n"); s->states_str = aa; } - } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else @@ -1878,7 +1882,7 @@ int filters_access_keys_parser(void *v_s, char *str, char *aa, struct ptr_array int filters_api_access_rule_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_api_access_rule *s = v_s; int aret = 0; - if ((aret = strcmp(str, "ApiAccessRuleIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ApiAccessRuleIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -1902,11 +1906,11 @@ int filters_api_access_rule_parser(void *v_s, char *str, char *aa, struct ptr_ar TRY(!aa, "ApiAccessRuleIds argument missing\n"); s->api_access_rule_ids_str = aa; } - } else if (!(aret = strcmp(str, "ApiAccessRuleIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ApiAccessRuleIds[]")) || aret == '=') { TRY(!aa, "ApiAccessRuleIds[] argument missing\n"); SET_NEXT(s->api_access_rule_ids, (aa), pa); } else - if ((aret = strcmp(str, "CaIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CaIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -1930,11 +1934,11 @@ int filters_api_access_rule_parser(void *v_s, char *str, char *aa, struct ptr_ar TRY(!aa, "CaIds argument missing\n"); s->ca_ids_str = aa; } - } else if (!(aret = strcmp(str, "CaIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "CaIds[]")) || aret == '=') { TRY(!aa, "CaIds[] argument missing\n"); SET_NEXT(s->ca_ids, (aa), pa); } else - if ((aret = strcmp(str, "Cns")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Cns")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -1958,11 +1962,11 @@ int filters_api_access_rule_parser(void *v_s, char *str, char *aa, struct ptr_ar TRY(!aa, "Cns argument missing\n"); s->cns_str = aa; } - } else if (!(aret = strcmp(str, "Cns[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Cns[]")) || aret == '=') { TRY(!aa, "Cns[] argument missing\n"); SET_NEXT(s->cns, (aa), pa); } else - if ((aret = strcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -1986,11 +1990,11 @@ int filters_api_access_rule_parser(void *v_s, char *str, char *aa, struct ptr_ar TRY(!aa, "Descriptions argument missing\n"); s->descriptions_str = aa; } - } else if (!(aret = strcmp(str, "Descriptions[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Descriptions[]")) || aret == '=') { TRY(!aa, "Descriptions[] argument missing\n"); SET_NEXT(s->descriptions, (aa), pa); } else - if ((aret = strcmp(str, "IpRanges")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IpRanges")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2014,7 +2018,7 @@ int filters_api_access_rule_parser(void *v_s, char *str, char *aa, struct ptr_ar TRY(!aa, "IpRanges argument missing\n"); s->ip_ranges_str = aa; } - } else if (!(aret = strcmp(str, "IpRanges[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "IpRanges[]")) || aret == '=') { TRY(!aa, "IpRanges[] argument missing\n"); SET_NEXT(s->ip_ranges, (aa), pa); } else @@ -2028,7 +2032,7 @@ int filters_api_access_rule_parser(void *v_s, char *str, char *aa, struct ptr_ar int filters_api_log_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_api_log *s = v_s; int aret = 0; - if ((aret = strcmp(str, "QueryAccessKeys")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryAccessKeys")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2052,11 +2056,11 @@ int filters_api_log_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "QueryAccessKeys argument missing\n"); s->query_access_keys_str = aa; } - } else if (!(aret = strcmp(str, "QueryAccessKeys[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "QueryAccessKeys[]")) || aret == '=') { TRY(!aa, "QueryAccessKeys[] argument missing\n"); SET_NEXT(s->query_access_keys, (aa), pa); } else - if ((aret = strcmp(str, "QueryApiNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryApiNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2080,11 +2084,11 @@ int filters_api_log_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "QueryApiNames argument missing\n"); s->query_api_names_str = aa; } - } else if (!(aret = strcmp(str, "QueryApiNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "QueryApiNames[]")) || aret == '=') { TRY(!aa, "QueryApiNames[] argument missing\n"); SET_NEXT(s->query_api_names, (aa), pa); } else - if ((aret = strcmp(str, "QueryCallNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryCallNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2108,21 +2112,21 @@ int filters_api_log_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "QueryCallNames argument missing\n"); s->query_call_names_str = aa; } - } else if (!(aret = strcmp(str, "QueryCallNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "QueryCallNames[]")) || aret == '=') { TRY(!aa, "QueryCallNames[] argument missing\n"); SET_NEXT(s->query_call_names, (aa), pa); } else - if ((aret = strcmp(str, "QueryDateAfter")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryDateAfter")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryDateAfter argument missing\n"); s->query_date_after = aa; // string string } else - if ((aret = strcmp(str, "QueryDateBefore")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryDateBefore")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryDateBefore argument missing\n"); s->query_date_before = aa; // string string } else - if ((aret = strcmp(str, "QueryIpAddresses")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryIpAddresses")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2146,11 +2150,11 @@ int filters_api_log_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "QueryIpAddresses argument missing\n"); s->query_ip_addresses_str = aa; } - } else if (!(aret = strcmp(str, "QueryIpAddresses[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "QueryIpAddresses[]")) || aret == '=') { TRY(!aa, "QueryIpAddresses[] argument missing\n"); SET_NEXT(s->query_ip_addresses, (aa), pa); } else - if ((aret = strcmp(str, "QueryUserAgents")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryUserAgents")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2174,11 +2178,11 @@ int filters_api_log_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "QueryUserAgents argument missing\n"); s->query_user_agents_str = aa; } - } else if (!(aret = strcmp(str, "QueryUserAgents[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "QueryUserAgents[]")) || aret == '=') { TRY(!aa, "QueryUserAgents[] argument missing\n"); SET_NEXT(s->query_user_agents, (aa), pa); } else - if ((aret = strcmp(str, "RequestIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RequestIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2202,11 +2206,11 @@ int filters_api_log_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "RequestIds argument missing\n"); s->request_ids_str = aa; } - } else if (!(aret = strcmp(str, "RequestIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "RequestIds[]")) || aret == '=') { TRY(!aa, "RequestIds[] argument missing\n"); SET_NEXT(s->request_ids, (aa), pa); } else - if ((aret = strcmp(str, "ResponseStatusCodes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ResponseStatusCodes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2230,7 +2234,7 @@ int filters_api_log_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "ResponseStatusCodes argument missing\n"); s->response_status_codes_str = aa; } - } else if (!(aret = strcmp(str, "ResponseStatusCodes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ResponseStatusCodes[]")) || aret == '=') { TRY(!aa, "ResponseStatusCodes[] argument missing\n"); SET_NEXT(s->response_status_codes, atoi(aa), pa); } else @@ -2244,7 +2248,7 @@ int filters_api_log_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int filters_ca_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_ca *s = v_s; int aret = 0; - if ((aret = strcmp(str, "CaFingerprints")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CaFingerprints")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2268,11 +2272,11 @@ int filters_ca_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "CaFingerprints argument missing\n"); s->ca_fingerprints_str = aa; } - } else if (!(aret = strcmp(str, "CaFingerprints[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "CaFingerprints[]")) || aret == '=') { TRY(!aa, "CaFingerprints[] argument missing\n"); SET_NEXT(s->ca_fingerprints, (aa), pa); } else - if ((aret = strcmp(str, "CaIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CaIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2296,11 +2300,11 @@ int filters_ca_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "CaIds argument missing\n"); s->ca_ids_str = aa; } - } else if (!(aret = strcmp(str, "CaIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "CaIds[]")) || aret == '=') { TRY(!aa, "CaIds[] argument missing\n"); SET_NEXT(s->ca_ids, (aa), pa); } else - if ((aret = strcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2324,7 +2328,7 @@ int filters_ca_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "Descriptions argument missing\n"); s->descriptions_str = aa; } - } else if (!(aret = strcmp(str, "Descriptions[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Descriptions[]")) || aret == '=') { TRY(!aa, "Descriptions[] argument missing\n"); SET_NEXT(s->descriptions, (aa), pa); } else @@ -2338,7 +2342,7 @@ int filters_ca_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int filters_catalogs_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_catalogs *s = v_s; int aret = 0; - if ((aret = strcmp(str, "CurrentCatalogOnly")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CurrentCatalogOnly")) == 0 || aret == '=' || aret == '.') { s->is_set_current_catalog_only = 1; if (!aa || !strcasecmp(aa, "true")) { s->current_catalog_only = 1; @@ -2348,12 +2352,12 @@ int filters_catalogs_parser(void *v_s, char *str, char *aa, struct ptr_array *pa BAD_RET("CurrentCatalogOnly require true/false\n"); } } else - if ((aret = strcmp(str, "FromDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "FromDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "FromDate argument missing\n"); s->from_date = aa; // string string } else - if ((aret = strcmp(str, "ToDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ToDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ToDate argument missing\n"); s->to_date = aa; // string string @@ -2368,7 +2372,7 @@ int filters_catalogs_parser(void *v_s, char *str, char *aa, struct ptr_array *pa int filters_client_gateway_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_client_gateway *s = v_s; int aret = 0; - if ((aret = strcmp(str, "BgpAsns")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BgpAsns")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2392,11 +2396,11 @@ int filters_client_gateway_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "BgpAsns argument missing\n"); s->bgp_asns_str = aa; } - } else if (!(aret = strcmp(str, "BgpAsns[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "BgpAsns[]")) || aret == '=') { TRY(!aa, "BgpAsns[] argument missing\n"); SET_NEXT(s->bgp_asns, atoi(aa), pa); } else - if ((aret = strcmp(str, "ClientGatewayIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ClientGatewayIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2420,11 +2424,11 @@ int filters_client_gateway_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "ClientGatewayIds argument missing\n"); s->client_gateway_ids_str = aa; } - } else if (!(aret = strcmp(str, "ClientGatewayIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ClientGatewayIds[]")) || aret == '=') { TRY(!aa, "ClientGatewayIds[] argument missing\n"); SET_NEXT(s->client_gateway_ids, (aa), pa); } else - if ((aret = strcmp(str, "ConnectionTypes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ConnectionTypes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2448,11 +2452,11 @@ int filters_client_gateway_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "ConnectionTypes argument missing\n"); s->connection_types_str = aa; } - } else if (!(aret = strcmp(str, "ConnectionTypes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ConnectionTypes[]")) || aret == '=') { TRY(!aa, "ConnectionTypes[] argument missing\n"); SET_NEXT(s->connection_types, (aa), pa); } else - if ((aret = strcmp(str, "PublicIps")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PublicIps")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2476,11 +2480,11 @@ int filters_client_gateway_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "PublicIps argument missing\n"); s->public_ips_str = aa; } - } else if (!(aret = strcmp(str, "PublicIps[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "PublicIps[]")) || aret == '=') { TRY(!aa, "PublicIps[] argument missing\n"); SET_NEXT(s->public_ips, (aa), pa); } else - if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "States")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2504,11 +2508,11 @@ int filters_client_gateway_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "States argument missing\n"); s->states_str = aa; } - } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2532,11 +2536,11 @@ int filters_client_gateway_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "TagKeys argument missing\n"); s->tag_keys_str = aa; } - } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2560,11 +2564,11 @@ int filters_client_gateway_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "TagValues argument missing\n"); s->tag_values_str = aa; } - } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2588,7 +2592,7 @@ int filters_client_gateway_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "Tags argument missing\n"); s->tags_str = aa; } - } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else @@ -2602,7 +2606,7 @@ int filters_client_gateway_parser(void *v_s, char *str, char *aa, struct ptr_arr int filters_dedicated_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_dedicated_group *s = v_s; int aret = 0; - if ((aret = strcmp(str, "CpuGenerations")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CpuGenerations")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2626,11 +2630,11 @@ int filters_dedicated_group_parser(void *v_s, char *str, char *aa, struct ptr_ar TRY(!aa, "CpuGenerations argument missing\n"); s->cpu_generations_str = aa; } - } else if (!(aret = strcmp(str, "CpuGenerations[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "CpuGenerations[]")) || aret == '=') { TRY(!aa, "CpuGenerations[] argument missing\n"); SET_NEXT(s->cpu_generations, atoi(aa), pa); } else - if ((aret = strcmp(str, "DedicatedGroupIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DedicatedGroupIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2654,11 +2658,11 @@ int filters_dedicated_group_parser(void *v_s, char *str, char *aa, struct ptr_ar TRY(!aa, "DedicatedGroupIds argument missing\n"); s->dedicated_group_ids_str = aa; } - } else if (!(aret = strcmp(str, "DedicatedGroupIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "DedicatedGroupIds[]")) || aret == '=') { TRY(!aa, "DedicatedGroupIds[] argument missing\n"); SET_NEXT(s->dedicated_group_ids, (aa), pa); } else - if ((aret = strcmp(str, "Names")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Names")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2682,11 +2686,11 @@ int filters_dedicated_group_parser(void *v_s, char *str, char *aa, struct ptr_ar TRY(!aa, "Names argument missing\n"); s->names_str = aa; } - } else if (!(aret = strcmp(str, "Names[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Names[]")) || aret == '=') { TRY(!aa, "Names[] argument missing\n"); SET_NEXT(s->names, (aa), pa); } else - if ((aret = strcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2710,7 +2714,7 @@ int filters_dedicated_group_parser(void *v_s, char *str, char *aa, struct ptr_ar TRY(!aa, "SubregionNames argument missing\n"); s->subregion_names_str = aa; } - } else if (!(aret = strcmp(str, "SubregionNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SubregionNames[]")) || aret == '=') { TRY(!aa, "SubregionNames[] argument missing\n"); SET_NEXT(s->subregion_names, (aa), pa); } else @@ -2724,7 +2728,7 @@ int filters_dedicated_group_parser(void *v_s, char *str, char *aa, struct ptr_ar int filters_dhcp_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_dhcp_options *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Default")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Default")) == 0 || aret == '=' || aret == '.') { s->is_set_default_arg = 1; if (!aa || !strcasecmp(aa, "true")) { s->default_arg = 1; @@ -2734,7 +2738,7 @@ int filters_dhcp_options_parser(void *v_s, char *str, char *aa, struct ptr_array BAD_RET("Default require true/false\n"); } } else - if ((aret = strcmp(str, "DhcpOptionsSetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DhcpOptionsSetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2758,11 +2762,11 @@ int filters_dhcp_options_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "DhcpOptionsSetIds argument missing\n"); s->dhcp_options_set_ids_str = aa; } - } else if (!(aret = strcmp(str, "DhcpOptionsSetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "DhcpOptionsSetIds[]")) || aret == '=') { TRY(!aa, "DhcpOptionsSetIds[] argument missing\n"); SET_NEXT(s->dhcp_options_set_ids, (aa), pa); } else - if ((aret = strcmp(str, "DomainNameServers")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DomainNameServers")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2786,11 +2790,11 @@ int filters_dhcp_options_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "DomainNameServers argument missing\n"); s->domain_name_servers_str = aa; } - } else if (!(aret = strcmp(str, "DomainNameServers[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "DomainNameServers[]")) || aret == '=') { TRY(!aa, "DomainNameServers[] argument missing\n"); SET_NEXT(s->domain_name_servers, (aa), pa); } else - if ((aret = strcmp(str, "DomainNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DomainNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2814,11 +2818,11 @@ int filters_dhcp_options_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "DomainNames argument missing\n"); s->domain_names_str = aa; } - } else if (!(aret = strcmp(str, "DomainNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "DomainNames[]")) || aret == '=') { TRY(!aa, "DomainNames[] argument missing\n"); SET_NEXT(s->domain_names, (aa), pa); } else - if ((aret = strcmp(str, "LogServers")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LogServers")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2842,11 +2846,11 @@ int filters_dhcp_options_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "LogServers argument missing\n"); s->log_servers_str = aa; } - } else if (!(aret = strcmp(str, "LogServers[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LogServers[]")) || aret == '=') { TRY(!aa, "LogServers[] argument missing\n"); SET_NEXT(s->log_servers, (aa), pa); } else - if ((aret = strcmp(str, "NtpServers")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NtpServers")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2870,11 +2874,11 @@ int filters_dhcp_options_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "NtpServers argument missing\n"); s->ntp_servers_str = aa; } - } else if (!(aret = strcmp(str, "NtpServers[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NtpServers[]")) || aret == '=') { TRY(!aa, "NtpServers[] argument missing\n"); SET_NEXT(s->ntp_servers, (aa), pa); } else - if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2898,11 +2902,11 @@ int filters_dhcp_options_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "TagKeys argument missing\n"); s->tag_keys_str = aa; } - } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2926,11 +2930,11 @@ int filters_dhcp_options_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "TagValues argument missing\n"); s->tag_values_str = aa; } - } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2954,7 +2958,7 @@ int filters_dhcp_options_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "Tags argument missing\n"); s->tags_str = aa; } - } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else @@ -2968,7 +2972,7 @@ int filters_dhcp_options_parser(void *v_s, char *str, char *aa, struct ptr_array int filters_direct_link_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_direct_link *s = v_s; int aret = 0; - if ((aret = strcmp(str, "DirectLinkIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DirectLinkIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -2992,7 +2996,7 @@ int filters_direct_link_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "DirectLinkIds argument missing\n"); s->direct_link_ids_str = aa; } - } else if (!(aret = strcmp(str, "DirectLinkIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "DirectLinkIds[]")) || aret == '=') { TRY(!aa, "DirectLinkIds[] argument missing\n"); SET_NEXT(s->direct_link_ids, (aa), pa); } else @@ -3006,7 +3010,7 @@ int filters_direct_link_parser(void *v_s, char *str, char *aa, struct ptr_array int filters_direct_link_interface_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_direct_link_interface *s = v_s; int aret = 0; - if ((aret = strcmp(str, "DirectLinkIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DirectLinkIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3030,11 +3034,11 @@ int filters_direct_link_interface_parser(void *v_s, char *str, char *aa, struct TRY(!aa, "DirectLinkIds argument missing\n"); s->direct_link_ids_str = aa; } - } else if (!(aret = strcmp(str, "DirectLinkIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "DirectLinkIds[]")) || aret == '=') { TRY(!aa, "DirectLinkIds[] argument missing\n"); SET_NEXT(s->direct_link_ids, (aa), pa); } else - if ((aret = strcmp(str, "DirectLinkInterfaceIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DirectLinkInterfaceIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3058,7 +3062,7 @@ int filters_direct_link_interface_parser(void *v_s, char *str, char *aa, struct TRY(!aa, "DirectLinkInterfaceIds argument missing\n"); s->direct_link_interface_ids_str = aa; } - } else if (!(aret = strcmp(str, "DirectLinkInterfaceIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "DirectLinkInterfaceIds[]")) || aret == '=') { TRY(!aa, "DirectLinkInterfaceIds[] argument missing\n"); SET_NEXT(s->direct_link_interface_ids, (aa), pa); } else @@ -3072,7 +3076,7 @@ int filters_direct_link_interface_parser(void *v_s, char *str, char *aa, struct int filters_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_export_task *s = v_s; int aret = 0; - if ((aret = strcmp(str, "TaskIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TaskIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3096,7 +3100,7 @@ int filters_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "TaskIds argument missing\n"); s->task_ids_str = aa; } - } else if (!(aret = strcmp(str, "TaskIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TaskIds[]")) || aret == '=') { TRY(!aa, "TaskIds[] argument missing\n"); SET_NEXT(s->task_ids, (aa), pa); } else @@ -3110,7 +3114,7 @@ int filters_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array int filters_flexible_gpu_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_flexible_gpu *s = v_s; int aret = 0; - if ((aret = strcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->delete_on_vm_deletion = 1; @@ -3120,7 +3124,7 @@ int filters_flexible_gpu_parser(void *v_s, char *str, char *aa, struct ptr_array BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = strcmp(str, "FlexibleGpuIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "FlexibleGpuIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3144,11 +3148,11 @@ int filters_flexible_gpu_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "FlexibleGpuIds argument missing\n"); s->flexible_gpu_ids_str = aa; } - } else if (!(aret = strcmp(str, "FlexibleGpuIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "FlexibleGpuIds[]")) || aret == '=') { TRY(!aa, "FlexibleGpuIds[] argument missing\n"); SET_NEXT(s->flexible_gpu_ids, (aa), pa); } else - if ((aret = strcmp(str, "Generations")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Generations")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3172,11 +3176,11 @@ int filters_flexible_gpu_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "Generations argument missing\n"); s->generations_str = aa; } - } else if (!(aret = strcmp(str, "Generations[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Generations[]")) || aret == '=') { TRY(!aa, "Generations[] argument missing\n"); SET_NEXT(s->generations, (aa), pa); } else - if ((aret = strcmp(str, "ModelNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ModelNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3200,11 +3204,11 @@ int filters_flexible_gpu_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "ModelNames argument missing\n"); s->model_names_str = aa; } - } else if (!(aret = strcmp(str, "ModelNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ModelNames[]")) || aret == '=') { TRY(!aa, "ModelNames[] argument missing\n"); SET_NEXT(s->model_names, (aa), pa); } else - if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "States")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3228,11 +3232,11 @@ int filters_flexible_gpu_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "States argument missing\n"); s->states_str = aa; } - } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = strcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3256,11 +3260,11 @@ int filters_flexible_gpu_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "SubregionNames argument missing\n"); s->subregion_names_str = aa; } - } else if (!(aret = strcmp(str, "SubregionNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SubregionNames[]")) || aret == '=') { TRY(!aa, "SubregionNames[] argument missing\n"); SET_NEXT(s->subregion_names, (aa), pa); } else - if ((aret = strcmp(str, "VmIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3284,7 +3288,7 @@ int filters_flexible_gpu_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "VmIds argument missing\n"); s->vm_ids_str = aa; } - } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); } else @@ -3298,7 +3302,7 @@ int filters_flexible_gpu_parser(void *v_s, char *str, char *aa, struct ptr_array int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_image *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccountAliases")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountAliases")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3322,11 +3326,11 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "AccountAliases argument missing\n"); s->account_aliases_str = aa; } - } else if (!(aret = strcmp(str, "AccountAliases[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "AccountAliases[]")) || aret == '=') { TRY(!aa, "AccountAliases[] argument missing\n"); SET_NEXT(s->account_aliases, (aa), pa); } else - if ((aret = strcmp(str, "AccountIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3350,11 +3354,11 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "AccountIds argument missing\n"); s->account_ids_str = aa; } - } else if (!(aret = strcmp(str, "AccountIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "AccountIds[]")) || aret == '=') { TRY(!aa, "AccountIds[] argument missing\n"); SET_NEXT(s->account_ids, (aa), pa); } else - if ((aret = strcmp(str, "Architectures")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Architectures")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3378,11 +3382,11 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "Architectures argument missing\n"); s->architectures_str = aa; } - } else if (!(aret = strcmp(str, "Architectures[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Architectures[]")) || aret == '=') { TRY(!aa, "Architectures[] argument missing\n"); SET_NEXT(s->architectures, (aa), pa); } else - if ((aret = strcmp(str, "BlockDeviceMappingDeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BlockDeviceMappingDeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_block_device_mapping_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->block_device_mapping_delete_on_vm_deletion = 1; @@ -3392,7 +3396,7 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("BlockDeviceMappingDeleteOnVmDeletion require true/false\n"); } } else - if ((aret = strcmp(str, "BlockDeviceMappingDeviceNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BlockDeviceMappingDeviceNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3416,11 +3420,11 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "BlockDeviceMappingDeviceNames argument missing\n"); s->block_device_mapping_device_names_str = aa; } - } else if (!(aret = strcmp(str, "BlockDeviceMappingDeviceNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "BlockDeviceMappingDeviceNames[]")) || aret == '=') { TRY(!aa, "BlockDeviceMappingDeviceNames[] argument missing\n"); SET_NEXT(s->block_device_mapping_device_names, (aa), pa); } else - if ((aret = strcmp(str, "BlockDeviceMappingSnapshotIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BlockDeviceMappingSnapshotIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3444,11 +3448,11 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "BlockDeviceMappingSnapshotIds argument missing\n"); s->block_device_mapping_snapshot_ids_str = aa; } - } else if (!(aret = strcmp(str, "BlockDeviceMappingSnapshotIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "BlockDeviceMappingSnapshotIds[]")) || aret == '=') { TRY(!aa, "BlockDeviceMappingSnapshotIds[] argument missing\n"); SET_NEXT(s->block_device_mapping_snapshot_ids, (aa), pa); } else - if ((aret = strcmp(str, "BlockDeviceMappingVolumeSizes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BlockDeviceMappingVolumeSizes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3472,11 +3476,11 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "BlockDeviceMappingVolumeSizes argument missing\n"); s->block_device_mapping_volume_sizes_str = aa; } - } else if (!(aret = strcmp(str, "BlockDeviceMappingVolumeSizes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "BlockDeviceMappingVolumeSizes[]")) || aret == '=') { TRY(!aa, "BlockDeviceMappingVolumeSizes[] argument missing\n"); SET_NEXT(s->block_device_mapping_volume_sizes, atoi(aa), pa); } else - if ((aret = strcmp(str, "BlockDeviceMappingVolumeTypes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BlockDeviceMappingVolumeTypes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3500,11 +3504,11 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "BlockDeviceMappingVolumeTypes argument missing\n"); s->block_device_mapping_volume_types_str = aa; } - } else if (!(aret = strcmp(str, "BlockDeviceMappingVolumeTypes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "BlockDeviceMappingVolumeTypes[]")) || aret == '=') { TRY(!aa, "BlockDeviceMappingVolumeTypes[] argument missing\n"); SET_NEXT(s->block_device_mapping_volume_types, (aa), pa); } else - if ((aret = strcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3528,11 +3532,11 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "Descriptions argument missing\n"); s->descriptions_str = aa; } - } else if (!(aret = strcmp(str, "Descriptions[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Descriptions[]")) || aret == '=') { TRY(!aa, "Descriptions[] argument missing\n"); SET_NEXT(s->descriptions, (aa), pa); } else - if ((aret = strcmp(str, "FileLocations")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "FileLocations")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3556,11 +3560,11 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "FileLocations argument missing\n"); s->file_locations_str = aa; } - } else if (!(aret = strcmp(str, "FileLocations[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "FileLocations[]")) || aret == '=') { TRY(!aa, "FileLocations[] argument missing\n"); SET_NEXT(s->file_locations, (aa), pa); } else - if ((aret = strcmp(str, "Hypervisors")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Hypervisors")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3584,11 +3588,11 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "Hypervisors argument missing\n"); s->hypervisors_str = aa; } - } else if (!(aret = strcmp(str, "Hypervisors[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Hypervisors[]")) || aret == '=') { TRY(!aa, "Hypervisors[] argument missing\n"); SET_NEXT(s->hypervisors, (aa), pa); } else - if ((aret = strcmp(str, "ImageIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ImageIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3612,11 +3616,11 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "ImageIds argument missing\n"); s->image_ids_str = aa; } - } else if (!(aret = strcmp(str, "ImageIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ImageIds[]")) || aret == '=') { TRY(!aa, "ImageIds[] argument missing\n"); SET_NEXT(s->image_ids, (aa), pa); } else - if ((aret = strcmp(str, "ImageNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ImageNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3640,11 +3644,11 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "ImageNames argument missing\n"); s->image_names_str = aa; } - } else if (!(aret = strcmp(str, "ImageNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ImageNames[]")) || aret == '=') { TRY(!aa, "ImageNames[] argument missing\n"); SET_NEXT(s->image_names, (aa), pa); } else - if ((aret = strcmp(str, "PermissionsToLaunchAccountIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PermissionsToLaunchAccountIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3668,11 +3672,11 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "PermissionsToLaunchAccountIds argument missing\n"); s->permissions_to_launch_account_ids_str = aa; } - } else if (!(aret = strcmp(str, "PermissionsToLaunchAccountIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "PermissionsToLaunchAccountIds[]")) || aret == '=') { TRY(!aa, "PermissionsToLaunchAccountIds[] argument missing\n"); SET_NEXT(s->permissions_to_launch_account_ids, (aa), pa); } else - if ((aret = strcmp(str, "PermissionsToLaunchGlobalPermission")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PermissionsToLaunchGlobalPermission")) == 0 || aret == '=' || aret == '.') { s->is_set_permissions_to_launch_global_permission = 1; if (!aa || !strcasecmp(aa, "true")) { s->permissions_to_launch_global_permission = 1; @@ -3682,7 +3686,7 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("PermissionsToLaunchGlobalPermission require true/false\n"); } } else - if ((aret = strcmp(str, "ProductCodeNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ProductCodeNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3706,11 +3710,11 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "ProductCodeNames argument missing\n"); s->product_code_names_str = aa; } - } else if (!(aret = strcmp(str, "ProductCodeNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ProductCodeNames[]")) || aret == '=') { TRY(!aa, "ProductCodeNames[] argument missing\n"); SET_NEXT(s->product_code_names, (aa), pa); } else - if ((aret = strcmp(str, "ProductCodes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ProductCodes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3734,11 +3738,11 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "ProductCodes argument missing\n"); s->product_codes_str = aa; } - } else if (!(aret = strcmp(str, "ProductCodes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ProductCodes[]")) || aret == '=') { TRY(!aa, "ProductCodes[] argument missing\n"); SET_NEXT(s->product_codes, (aa), pa); } else - if ((aret = strcmp(str, "RootDeviceNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RootDeviceNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3762,11 +3766,11 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "RootDeviceNames argument missing\n"); s->root_device_names_str = aa; } - } else if (!(aret = strcmp(str, "RootDeviceNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "RootDeviceNames[]")) || aret == '=') { TRY(!aa, "RootDeviceNames[] argument missing\n"); SET_NEXT(s->root_device_names, (aa), pa); } else - if ((aret = strcmp(str, "RootDeviceTypes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RootDeviceTypes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3790,11 +3794,11 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "RootDeviceTypes argument missing\n"); s->root_device_types_str = aa; } - } else if (!(aret = strcmp(str, "RootDeviceTypes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "RootDeviceTypes[]")) || aret == '=') { TRY(!aa, "RootDeviceTypes[] argument missing\n"); SET_NEXT(s->root_device_types, (aa), pa); } else - if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "States")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3818,11 +3822,11 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "States argument missing\n"); s->states_str = aa; } - } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3846,11 +3850,11 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "TagKeys argument missing\n"); s->tag_keys_str = aa; } - } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3874,11 +3878,11 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "TagValues argument missing\n"); s->tag_values_str = aa; } - } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3902,11 +3906,11 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "Tags argument missing\n"); s->tags_str = aa; } - } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else - if ((aret = strcmp(str, "VirtualizationTypes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VirtualizationTypes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3930,7 +3934,7 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "VirtualizationTypes argument missing\n"); s->virtualization_types_str = aa; } - } else if (!(aret = strcmp(str, "VirtualizationTypes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VirtualizationTypes[]")) || aret == '=') { TRY(!aa, "VirtualizationTypes[] argument missing\n"); SET_NEXT(s->virtualization_types, (aa), pa); } else @@ -3944,7 +3948,7 @@ int filters_image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int filters_internet_service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_internet_service *s = v_s; int aret = 0; - if ((aret = strcmp(str, "InternetServiceIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "InternetServiceIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3968,11 +3972,11 @@ int filters_internet_service_parser(void *v_s, char *str, char *aa, struct ptr_a TRY(!aa, "InternetServiceIds argument missing\n"); s->internet_service_ids_str = aa; } - } else if (!(aret = strcmp(str, "InternetServiceIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "InternetServiceIds[]")) || aret == '=') { TRY(!aa, "InternetServiceIds[] argument missing\n"); SET_NEXT(s->internet_service_ids, (aa), pa); } else - if ((aret = strcmp(str, "LinkNetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkNetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -3996,11 +4000,11 @@ int filters_internet_service_parser(void *v_s, char *str, char *aa, struct ptr_a TRY(!aa, "LinkNetIds argument missing\n"); s->link_net_ids_str = aa; } - } else if (!(aret = strcmp(str, "LinkNetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LinkNetIds[]")) || aret == '=') { TRY(!aa, "LinkNetIds[] argument missing\n"); SET_NEXT(s->link_net_ids, (aa), pa); } else - if ((aret = strcmp(str, "LinkStates")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkStates")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4024,11 +4028,11 @@ int filters_internet_service_parser(void *v_s, char *str, char *aa, struct ptr_a TRY(!aa, "LinkStates argument missing\n"); s->link_states_str = aa; } - } else if (!(aret = strcmp(str, "LinkStates[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LinkStates[]")) || aret == '=') { TRY(!aa, "LinkStates[] argument missing\n"); SET_NEXT(s->link_states, (aa), pa); } else - if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4052,11 +4056,11 @@ int filters_internet_service_parser(void *v_s, char *str, char *aa, struct ptr_a TRY(!aa, "TagKeys argument missing\n"); s->tag_keys_str = aa; } - } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4080,11 +4084,11 @@ int filters_internet_service_parser(void *v_s, char *str, char *aa, struct ptr_a TRY(!aa, "TagValues argument missing\n"); s->tag_values_str = aa; } - } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4108,7 +4112,7 @@ int filters_internet_service_parser(void *v_s, char *str, char *aa, struct ptr_a TRY(!aa, "Tags argument missing\n"); s->tags_str = aa; } - } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else @@ -4122,7 +4126,7 @@ int filters_internet_service_parser(void *v_s, char *str, char *aa, struct ptr_a int filters_keypair_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_keypair *s = v_s; int aret = 0; - if ((aret = strcmp(str, "KeypairFingerprints")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "KeypairFingerprints")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4146,11 +4150,11 @@ int filters_keypair_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "KeypairFingerprints argument missing\n"); s->keypair_fingerprints_str = aa; } - } else if (!(aret = strcmp(str, "KeypairFingerprints[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "KeypairFingerprints[]")) || aret == '=') { TRY(!aa, "KeypairFingerprints[] argument missing\n"); SET_NEXT(s->keypair_fingerprints, (aa), pa); } else - if ((aret = strcmp(str, "KeypairNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "KeypairNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4174,11 +4178,11 @@ int filters_keypair_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "KeypairNames argument missing\n"); s->keypair_names_str = aa; } - } else if (!(aret = strcmp(str, "KeypairNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "KeypairNames[]")) || aret == '=') { TRY(!aa, "KeypairNames[] argument missing\n"); SET_NEXT(s->keypair_names, (aa), pa); } else - if ((aret = strcmp(str, "KeypairTypes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "KeypairTypes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4202,7 +4206,7 @@ int filters_keypair_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "KeypairTypes argument missing\n"); s->keypair_types_str = aa; } - } else if (!(aret = strcmp(str, "KeypairTypes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "KeypairTypes[]")) || aret == '=') { TRY(!aa, "KeypairTypes[] argument missing\n"); SET_NEXT(s->keypair_types, (aa), pa); } else @@ -4216,7 +4220,7 @@ int filters_keypair_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int filters_listener_rule_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_listener_rule *s = v_s; int aret = 0; - if ((aret = strcmp(str, "ListenerRuleNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ListenerRuleNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4240,7 +4244,7 @@ int filters_listener_rule_parser(void *v_s, char *str, char *aa, struct ptr_arra TRY(!aa, "ListenerRuleNames argument missing\n"); s->listener_rule_names_str = aa; } - } else if (!(aret = strcmp(str, "ListenerRuleNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ListenerRuleNames[]")) || aret == '=') { TRY(!aa, "ListenerRuleNames[] argument missing\n"); SET_NEXT(s->listener_rule_names, (aa), pa); } else @@ -4254,7 +4258,7 @@ int filters_listener_rule_parser(void *v_s, char *str, char *aa, struct ptr_arra int filters_load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_load_balancer *s = v_s; int aret = 0; - if ((aret = strcmp(str, "LoadBalancerNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LoadBalancerNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4278,7 +4282,7 @@ int filters_load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_arra TRY(!aa, "LoadBalancerNames argument missing\n"); s->load_balancer_names_str = aa; } - } else if (!(aret = strcmp(str, "LoadBalancerNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LoadBalancerNames[]")) || aret == '=') { TRY(!aa, "LoadBalancerNames[] argument missing\n"); SET_NEXT(s->load_balancer_names, (aa), pa); } else @@ -4292,7 +4296,7 @@ int filters_load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_arra int filters_nat_service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_nat_service *s = v_s; int aret = 0; - if ((aret = strcmp(str, "ClientTokens")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ClientTokens")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4316,11 +4320,11 @@ int filters_nat_service_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "ClientTokens argument missing\n"); s->client_tokens_str = aa; } - } else if (!(aret = strcmp(str, "ClientTokens[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ClientTokens[]")) || aret == '=') { TRY(!aa, "ClientTokens[] argument missing\n"); SET_NEXT(s->client_tokens, (aa), pa); } else - if ((aret = strcmp(str, "NatServiceIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NatServiceIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4344,11 +4348,11 @@ int filters_nat_service_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "NatServiceIds argument missing\n"); s->nat_service_ids_str = aa; } - } else if (!(aret = strcmp(str, "NatServiceIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NatServiceIds[]")) || aret == '=') { TRY(!aa, "NatServiceIds[] argument missing\n"); SET_NEXT(s->nat_service_ids, (aa), pa); } else - if ((aret = strcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4372,11 +4376,11 @@ int filters_nat_service_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "NetIds argument missing\n"); s->net_ids_str = aa; } - } else if (!(aret = strcmp(str, "NetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NetIds[]")) || aret == '=') { TRY(!aa, "NetIds[] argument missing\n"); SET_NEXT(s->net_ids, (aa), pa); } else - if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "States")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4400,11 +4404,11 @@ int filters_nat_service_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "States argument missing\n"); s->states_str = aa; } - } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = strcmp(str, "SubnetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubnetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4428,11 +4432,11 @@ int filters_nat_service_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "SubnetIds argument missing\n"); s->subnet_ids_str = aa; } - } else if (!(aret = strcmp(str, "SubnetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SubnetIds[]")) || aret == '=') { TRY(!aa, "SubnetIds[] argument missing\n"); SET_NEXT(s->subnet_ids, (aa), pa); } else - if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4456,11 +4460,11 @@ int filters_nat_service_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "TagKeys argument missing\n"); s->tag_keys_str = aa; } - } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4484,11 +4488,11 @@ int filters_nat_service_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "TagValues argument missing\n"); s->tag_values_str = aa; } - } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4512,7 +4516,7 @@ int filters_nat_service_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "Tags argument missing\n"); s->tags_str = aa; } - } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else @@ -4526,7 +4530,7 @@ int filters_nat_service_parser(void *v_s, char *str, char *aa, struct ptr_array int filters_net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_net *s = v_s; int aret = 0; - if ((aret = strcmp(str, "DhcpOptionsSetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DhcpOptionsSetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4550,11 +4554,11 @@ int filters_net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "DhcpOptionsSetIds argument missing\n"); s->dhcp_options_set_ids_str = aa; } - } else if (!(aret = strcmp(str, "DhcpOptionsSetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "DhcpOptionsSetIds[]")) || aret == '=') { TRY(!aa, "DhcpOptionsSetIds[] argument missing\n"); SET_NEXT(s->dhcp_options_set_ids, (aa), pa); } else - if ((aret = strcmp(str, "IpRanges")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IpRanges")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4578,11 +4582,11 @@ int filters_net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "IpRanges argument missing\n"); s->ip_ranges_str = aa; } - } else if (!(aret = strcmp(str, "IpRanges[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "IpRanges[]")) || aret == '=') { TRY(!aa, "IpRanges[] argument missing\n"); SET_NEXT(s->ip_ranges, (aa), pa); } else - if ((aret = strcmp(str, "IsDefault")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IsDefault")) == 0 || aret == '=' || aret == '.') { s->is_set_is_default = 1; if (!aa || !strcasecmp(aa, "true")) { s->is_default = 1; @@ -4592,7 +4596,7 @@ int filters_net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("IsDefault require true/false\n"); } } else - if ((aret = strcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4616,11 +4620,11 @@ int filters_net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NetIds argument missing\n"); s->net_ids_str = aa; } - } else if (!(aret = strcmp(str, "NetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NetIds[]")) || aret == '=') { TRY(!aa, "NetIds[] argument missing\n"); SET_NEXT(s->net_ids, (aa), pa); } else - if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "States")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4644,11 +4648,11 @@ int filters_net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "States argument missing\n"); s->states_str = aa; } - } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4672,11 +4676,11 @@ int filters_net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "TagKeys argument missing\n"); s->tag_keys_str = aa; } - } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4700,11 +4704,11 @@ int filters_net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "TagValues argument missing\n"); s->tag_values_str = aa; } - } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4728,7 +4732,7 @@ int filters_net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "Tags argument missing\n"); s->tags_str = aa; } - } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else @@ -4742,7 +4746,7 @@ int filters_net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int filters_net_access_point_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_net_access_point *s = v_s; int aret = 0; - if ((aret = strcmp(str, "NetAccessPointIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetAccessPointIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4766,11 +4770,11 @@ int filters_net_access_point_parser(void *v_s, char *str, char *aa, struct ptr_a TRY(!aa, "NetAccessPointIds argument missing\n"); s->net_access_point_ids_str = aa; } - } else if (!(aret = strcmp(str, "NetAccessPointIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NetAccessPointIds[]")) || aret == '=') { TRY(!aa, "NetAccessPointIds[] argument missing\n"); SET_NEXT(s->net_access_point_ids, (aa), pa); } else - if ((aret = strcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4794,11 +4798,11 @@ int filters_net_access_point_parser(void *v_s, char *str, char *aa, struct ptr_a TRY(!aa, "NetIds argument missing\n"); s->net_ids_str = aa; } - } else if (!(aret = strcmp(str, "NetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NetIds[]")) || aret == '=') { TRY(!aa, "NetIds[] argument missing\n"); SET_NEXT(s->net_ids, (aa), pa); } else - if ((aret = strcmp(str, "ServiceNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ServiceNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4822,11 +4826,11 @@ int filters_net_access_point_parser(void *v_s, char *str, char *aa, struct ptr_a TRY(!aa, "ServiceNames argument missing\n"); s->service_names_str = aa; } - } else if (!(aret = strcmp(str, "ServiceNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ServiceNames[]")) || aret == '=') { TRY(!aa, "ServiceNames[] argument missing\n"); SET_NEXT(s->service_names, (aa), pa); } else - if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "States")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4850,11 +4854,11 @@ int filters_net_access_point_parser(void *v_s, char *str, char *aa, struct ptr_a TRY(!aa, "States argument missing\n"); s->states_str = aa; } - } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4878,11 +4882,11 @@ int filters_net_access_point_parser(void *v_s, char *str, char *aa, struct ptr_a TRY(!aa, "TagKeys argument missing\n"); s->tag_keys_str = aa; } - } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4906,11 +4910,11 @@ int filters_net_access_point_parser(void *v_s, char *str, char *aa, struct ptr_a TRY(!aa, "TagValues argument missing\n"); s->tag_values_str = aa; } - } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4934,7 +4938,7 @@ int filters_net_access_point_parser(void *v_s, char *str, char *aa, struct ptr_a TRY(!aa, "Tags argument missing\n"); s->tags_str = aa; } - } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else @@ -4948,7 +4952,7 @@ int filters_net_access_point_parser(void *v_s, char *str, char *aa, struct ptr_a int filters_net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_net_peering *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccepterNetAccountIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccepterNetAccountIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -4972,11 +4976,11 @@ int filters_net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "AccepterNetAccountIds argument missing\n"); s->accepter_net_account_ids_str = aa; } - } else if (!(aret = strcmp(str, "AccepterNetAccountIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "AccepterNetAccountIds[]")) || aret == '=') { TRY(!aa, "AccepterNetAccountIds[] argument missing\n"); SET_NEXT(s->accepter_net_account_ids, (aa), pa); } else - if ((aret = strcmp(str, "AccepterNetIpRanges")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccepterNetIpRanges")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5000,11 +5004,11 @@ int filters_net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "AccepterNetIpRanges argument missing\n"); s->accepter_net_ip_ranges_str = aa; } - } else if (!(aret = strcmp(str, "AccepterNetIpRanges[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "AccepterNetIpRanges[]")) || aret == '=') { TRY(!aa, "AccepterNetIpRanges[] argument missing\n"); SET_NEXT(s->accepter_net_ip_ranges, (aa), pa); } else - if ((aret = strcmp(str, "AccepterNetNetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccepterNetNetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5028,11 +5032,11 @@ int filters_net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "AccepterNetNetIds argument missing\n"); s->accepter_net_net_ids_str = aa; } - } else if (!(aret = strcmp(str, "AccepterNetNetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "AccepterNetNetIds[]")) || aret == '=') { TRY(!aa, "AccepterNetNetIds[] argument missing\n"); SET_NEXT(s->accepter_net_net_ids, (aa), pa); } else - if ((aret = strcmp(str, "ExpirationDates")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ExpirationDates")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5056,11 +5060,11 @@ int filters_net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "ExpirationDates argument missing\n"); s->expiration_dates_str = aa; } - } else if (!(aret = strcmp(str, "ExpirationDates[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ExpirationDates[]")) || aret == '=') { TRY(!aa, "ExpirationDates[] argument missing\n"); SET_NEXT(s->expiration_dates, (aa), pa); } else - if ((aret = strcmp(str, "NetPeeringIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetPeeringIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5084,11 +5088,11 @@ int filters_net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "NetPeeringIds argument missing\n"); s->net_peering_ids_str = aa; } - } else if (!(aret = strcmp(str, "NetPeeringIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NetPeeringIds[]")) || aret == '=') { TRY(!aa, "NetPeeringIds[] argument missing\n"); SET_NEXT(s->net_peering_ids, (aa), pa); } else - if ((aret = strcmp(str, "SourceNetAccountIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SourceNetAccountIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5112,11 +5116,11 @@ int filters_net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "SourceNetAccountIds argument missing\n"); s->source_net_account_ids_str = aa; } - } else if (!(aret = strcmp(str, "SourceNetAccountIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SourceNetAccountIds[]")) || aret == '=') { TRY(!aa, "SourceNetAccountIds[] argument missing\n"); SET_NEXT(s->source_net_account_ids, (aa), pa); } else - if ((aret = strcmp(str, "SourceNetIpRanges")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SourceNetIpRanges")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5140,11 +5144,11 @@ int filters_net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "SourceNetIpRanges argument missing\n"); s->source_net_ip_ranges_str = aa; } - } else if (!(aret = strcmp(str, "SourceNetIpRanges[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SourceNetIpRanges[]")) || aret == '=') { TRY(!aa, "SourceNetIpRanges[] argument missing\n"); SET_NEXT(s->source_net_ip_ranges, (aa), pa); } else - if ((aret = strcmp(str, "SourceNetNetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SourceNetNetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5168,11 +5172,11 @@ int filters_net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "SourceNetNetIds argument missing\n"); s->source_net_net_ids_str = aa; } - } else if (!(aret = strcmp(str, "SourceNetNetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SourceNetNetIds[]")) || aret == '=') { TRY(!aa, "SourceNetNetIds[] argument missing\n"); SET_NEXT(s->source_net_net_ids, (aa), pa); } else - if ((aret = strcmp(str, "StateMessages")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "StateMessages")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5196,11 +5200,11 @@ int filters_net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "StateMessages argument missing\n"); s->state_messages_str = aa; } - } else if (!(aret = strcmp(str, "StateMessages[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "StateMessages[]")) || aret == '=') { TRY(!aa, "StateMessages[] argument missing\n"); SET_NEXT(s->state_messages, (aa), pa); } else - if ((aret = strcmp(str, "StateNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "StateNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5224,11 +5228,11 @@ int filters_net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "StateNames argument missing\n"); s->state_names_str = aa; } - } else if (!(aret = strcmp(str, "StateNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "StateNames[]")) || aret == '=') { TRY(!aa, "StateNames[] argument missing\n"); SET_NEXT(s->state_names, (aa), pa); } else - if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5252,11 +5256,11 @@ int filters_net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "TagKeys argument missing\n"); s->tag_keys_str = aa; } - } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5280,11 +5284,11 @@ int filters_net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "TagValues argument missing\n"); s->tag_values_str = aa; } - } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5308,7 +5312,7 @@ int filters_net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "Tags argument missing\n"); s->tags_str = aa; } - } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else @@ -5322,7 +5326,7 @@ int filters_net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_nic *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5346,11 +5350,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "Descriptions argument missing\n"); s->descriptions_str = aa; } - } else if (!(aret = strcmp(str, "Descriptions[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Descriptions[]")) || aret == '=') { TRY(!aa, "Descriptions[] argument missing\n"); SET_NEXT(s->descriptions, (aa), pa); } else - if ((aret = strcmp(str, "IsSourceDestCheck")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IsSourceDestCheck")) == 0 || aret == '=' || aret == '.') { s->is_set_is_source_dest_check = 1; if (!aa || !strcasecmp(aa, "true")) { s->is_source_dest_check = 1; @@ -5360,7 +5364,7 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("IsSourceDestCheck require true/false\n"); } } else - if ((aret = strcmp(str, "LinkNicDeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkNicDeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_link_nic_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->link_nic_delete_on_vm_deletion = 1; @@ -5370,7 +5374,7 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("LinkNicDeleteOnVmDeletion require true/false\n"); } } else - if ((aret = strcmp(str, "LinkNicDeviceNumbers")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkNicDeviceNumbers")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5394,11 +5398,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "LinkNicDeviceNumbers argument missing\n"); s->link_nic_device_numbers_str = aa; } - } else if (!(aret = strcmp(str, "LinkNicDeviceNumbers[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LinkNicDeviceNumbers[]")) || aret == '=') { TRY(!aa, "LinkNicDeviceNumbers[] argument missing\n"); SET_NEXT(s->link_nic_device_numbers, atoi(aa), pa); } else - if ((aret = strcmp(str, "LinkNicLinkNicIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkNicLinkNicIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5422,11 +5426,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "LinkNicLinkNicIds argument missing\n"); s->link_nic_link_nic_ids_str = aa; } - } else if (!(aret = strcmp(str, "LinkNicLinkNicIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LinkNicLinkNicIds[]")) || aret == '=') { TRY(!aa, "LinkNicLinkNicIds[] argument missing\n"); SET_NEXT(s->link_nic_link_nic_ids, (aa), pa); } else - if ((aret = strcmp(str, "LinkNicStates")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkNicStates")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5450,11 +5454,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "LinkNicStates argument missing\n"); s->link_nic_states_str = aa; } - } else if (!(aret = strcmp(str, "LinkNicStates[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LinkNicStates[]")) || aret == '=') { TRY(!aa, "LinkNicStates[] argument missing\n"); SET_NEXT(s->link_nic_states, (aa), pa); } else - if ((aret = strcmp(str, "LinkNicVmAccountIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkNicVmAccountIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5478,11 +5482,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "LinkNicVmAccountIds argument missing\n"); s->link_nic_vm_account_ids_str = aa; } - } else if (!(aret = strcmp(str, "LinkNicVmAccountIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LinkNicVmAccountIds[]")) || aret == '=') { TRY(!aa, "LinkNicVmAccountIds[] argument missing\n"); SET_NEXT(s->link_nic_vm_account_ids, (aa), pa); } else - if ((aret = strcmp(str, "LinkNicVmIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkNicVmIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5506,11 +5510,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "LinkNicVmIds argument missing\n"); s->link_nic_vm_ids_str = aa; } - } else if (!(aret = strcmp(str, "LinkNicVmIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LinkNicVmIds[]")) || aret == '=') { TRY(!aa, "LinkNicVmIds[] argument missing\n"); SET_NEXT(s->link_nic_vm_ids, (aa), pa); } else - if ((aret = strcmp(str, "LinkPublicIpAccountIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkPublicIpAccountIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5534,11 +5538,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "LinkPublicIpAccountIds argument missing\n"); s->link_public_ip_account_ids_str = aa; } - } else if (!(aret = strcmp(str, "LinkPublicIpAccountIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LinkPublicIpAccountIds[]")) || aret == '=') { TRY(!aa, "LinkPublicIpAccountIds[] argument missing\n"); SET_NEXT(s->link_public_ip_account_ids, (aa), pa); } else - if ((aret = strcmp(str, "LinkPublicIpLinkPublicIpIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkPublicIpLinkPublicIpIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5562,11 +5566,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "LinkPublicIpLinkPublicIpIds argument missing\n"); s->link_public_ip_link_public_ip_ids_str = aa; } - } else if (!(aret = strcmp(str, "LinkPublicIpLinkPublicIpIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LinkPublicIpLinkPublicIpIds[]")) || aret == '=') { TRY(!aa, "LinkPublicIpLinkPublicIpIds[] argument missing\n"); SET_NEXT(s->link_public_ip_link_public_ip_ids, (aa), pa); } else - if ((aret = strcmp(str, "LinkPublicIpPublicDnsNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkPublicIpPublicDnsNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5590,11 +5594,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "LinkPublicIpPublicDnsNames argument missing\n"); s->link_public_ip_public_dns_names_str = aa; } - } else if (!(aret = strcmp(str, "LinkPublicIpPublicDnsNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LinkPublicIpPublicDnsNames[]")) || aret == '=') { TRY(!aa, "LinkPublicIpPublicDnsNames[] argument missing\n"); SET_NEXT(s->link_public_ip_public_dns_names, (aa), pa); } else - if ((aret = strcmp(str, "LinkPublicIpPublicIpIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkPublicIpPublicIpIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5618,11 +5622,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "LinkPublicIpPublicIpIds argument missing\n"); s->link_public_ip_public_ip_ids_str = aa; } - } else if (!(aret = strcmp(str, "LinkPublicIpPublicIpIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LinkPublicIpPublicIpIds[]")) || aret == '=') { TRY(!aa, "LinkPublicIpPublicIpIds[] argument missing\n"); SET_NEXT(s->link_public_ip_public_ip_ids, (aa), pa); } else - if ((aret = strcmp(str, "LinkPublicIpPublicIps")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkPublicIpPublicIps")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5646,11 +5650,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "LinkPublicIpPublicIps argument missing\n"); s->link_public_ip_public_ips_str = aa; } - } else if (!(aret = strcmp(str, "LinkPublicIpPublicIps[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LinkPublicIpPublicIps[]")) || aret == '=') { TRY(!aa, "LinkPublicIpPublicIps[] argument missing\n"); SET_NEXT(s->link_public_ip_public_ips, (aa), pa); } else - if ((aret = strcmp(str, "MacAddresses")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "MacAddresses")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5674,11 +5678,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "MacAddresses argument missing\n"); s->mac_addresses_str = aa; } - } else if (!(aret = strcmp(str, "MacAddresses[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "MacAddresses[]")) || aret == '=') { TRY(!aa, "MacAddresses[] argument missing\n"); SET_NEXT(s->mac_addresses, (aa), pa); } else - if ((aret = strcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5702,11 +5706,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NetIds argument missing\n"); s->net_ids_str = aa; } - } else if (!(aret = strcmp(str, "NetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NetIds[]")) || aret == '=') { TRY(!aa, "NetIds[] argument missing\n"); SET_NEXT(s->net_ids, (aa), pa); } else - if ((aret = strcmp(str, "NicIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5730,11 +5734,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicIds argument missing\n"); s->nic_ids_str = aa; } - } else if (!(aret = strcmp(str, "NicIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicIds[]")) || aret == '=') { TRY(!aa, "NicIds[] argument missing\n"); SET_NEXT(s->nic_ids, (aa), pa); } else - if ((aret = strcmp(str, "PrivateDnsNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PrivateDnsNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5758,11 +5762,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "PrivateDnsNames argument missing\n"); s->private_dns_names_str = aa; } - } else if (!(aret = strcmp(str, "PrivateDnsNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "PrivateDnsNames[]")) || aret == '=') { TRY(!aa, "PrivateDnsNames[] argument missing\n"); SET_NEXT(s->private_dns_names, (aa), pa); } else - if ((aret = strcmp(str, "PrivateIpsLinkPublicIpAccountIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PrivateIpsLinkPublicIpAccountIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5786,11 +5790,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "PrivateIpsLinkPublicIpAccountIds argument missing\n"); s->private_ips_link_public_ip_account_ids_str = aa; } - } else if (!(aret = strcmp(str, "PrivateIpsLinkPublicIpAccountIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "PrivateIpsLinkPublicIpAccountIds[]")) || aret == '=') { TRY(!aa, "PrivateIpsLinkPublicIpAccountIds[] argument missing\n"); SET_NEXT(s->private_ips_link_public_ip_account_ids, (aa), pa); } else - if ((aret = strcmp(str, "PrivateIpsLinkPublicIpPublicIps")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PrivateIpsLinkPublicIpPublicIps")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5814,11 +5818,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "PrivateIpsLinkPublicIpPublicIps argument missing\n"); s->private_ips_link_public_ip_public_ips_str = aa; } - } else if (!(aret = strcmp(str, "PrivateIpsLinkPublicIpPublicIps[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "PrivateIpsLinkPublicIpPublicIps[]")) || aret == '=') { TRY(!aa, "PrivateIpsLinkPublicIpPublicIps[] argument missing\n"); SET_NEXT(s->private_ips_link_public_ip_public_ips, (aa), pa); } else - if ((aret = strcmp(str, "PrivateIpsPrimaryIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PrivateIpsPrimaryIp")) == 0 || aret == '=' || aret == '.') { s->is_set_private_ips_primary_ip = 1; if (!aa || !strcasecmp(aa, "true")) { s->private_ips_primary_ip = 1; @@ -5828,7 +5832,7 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("PrivateIpsPrimaryIp require true/false\n"); } } else - if ((aret = strcmp(str, "PrivateIpsPrivateIps")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PrivateIpsPrivateIps")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5852,11 +5856,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "PrivateIpsPrivateIps argument missing\n"); s->private_ips_private_ips_str = aa; } - } else if (!(aret = strcmp(str, "PrivateIpsPrivateIps[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "PrivateIpsPrivateIps[]")) || aret == '=') { TRY(!aa, "PrivateIpsPrivateIps[] argument missing\n"); SET_NEXT(s->private_ips_private_ips, (aa), pa); } else - if ((aret = strcmp(str, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5880,11 +5884,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "SecurityGroupIds argument missing\n"); s->security_group_ids_str = aa; } - } else if (!(aret = strcmp(str, "SecurityGroupIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SecurityGroupIds[]")) || aret == '=') { TRY(!aa, "SecurityGroupIds[] argument missing\n"); SET_NEXT(s->security_group_ids, (aa), pa); } else - if ((aret = strcmp(str, "SecurityGroupNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecurityGroupNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5908,11 +5912,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "SecurityGroupNames argument missing\n"); s->security_group_names_str = aa; } - } else if (!(aret = strcmp(str, "SecurityGroupNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SecurityGroupNames[]")) || aret == '=') { TRY(!aa, "SecurityGroupNames[] argument missing\n"); SET_NEXT(s->security_group_names, (aa), pa); } else - if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "States")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5936,11 +5940,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "States argument missing\n"); s->states_str = aa; } - } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = strcmp(str, "SubnetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubnetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5964,11 +5968,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "SubnetIds argument missing\n"); s->subnet_ids_str = aa; } - } else if (!(aret = strcmp(str, "SubnetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SubnetIds[]")) || aret == '=') { TRY(!aa, "SubnetIds[] argument missing\n"); SET_NEXT(s->subnet_ids, (aa), pa); } else - if ((aret = strcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -5992,11 +5996,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "SubregionNames argument missing\n"); s->subregion_names_str = aa; } - } else if (!(aret = strcmp(str, "SubregionNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SubregionNames[]")) || aret == '=') { TRY(!aa, "SubregionNames[] argument missing\n"); SET_NEXT(s->subregion_names, (aa), pa); } else - if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6020,11 +6024,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "TagKeys argument missing\n"); s->tag_keys_str = aa; } - } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6048,11 +6052,11 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "TagValues argument missing\n"); s->tag_values_str = aa; } - } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6076,7 +6080,7 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "Tags argument missing\n"); s->tags_str = aa; } - } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else @@ -6090,7 +6094,7 @@ int filters_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int filters_product_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_product_type *s = v_s; int aret = 0; - if ((aret = strcmp(str, "ProductTypeIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ProductTypeIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6114,7 +6118,7 @@ int filters_product_type_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "ProductTypeIds argument missing\n"); s->product_type_ids_str = aa; } - } else if (!(aret = strcmp(str, "ProductTypeIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ProductTypeIds[]")) || aret == '=') { TRY(!aa, "ProductTypeIds[] argument missing\n"); SET_NEXT(s->product_type_ids, (aa), pa); } else @@ -6128,7 +6132,7 @@ int filters_product_type_parser(void *v_s, char *str, char *aa, struct ptr_array int filters_public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_public_ip *s = v_s; int aret = 0; - if ((aret = strcmp(str, "LinkPublicIpIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkPublicIpIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6152,11 +6156,11 @@ int filters_public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *p TRY(!aa, "LinkPublicIpIds argument missing\n"); s->link_public_ip_ids_str = aa; } - } else if (!(aret = strcmp(str, "LinkPublicIpIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LinkPublicIpIds[]")) || aret == '=') { TRY(!aa, "LinkPublicIpIds[] argument missing\n"); SET_NEXT(s->link_public_ip_ids, (aa), pa); } else - if ((aret = strcmp(str, "NicAccountIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicAccountIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6180,11 +6184,11 @@ int filters_public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *p TRY(!aa, "NicAccountIds argument missing\n"); s->nic_account_ids_str = aa; } - } else if (!(aret = strcmp(str, "NicAccountIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicAccountIds[]")) || aret == '=') { TRY(!aa, "NicAccountIds[] argument missing\n"); SET_NEXT(s->nic_account_ids, (aa), pa); } else - if ((aret = strcmp(str, "NicIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6208,11 +6212,11 @@ int filters_public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *p TRY(!aa, "NicIds argument missing\n"); s->nic_ids_str = aa; } - } else if (!(aret = strcmp(str, "NicIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicIds[]")) || aret == '=') { TRY(!aa, "NicIds[] argument missing\n"); SET_NEXT(s->nic_ids, (aa), pa); } else - if ((aret = strcmp(str, "Placements")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Placements")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6236,11 +6240,11 @@ int filters_public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *p TRY(!aa, "Placements argument missing\n"); s->placements_str = aa; } - } else if (!(aret = strcmp(str, "Placements[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Placements[]")) || aret == '=') { TRY(!aa, "Placements[] argument missing\n"); SET_NEXT(s->placements, (aa), pa); } else - if ((aret = strcmp(str, "PrivateIps")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PrivateIps")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6264,11 +6268,11 @@ int filters_public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *p TRY(!aa, "PrivateIps argument missing\n"); s->private_ips_str = aa; } - } else if (!(aret = strcmp(str, "PrivateIps[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "PrivateIps[]")) || aret == '=') { TRY(!aa, "PrivateIps[] argument missing\n"); SET_NEXT(s->private_ips, (aa), pa); } else - if ((aret = strcmp(str, "PublicIpIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PublicIpIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6292,11 +6296,11 @@ int filters_public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *p TRY(!aa, "PublicIpIds argument missing\n"); s->public_ip_ids_str = aa; } - } else if (!(aret = strcmp(str, "PublicIpIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "PublicIpIds[]")) || aret == '=') { TRY(!aa, "PublicIpIds[] argument missing\n"); SET_NEXT(s->public_ip_ids, (aa), pa); } else - if ((aret = strcmp(str, "PublicIps")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PublicIps")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6320,11 +6324,11 @@ int filters_public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *p TRY(!aa, "PublicIps argument missing\n"); s->public_ips_str = aa; } - } else if (!(aret = strcmp(str, "PublicIps[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "PublicIps[]")) || aret == '=') { TRY(!aa, "PublicIps[] argument missing\n"); SET_NEXT(s->public_ips, (aa), pa); } else - if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6348,11 +6352,11 @@ int filters_public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *p TRY(!aa, "TagKeys argument missing\n"); s->tag_keys_str = aa; } - } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6376,11 +6380,11 @@ int filters_public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *p TRY(!aa, "TagValues argument missing\n"); s->tag_values_str = aa; } - } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6404,11 +6408,11 @@ int filters_public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *p TRY(!aa, "Tags argument missing\n"); s->tags_str = aa; } - } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else - if ((aret = strcmp(str, "VmIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6432,7 +6436,7 @@ int filters_public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *p TRY(!aa, "VmIds argument missing\n"); s->vm_ids_str = aa; } - } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); } else @@ -6446,7 +6450,7 @@ int filters_public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *p int filters_quota_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_quota *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Collections")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Collections")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6470,11 +6474,11 @@ int filters_quota_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "Collections argument missing\n"); s->collections_str = aa; } - } else if (!(aret = strcmp(str, "Collections[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Collections[]")) || aret == '=') { TRY(!aa, "Collections[] argument missing\n"); SET_NEXT(s->collections, (aa), pa); } else - if ((aret = strcmp(str, "QuotaNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QuotaNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6498,11 +6502,11 @@ int filters_quota_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "QuotaNames argument missing\n"); s->quota_names_str = aa; } - } else if (!(aret = strcmp(str, "QuotaNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "QuotaNames[]")) || aret == '=') { TRY(!aa, "QuotaNames[] argument missing\n"); SET_NEXT(s->quota_names, (aa), pa); } else - if ((aret = strcmp(str, "QuotaTypes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QuotaTypes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6526,11 +6530,11 @@ int filters_quota_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "QuotaTypes argument missing\n"); s->quota_types_str = aa; } - } else if (!(aret = strcmp(str, "QuotaTypes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "QuotaTypes[]")) || aret == '=') { TRY(!aa, "QuotaTypes[] argument missing\n"); SET_NEXT(s->quota_types, (aa), pa); } else - if ((aret = strcmp(str, "ShortDescriptions")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ShortDescriptions")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6554,7 +6558,7 @@ int filters_quota_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "ShortDescriptions argument missing\n"); s->short_descriptions_str = aa; } - } else if (!(aret = strcmp(str, "ShortDescriptions[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ShortDescriptions[]")) || aret == '=') { TRY(!aa, "ShortDescriptions[] argument missing\n"); SET_NEXT(s->short_descriptions, (aa), pa); } else @@ -6568,7 +6572,7 @@ int filters_quota_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int filters_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_route_table *s = v_s; int aret = 0; - if ((aret = strcmp(str, "LinkRouteTableIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkRouteTableIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6592,11 +6596,11 @@ int filters_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "LinkRouteTableIds argument missing\n"); s->link_route_table_ids_str = aa; } - } else if (!(aret = strcmp(str, "LinkRouteTableIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LinkRouteTableIds[]")) || aret == '=') { TRY(!aa, "LinkRouteTableIds[] argument missing\n"); SET_NEXT(s->link_route_table_ids, (aa), pa); } else - if ((aret = strcmp(str, "LinkRouteTableLinkRouteTableIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkRouteTableLinkRouteTableIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6620,11 +6624,11 @@ int filters_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "LinkRouteTableLinkRouteTableIds argument missing\n"); s->link_route_table_link_route_table_ids_str = aa; } - } else if (!(aret = strcmp(str, "LinkRouteTableLinkRouteTableIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LinkRouteTableLinkRouteTableIds[]")) || aret == '=') { TRY(!aa, "LinkRouteTableLinkRouteTableIds[] argument missing\n"); SET_NEXT(s->link_route_table_link_route_table_ids, (aa), pa); } else - if ((aret = strcmp(str, "LinkRouteTableMain")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkRouteTableMain")) == 0 || aret == '=' || aret == '.') { s->is_set_link_route_table_main = 1; if (!aa || !strcasecmp(aa, "true")) { s->link_route_table_main = 1; @@ -6634,7 +6638,7 @@ int filters_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array BAD_RET("LinkRouteTableMain require true/false\n"); } } else - if ((aret = strcmp(str, "LinkSubnetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkSubnetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6658,11 +6662,11 @@ int filters_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "LinkSubnetIds argument missing\n"); s->link_subnet_ids_str = aa; } - } else if (!(aret = strcmp(str, "LinkSubnetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LinkSubnetIds[]")) || aret == '=') { TRY(!aa, "LinkSubnetIds[] argument missing\n"); SET_NEXT(s->link_subnet_ids, (aa), pa); } else - if ((aret = strcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6686,11 +6690,11 @@ int filters_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "NetIds argument missing\n"); s->net_ids_str = aa; } - } else if (!(aret = strcmp(str, "NetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NetIds[]")) || aret == '=') { TRY(!aa, "NetIds[] argument missing\n"); SET_NEXT(s->net_ids, (aa), pa); } else - if ((aret = strcmp(str, "RouteCreationMethods")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RouteCreationMethods")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6714,11 +6718,11 @@ int filters_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "RouteCreationMethods argument missing\n"); s->route_creation_methods_str = aa; } - } else if (!(aret = strcmp(str, "RouteCreationMethods[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "RouteCreationMethods[]")) || aret == '=') { TRY(!aa, "RouteCreationMethods[] argument missing\n"); SET_NEXT(s->route_creation_methods, (aa), pa); } else - if ((aret = strcmp(str, "RouteDestinationIpRanges")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RouteDestinationIpRanges")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6742,11 +6746,11 @@ int filters_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "RouteDestinationIpRanges argument missing\n"); s->route_destination_ip_ranges_str = aa; } - } else if (!(aret = strcmp(str, "RouteDestinationIpRanges[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "RouteDestinationIpRanges[]")) || aret == '=') { TRY(!aa, "RouteDestinationIpRanges[] argument missing\n"); SET_NEXT(s->route_destination_ip_ranges, (aa), pa); } else - if ((aret = strcmp(str, "RouteDestinationServiceIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RouteDestinationServiceIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6770,11 +6774,11 @@ int filters_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "RouteDestinationServiceIds argument missing\n"); s->route_destination_service_ids_str = aa; } - } else if (!(aret = strcmp(str, "RouteDestinationServiceIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "RouteDestinationServiceIds[]")) || aret == '=') { TRY(!aa, "RouteDestinationServiceIds[] argument missing\n"); SET_NEXT(s->route_destination_service_ids, (aa), pa); } else - if ((aret = strcmp(str, "RouteGatewayIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RouteGatewayIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6798,11 +6802,11 @@ int filters_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "RouteGatewayIds argument missing\n"); s->route_gateway_ids_str = aa; } - } else if (!(aret = strcmp(str, "RouteGatewayIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "RouteGatewayIds[]")) || aret == '=') { TRY(!aa, "RouteGatewayIds[] argument missing\n"); SET_NEXT(s->route_gateway_ids, (aa), pa); } else - if ((aret = strcmp(str, "RouteNatServiceIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RouteNatServiceIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6826,11 +6830,11 @@ int filters_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "RouteNatServiceIds argument missing\n"); s->route_nat_service_ids_str = aa; } - } else if (!(aret = strcmp(str, "RouteNatServiceIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "RouteNatServiceIds[]")) || aret == '=') { TRY(!aa, "RouteNatServiceIds[] argument missing\n"); SET_NEXT(s->route_nat_service_ids, (aa), pa); } else - if ((aret = strcmp(str, "RouteNetPeeringIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RouteNetPeeringIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6854,11 +6858,11 @@ int filters_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "RouteNetPeeringIds argument missing\n"); s->route_net_peering_ids_str = aa; } - } else if (!(aret = strcmp(str, "RouteNetPeeringIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "RouteNetPeeringIds[]")) || aret == '=') { TRY(!aa, "RouteNetPeeringIds[] argument missing\n"); SET_NEXT(s->route_net_peering_ids, (aa), pa); } else - if ((aret = strcmp(str, "RouteStates")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RouteStates")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6882,11 +6886,11 @@ int filters_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "RouteStates argument missing\n"); s->route_states_str = aa; } - } else if (!(aret = strcmp(str, "RouteStates[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "RouteStates[]")) || aret == '=') { TRY(!aa, "RouteStates[] argument missing\n"); SET_NEXT(s->route_states, (aa), pa); } else - if ((aret = strcmp(str, "RouteTableIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RouteTableIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6910,11 +6914,11 @@ int filters_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "RouteTableIds argument missing\n"); s->route_table_ids_str = aa; } - } else if (!(aret = strcmp(str, "RouteTableIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "RouteTableIds[]")) || aret == '=') { TRY(!aa, "RouteTableIds[] argument missing\n"); SET_NEXT(s->route_table_ids, (aa), pa); } else - if ((aret = strcmp(str, "RouteVmIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RouteVmIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6938,11 +6942,11 @@ int filters_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "RouteVmIds argument missing\n"); s->route_vm_ids_str = aa; } - } else if (!(aret = strcmp(str, "RouteVmIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "RouteVmIds[]")) || aret == '=') { TRY(!aa, "RouteVmIds[] argument missing\n"); SET_NEXT(s->route_vm_ids, (aa), pa); } else - if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6966,11 +6970,11 @@ int filters_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "TagKeys argument missing\n"); s->tag_keys_str = aa; } - } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -6994,11 +6998,11 @@ int filters_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "TagValues argument missing\n"); s->tag_values_str = aa; } - } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7022,7 +7026,7 @@ int filters_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "Tags argument missing\n"); s->tags_str = aa; } - } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else @@ -7036,7 +7040,7 @@ int filters_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_security_group *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7060,11 +7064,11 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "Descriptions argument missing\n"); s->descriptions_str = aa; } - } else if (!(aret = strcmp(str, "Descriptions[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Descriptions[]")) || aret == '=') { TRY(!aa, "Descriptions[] argument missing\n"); SET_NEXT(s->descriptions, (aa), pa); } else - if ((aret = strcmp(str, "InboundRuleAccountIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "InboundRuleAccountIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7088,11 +7092,11 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "InboundRuleAccountIds argument missing\n"); s->inbound_rule_account_ids_str = aa; } - } else if (!(aret = strcmp(str, "InboundRuleAccountIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "InboundRuleAccountIds[]")) || aret == '=') { TRY(!aa, "InboundRuleAccountIds[] argument missing\n"); SET_NEXT(s->inbound_rule_account_ids, (aa), pa); } else - if ((aret = strcmp(str, "InboundRuleFromPortRanges")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "InboundRuleFromPortRanges")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7116,11 +7120,11 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "InboundRuleFromPortRanges argument missing\n"); s->inbound_rule_from_port_ranges_str = aa; } - } else if (!(aret = strcmp(str, "InboundRuleFromPortRanges[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "InboundRuleFromPortRanges[]")) || aret == '=') { TRY(!aa, "InboundRuleFromPortRanges[] argument missing\n"); SET_NEXT(s->inbound_rule_from_port_ranges, atoi(aa), pa); } else - if ((aret = strcmp(str, "InboundRuleIpRanges")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "InboundRuleIpRanges")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7144,11 +7148,11 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "InboundRuleIpRanges argument missing\n"); s->inbound_rule_ip_ranges_str = aa; } - } else if (!(aret = strcmp(str, "InboundRuleIpRanges[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "InboundRuleIpRanges[]")) || aret == '=') { TRY(!aa, "InboundRuleIpRanges[] argument missing\n"); SET_NEXT(s->inbound_rule_ip_ranges, (aa), pa); } else - if ((aret = strcmp(str, "InboundRuleProtocols")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "InboundRuleProtocols")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7172,11 +7176,11 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "InboundRuleProtocols argument missing\n"); s->inbound_rule_protocols_str = aa; } - } else if (!(aret = strcmp(str, "InboundRuleProtocols[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "InboundRuleProtocols[]")) || aret == '=') { TRY(!aa, "InboundRuleProtocols[] argument missing\n"); SET_NEXT(s->inbound_rule_protocols, (aa), pa); } else - if ((aret = strcmp(str, "InboundRuleSecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "InboundRuleSecurityGroupIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7200,11 +7204,11 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "InboundRuleSecurityGroupIds argument missing\n"); s->inbound_rule_security_group_ids_str = aa; } - } else if (!(aret = strcmp(str, "InboundRuleSecurityGroupIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "InboundRuleSecurityGroupIds[]")) || aret == '=') { TRY(!aa, "InboundRuleSecurityGroupIds[] argument missing\n"); SET_NEXT(s->inbound_rule_security_group_ids, (aa), pa); } else - if ((aret = strcmp(str, "InboundRuleSecurityGroupNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "InboundRuleSecurityGroupNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7228,11 +7232,11 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "InboundRuleSecurityGroupNames argument missing\n"); s->inbound_rule_security_group_names_str = aa; } - } else if (!(aret = strcmp(str, "InboundRuleSecurityGroupNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "InboundRuleSecurityGroupNames[]")) || aret == '=') { TRY(!aa, "InboundRuleSecurityGroupNames[] argument missing\n"); SET_NEXT(s->inbound_rule_security_group_names, (aa), pa); } else - if ((aret = strcmp(str, "InboundRuleToPortRanges")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "InboundRuleToPortRanges")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7256,11 +7260,11 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "InboundRuleToPortRanges argument missing\n"); s->inbound_rule_to_port_ranges_str = aa; } - } else if (!(aret = strcmp(str, "InboundRuleToPortRanges[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "InboundRuleToPortRanges[]")) || aret == '=') { TRY(!aa, "InboundRuleToPortRanges[] argument missing\n"); SET_NEXT(s->inbound_rule_to_port_ranges, atoi(aa), pa); } else - if ((aret = strcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7284,11 +7288,11 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "NetIds argument missing\n"); s->net_ids_str = aa; } - } else if (!(aret = strcmp(str, "NetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NetIds[]")) || aret == '=') { TRY(!aa, "NetIds[] argument missing\n"); SET_NEXT(s->net_ids, (aa), pa); } else - if ((aret = strcmp(str, "OutboundRuleAccountIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OutboundRuleAccountIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7312,11 +7316,11 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "OutboundRuleAccountIds argument missing\n"); s->outbound_rule_account_ids_str = aa; } - } else if (!(aret = strcmp(str, "OutboundRuleAccountIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "OutboundRuleAccountIds[]")) || aret == '=') { TRY(!aa, "OutboundRuleAccountIds[] argument missing\n"); SET_NEXT(s->outbound_rule_account_ids, (aa), pa); } else - if ((aret = strcmp(str, "OutboundRuleFromPortRanges")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OutboundRuleFromPortRanges")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7340,11 +7344,11 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "OutboundRuleFromPortRanges argument missing\n"); s->outbound_rule_from_port_ranges_str = aa; } - } else if (!(aret = strcmp(str, "OutboundRuleFromPortRanges[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "OutboundRuleFromPortRanges[]")) || aret == '=') { TRY(!aa, "OutboundRuleFromPortRanges[] argument missing\n"); SET_NEXT(s->outbound_rule_from_port_ranges, atoi(aa), pa); } else - if ((aret = strcmp(str, "OutboundRuleIpRanges")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OutboundRuleIpRanges")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7368,11 +7372,11 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "OutboundRuleIpRanges argument missing\n"); s->outbound_rule_ip_ranges_str = aa; } - } else if (!(aret = strcmp(str, "OutboundRuleIpRanges[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "OutboundRuleIpRanges[]")) || aret == '=') { TRY(!aa, "OutboundRuleIpRanges[] argument missing\n"); SET_NEXT(s->outbound_rule_ip_ranges, (aa), pa); } else - if ((aret = strcmp(str, "OutboundRuleProtocols")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OutboundRuleProtocols")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7396,11 +7400,11 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "OutboundRuleProtocols argument missing\n"); s->outbound_rule_protocols_str = aa; } - } else if (!(aret = strcmp(str, "OutboundRuleProtocols[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "OutboundRuleProtocols[]")) || aret == '=') { TRY(!aa, "OutboundRuleProtocols[] argument missing\n"); SET_NEXT(s->outbound_rule_protocols, (aa), pa); } else - if ((aret = strcmp(str, "OutboundRuleSecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OutboundRuleSecurityGroupIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7424,11 +7428,11 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "OutboundRuleSecurityGroupIds argument missing\n"); s->outbound_rule_security_group_ids_str = aa; } - } else if (!(aret = strcmp(str, "OutboundRuleSecurityGroupIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "OutboundRuleSecurityGroupIds[]")) || aret == '=') { TRY(!aa, "OutboundRuleSecurityGroupIds[] argument missing\n"); SET_NEXT(s->outbound_rule_security_group_ids, (aa), pa); } else - if ((aret = strcmp(str, "OutboundRuleSecurityGroupNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OutboundRuleSecurityGroupNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7452,11 +7456,11 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "OutboundRuleSecurityGroupNames argument missing\n"); s->outbound_rule_security_group_names_str = aa; } - } else if (!(aret = strcmp(str, "OutboundRuleSecurityGroupNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "OutboundRuleSecurityGroupNames[]")) || aret == '=') { TRY(!aa, "OutboundRuleSecurityGroupNames[] argument missing\n"); SET_NEXT(s->outbound_rule_security_group_names, (aa), pa); } else - if ((aret = strcmp(str, "OutboundRuleToPortRanges")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OutboundRuleToPortRanges")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7480,11 +7484,11 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "OutboundRuleToPortRanges argument missing\n"); s->outbound_rule_to_port_ranges_str = aa; } - } else if (!(aret = strcmp(str, "OutboundRuleToPortRanges[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "OutboundRuleToPortRanges[]")) || aret == '=') { TRY(!aa, "OutboundRuleToPortRanges[] argument missing\n"); SET_NEXT(s->outbound_rule_to_port_ranges, atoi(aa), pa); } else - if ((aret = strcmp(str, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7508,11 +7512,11 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "SecurityGroupIds argument missing\n"); s->security_group_ids_str = aa; } - } else if (!(aret = strcmp(str, "SecurityGroupIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SecurityGroupIds[]")) || aret == '=') { TRY(!aa, "SecurityGroupIds[] argument missing\n"); SET_NEXT(s->security_group_ids, (aa), pa); } else - if ((aret = strcmp(str, "SecurityGroupNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecurityGroupNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7536,11 +7540,11 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "SecurityGroupNames argument missing\n"); s->security_group_names_str = aa; } - } else if (!(aret = strcmp(str, "SecurityGroupNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SecurityGroupNames[]")) || aret == '=') { TRY(!aa, "SecurityGroupNames[] argument missing\n"); SET_NEXT(s->security_group_names, (aa), pa); } else - if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7564,11 +7568,11 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "TagKeys argument missing\n"); s->tag_keys_str = aa; } - } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7592,11 +7596,11 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "TagValues argument missing\n"); s->tag_values_str = aa; } - } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7620,7 +7624,7 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "Tags argument missing\n"); s->tags_str = aa; } - } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else @@ -7634,7 +7638,7 @@ int filters_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arr int filters_server_certificate_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_server_certificate *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Paths")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Paths")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7658,7 +7662,7 @@ int filters_server_certificate_parser(void *v_s, char *str, char *aa, struct ptr TRY(!aa, "Paths argument missing\n"); s->paths_str = aa; } - } else if (!(aret = strcmp(str, "Paths[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Paths[]")) || aret == '=') { TRY(!aa, "Paths[] argument missing\n"); SET_NEXT(s->paths, (aa), pa); } else @@ -7672,7 +7676,7 @@ int filters_server_certificate_parser(void *v_s, char *str, char *aa, struct ptr int filters_service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_service *s = v_s; int aret = 0; - if ((aret = strcmp(str, "ServiceIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ServiceIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7696,11 +7700,11 @@ int filters_service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "ServiceIds argument missing\n"); s->service_ids_str = aa; } - } else if (!(aret = strcmp(str, "ServiceIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ServiceIds[]")) || aret == '=') { TRY(!aa, "ServiceIds[] argument missing\n"); SET_NEXT(s->service_ids, (aa), pa); } else - if ((aret = strcmp(str, "ServiceNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ServiceNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7724,7 +7728,7 @@ int filters_service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "ServiceNames argument missing\n"); s->service_names_str = aa; } - } else if (!(aret = strcmp(str, "ServiceNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ServiceNames[]")) || aret == '=') { TRY(!aa, "ServiceNames[] argument missing\n"); SET_NEXT(s->service_names, (aa), pa); } else @@ -7738,7 +7742,7 @@ int filters_service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int filters_snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_snapshot *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccountAliases")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountAliases")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7762,11 +7766,11 @@ int filters_snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "AccountAliases argument missing\n"); s->account_aliases_str = aa; } - } else if (!(aret = strcmp(str, "AccountAliases[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "AccountAliases[]")) || aret == '=') { TRY(!aa, "AccountAliases[] argument missing\n"); SET_NEXT(s->account_aliases, (aa), pa); } else - if ((aret = strcmp(str, "AccountIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7790,11 +7794,11 @@ int filters_snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "AccountIds argument missing\n"); s->account_ids_str = aa; } - } else if (!(aret = strcmp(str, "AccountIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "AccountIds[]")) || aret == '=') { TRY(!aa, "AccountIds[] argument missing\n"); SET_NEXT(s->account_ids, (aa), pa); } else - if ((aret = strcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7818,16 +7822,16 @@ int filters_snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "Descriptions argument missing\n"); s->descriptions_str = aa; } - } else if (!(aret = strcmp(str, "Descriptions[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Descriptions[]")) || aret == '=') { TRY(!aa, "Descriptions[] argument missing\n"); SET_NEXT(s->descriptions, (aa), pa); } else - if ((aret = strcmp(str, "FromCreationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "FromCreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "FromCreationDate argument missing\n"); s->from_creation_date = aa; // string string } else - if ((aret = strcmp(str, "PermissionsToCreateVolumeAccountIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PermissionsToCreateVolumeAccountIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7851,11 +7855,11 @@ int filters_snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "PermissionsToCreateVolumeAccountIds argument missing\n"); s->permissions_to_create_volume_account_ids_str = aa; } - } else if (!(aret = strcmp(str, "PermissionsToCreateVolumeAccountIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "PermissionsToCreateVolumeAccountIds[]")) || aret == '=') { TRY(!aa, "PermissionsToCreateVolumeAccountIds[] argument missing\n"); SET_NEXT(s->permissions_to_create_volume_account_ids, (aa), pa); } else - if ((aret = strcmp(str, "PermissionsToCreateVolumeGlobalPermission")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PermissionsToCreateVolumeGlobalPermission")) == 0 || aret == '=' || aret == '.') { s->is_set_permissions_to_create_volume_global_permission = 1; if (!aa || !strcasecmp(aa, "true")) { s->permissions_to_create_volume_global_permission = 1; @@ -7865,7 +7869,7 @@ int filters_snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa BAD_RET("PermissionsToCreateVolumeGlobalPermission require true/false\n"); } } else - if ((aret = strcmp(str, "Progresses")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Progresses")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7889,11 +7893,11 @@ int filters_snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "Progresses argument missing\n"); s->progresses_str = aa; } - } else if (!(aret = strcmp(str, "Progresses[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Progresses[]")) || aret == '=') { TRY(!aa, "Progresses[] argument missing\n"); SET_NEXT(s->progresses, atoi(aa), pa); } else - if ((aret = strcmp(str, "SnapshotIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SnapshotIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7917,11 +7921,11 @@ int filters_snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "SnapshotIds argument missing\n"); s->snapshot_ids_str = aa; } - } else if (!(aret = strcmp(str, "SnapshotIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SnapshotIds[]")) || aret == '=') { TRY(!aa, "SnapshotIds[] argument missing\n"); SET_NEXT(s->snapshot_ids, (aa), pa); } else - if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "States")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7945,11 +7949,11 @@ int filters_snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "States argument missing\n"); s->states_str = aa; } - } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -7973,11 +7977,11 @@ int filters_snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "TagKeys argument missing\n"); s->tag_keys_str = aa; } - } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8001,11 +8005,11 @@ int filters_snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "TagValues argument missing\n"); s->tag_values_str = aa; } - } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8029,16 +8033,16 @@ int filters_snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "Tags argument missing\n"); s->tags_str = aa; } - } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else - if ((aret = strcmp(str, "ToCreationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ToCreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ToCreationDate argument missing\n"); s->to_creation_date = aa; // string string } else - if ((aret = strcmp(str, "VolumeIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VolumeIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8062,11 +8066,11 @@ int filters_snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "VolumeIds argument missing\n"); s->volume_ids_str = aa; } - } else if (!(aret = strcmp(str, "VolumeIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VolumeIds[]")) || aret == '=') { TRY(!aa, "VolumeIds[] argument missing\n"); SET_NEXT(s->volume_ids, (aa), pa); } else - if ((aret = strcmp(str, "VolumeSizes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VolumeSizes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8090,7 +8094,7 @@ int filters_snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "VolumeSizes argument missing\n"); s->volume_sizes_str = aa; } - } else if (!(aret = strcmp(str, "VolumeSizes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VolumeSizes[]")) || aret == '=') { TRY(!aa, "VolumeSizes[] argument missing\n"); SET_NEXT(s->volume_sizes, atoi(aa), pa); } else @@ -8104,7 +8108,7 @@ int filters_snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa int filters_subnet_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_subnet *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AvailableIpsCounts")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AvailableIpsCounts")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8128,11 +8132,11 @@ int filters_subnet_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "AvailableIpsCounts argument missing\n"); s->available_ips_counts_str = aa; } - } else if (!(aret = strcmp(str, "AvailableIpsCounts[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "AvailableIpsCounts[]")) || aret == '=') { TRY(!aa, "AvailableIpsCounts[] argument missing\n"); SET_NEXT(s->available_ips_counts, atoi(aa), pa); } else - if ((aret = strcmp(str, "IpRanges")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IpRanges")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8156,11 +8160,11 @@ int filters_subnet_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "IpRanges argument missing\n"); s->ip_ranges_str = aa; } - } else if (!(aret = strcmp(str, "IpRanges[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "IpRanges[]")) || aret == '=') { TRY(!aa, "IpRanges[] argument missing\n"); SET_NEXT(s->ip_ranges, (aa), pa); } else - if ((aret = strcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8184,11 +8188,11 @@ int filters_subnet_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "NetIds argument missing\n"); s->net_ids_str = aa; } - } else if (!(aret = strcmp(str, "NetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NetIds[]")) || aret == '=') { TRY(!aa, "NetIds[] argument missing\n"); SET_NEXT(s->net_ids, (aa), pa); } else - if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "States")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8212,11 +8216,11 @@ int filters_subnet_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "States argument missing\n"); s->states_str = aa; } - } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = strcmp(str, "SubnetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubnetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8240,11 +8244,11 @@ int filters_subnet_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "SubnetIds argument missing\n"); s->subnet_ids_str = aa; } - } else if (!(aret = strcmp(str, "SubnetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SubnetIds[]")) || aret == '=') { TRY(!aa, "SubnetIds[] argument missing\n"); SET_NEXT(s->subnet_ids, (aa), pa); } else - if ((aret = strcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8268,11 +8272,11 @@ int filters_subnet_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "SubregionNames argument missing\n"); s->subregion_names_str = aa; } - } else if (!(aret = strcmp(str, "SubregionNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SubregionNames[]")) || aret == '=') { TRY(!aa, "SubregionNames[] argument missing\n"); SET_NEXT(s->subregion_names, (aa), pa); } else - if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8296,11 +8300,11 @@ int filters_subnet_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "TagKeys argument missing\n"); s->tag_keys_str = aa; } - } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8324,11 +8328,11 @@ int filters_subnet_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "TagValues argument missing\n"); s->tag_values_str = aa; } - } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8352,7 +8356,7 @@ int filters_subnet_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "Tags argument missing\n"); s->tags_str = aa; } - } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else @@ -8366,7 +8370,7 @@ int filters_subnet_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int filters_subregion_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_subregion *s = v_s; int aret = 0; - if ((aret = strcmp(str, "RegionNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RegionNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8390,11 +8394,11 @@ int filters_subregion_parser(void *v_s, char *str, char *aa, struct ptr_array *p TRY(!aa, "RegionNames argument missing\n"); s->region_names_str = aa; } - } else if (!(aret = strcmp(str, "RegionNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "RegionNames[]")) || aret == '=') { TRY(!aa, "RegionNames[] argument missing\n"); SET_NEXT(s->region_names, (aa), pa); } else - if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "States")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8418,11 +8422,11 @@ int filters_subregion_parser(void *v_s, char *str, char *aa, struct ptr_array *p TRY(!aa, "States argument missing\n"); s->states_str = aa; } - } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = strcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8446,7 +8450,7 @@ int filters_subregion_parser(void *v_s, char *str, char *aa, struct ptr_array *p TRY(!aa, "SubregionNames argument missing\n"); s->subregion_names_str = aa; } - } else if (!(aret = strcmp(str, "SubregionNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SubregionNames[]")) || aret == '=') { TRY(!aa, "SubregionNames[] argument missing\n"); SET_NEXT(s->subregion_names, (aa), pa); } else @@ -8460,7 +8464,7 @@ int filters_subregion_parser(void *v_s, char *str, char *aa, struct ptr_array *p int filters_tag_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_tag *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Keys")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Keys")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8484,11 +8488,11 @@ int filters_tag_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "Keys argument missing\n"); s->keys_str = aa; } - } else if (!(aret = strcmp(str, "Keys[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Keys[]")) || aret == '=') { TRY(!aa, "Keys[] argument missing\n"); SET_NEXT(s->keys, (aa), pa); } else - if ((aret = strcmp(str, "ResourceIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ResourceIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8512,11 +8516,11 @@ int filters_tag_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "ResourceIds argument missing\n"); s->resource_ids_str = aa; } - } else if (!(aret = strcmp(str, "ResourceIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ResourceIds[]")) || aret == '=') { TRY(!aa, "ResourceIds[] argument missing\n"); SET_NEXT(s->resource_ids, (aa), pa); } else - if ((aret = strcmp(str, "ResourceTypes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ResourceTypes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8540,11 +8544,11 @@ int filters_tag_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "ResourceTypes argument missing\n"); s->resource_types_str = aa; } - } else if (!(aret = strcmp(str, "ResourceTypes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ResourceTypes[]")) || aret == '=') { TRY(!aa, "ResourceTypes[] argument missing\n"); SET_NEXT(s->resource_types, (aa), pa); } else - if ((aret = strcmp(str, "Values")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Values")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8568,7 +8572,7 @@ int filters_tag_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "Values argument missing\n"); s->values_str = aa; } - } else if (!(aret = strcmp(str, "Values[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Values[]")) || aret == '=') { TRY(!aa, "Values[] argument missing\n"); SET_NEXT(s->values, (aa), pa); } else @@ -8582,12 +8586,12 @@ int filters_tag_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int filters_user_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_user_group *s = v_s; int aret = 0; - if ((aret = strcmp(str, "PathPrefix")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PathPrefix")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PathPrefix argument missing\n"); s->path_prefix = aa; // string string } else - if ((aret = strcmp(str, "UserGroupIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "UserGroupIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8611,7 +8615,7 @@ int filters_user_group_parser(void *v_s, char *str, char *aa, struct ptr_array * TRY(!aa, "UserGroupIds argument missing\n"); s->user_group_ids_str = aa; } - } else if (!(aret = strcmp(str, "UserGroupIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "UserGroupIds[]")) || aret == '=') { TRY(!aa, "UserGroupIds[] argument missing\n"); SET_NEXT(s->user_group_ids, (aa), pa); } else @@ -8625,7 +8629,7 @@ int filters_user_group_parser(void *v_s, char *str, char *aa, struct ptr_array * int filters_virtual_gateway_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_virtual_gateway *s = v_s; int aret = 0; - if ((aret = strcmp(str, "ConnectionTypes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ConnectionTypes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8649,11 +8653,11 @@ int filters_virtual_gateway_parser(void *v_s, char *str, char *aa, struct ptr_ar TRY(!aa, "ConnectionTypes argument missing\n"); s->connection_types_str = aa; } - } else if (!(aret = strcmp(str, "ConnectionTypes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ConnectionTypes[]")) || aret == '=') { TRY(!aa, "ConnectionTypes[] argument missing\n"); SET_NEXT(s->connection_types, (aa), pa); } else - if ((aret = strcmp(str, "LinkNetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkNetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8677,11 +8681,11 @@ int filters_virtual_gateway_parser(void *v_s, char *str, char *aa, struct ptr_ar TRY(!aa, "LinkNetIds argument missing\n"); s->link_net_ids_str = aa; } - } else if (!(aret = strcmp(str, "LinkNetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LinkNetIds[]")) || aret == '=') { TRY(!aa, "LinkNetIds[] argument missing\n"); SET_NEXT(s->link_net_ids, (aa), pa); } else - if ((aret = strcmp(str, "LinkStates")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkStates")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8705,11 +8709,11 @@ int filters_virtual_gateway_parser(void *v_s, char *str, char *aa, struct ptr_ar TRY(!aa, "LinkStates argument missing\n"); s->link_states_str = aa; } - } else if (!(aret = strcmp(str, "LinkStates[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LinkStates[]")) || aret == '=') { TRY(!aa, "LinkStates[] argument missing\n"); SET_NEXT(s->link_states, (aa), pa); } else - if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "States")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8733,11 +8737,11 @@ int filters_virtual_gateway_parser(void *v_s, char *str, char *aa, struct ptr_ar TRY(!aa, "States argument missing\n"); s->states_str = aa; } - } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8761,11 +8765,11 @@ int filters_virtual_gateway_parser(void *v_s, char *str, char *aa, struct ptr_ar TRY(!aa, "TagKeys argument missing\n"); s->tag_keys_str = aa; } - } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8789,11 +8793,11 @@ int filters_virtual_gateway_parser(void *v_s, char *str, char *aa, struct ptr_ar TRY(!aa, "TagValues argument missing\n"); s->tag_values_str = aa; } - } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8817,11 +8821,11 @@ int filters_virtual_gateway_parser(void *v_s, char *str, char *aa, struct ptr_ar TRY(!aa, "Tags argument missing\n"); s->tags_str = aa; } - } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else - if ((aret = strcmp(str, "VirtualGatewayIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VirtualGatewayIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8845,7 +8849,7 @@ int filters_virtual_gateway_parser(void *v_s, char *str, char *aa, struct ptr_ar TRY(!aa, "VirtualGatewayIds argument missing\n"); s->virtual_gateway_ids_str = aa; } - } else if (!(aret = strcmp(str, "VirtualGatewayIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VirtualGatewayIds[]")) || aret == '=') { TRY(!aa, "VirtualGatewayIds[] argument missing\n"); SET_NEXT(s->virtual_gateway_ids, (aa), pa); } else @@ -8859,7 +8863,7 @@ int filters_virtual_gateway_parser(void *v_s, char *str, char *aa, struct ptr_ar int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_vm *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Architectures")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Architectures")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8883,11 +8887,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "Architectures argument missing\n"); s->architectures_str = aa; } - } else if (!(aret = strcmp(str, "Architectures[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Architectures[]")) || aret == '=') { TRY(!aa, "Architectures[] argument missing\n"); SET_NEXT(s->architectures, (aa), pa); } else - if ((aret = strcmp(str, "BlockDeviceMappingDeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BlockDeviceMappingDeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_block_device_mapping_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->block_device_mapping_delete_on_vm_deletion = 1; @@ -8897,7 +8901,7 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("BlockDeviceMappingDeleteOnVmDeletion require true/false\n"); } } else - if ((aret = strcmp(str, "BlockDeviceMappingDeviceNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BlockDeviceMappingDeviceNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8921,11 +8925,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "BlockDeviceMappingDeviceNames argument missing\n"); s->block_device_mapping_device_names_str = aa; } - } else if (!(aret = strcmp(str, "BlockDeviceMappingDeviceNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "BlockDeviceMappingDeviceNames[]")) || aret == '=') { TRY(!aa, "BlockDeviceMappingDeviceNames[] argument missing\n"); SET_NEXT(s->block_device_mapping_device_names, (aa), pa); } else - if ((aret = strcmp(str, "BlockDeviceMappingLinkDates")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BlockDeviceMappingLinkDates")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8949,11 +8953,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "BlockDeviceMappingLinkDates argument missing\n"); s->block_device_mapping_link_dates_str = aa; } - } else if (!(aret = strcmp(str, "BlockDeviceMappingLinkDates[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "BlockDeviceMappingLinkDates[]")) || aret == '=') { TRY(!aa, "BlockDeviceMappingLinkDates[] argument missing\n"); SET_NEXT(s->block_device_mapping_link_dates, (aa), pa); } else - if ((aret = strcmp(str, "BlockDeviceMappingStates")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BlockDeviceMappingStates")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -8977,11 +8981,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "BlockDeviceMappingStates argument missing\n"); s->block_device_mapping_states_str = aa; } - } else if (!(aret = strcmp(str, "BlockDeviceMappingStates[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "BlockDeviceMappingStates[]")) || aret == '=') { TRY(!aa, "BlockDeviceMappingStates[] argument missing\n"); SET_NEXT(s->block_device_mapping_states, (aa), pa); } else - if ((aret = strcmp(str, "BlockDeviceMappingVolumeIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BlockDeviceMappingVolumeIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9005,11 +9009,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "BlockDeviceMappingVolumeIds argument missing\n"); s->block_device_mapping_volume_ids_str = aa; } - } else if (!(aret = strcmp(str, "BlockDeviceMappingVolumeIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "BlockDeviceMappingVolumeIds[]")) || aret == '=') { TRY(!aa, "BlockDeviceMappingVolumeIds[] argument missing\n"); SET_NEXT(s->block_device_mapping_volume_ids, (aa), pa); } else - if ((aret = strcmp(str, "ClientTokens")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ClientTokens")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9033,11 +9037,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "ClientTokens argument missing\n"); s->client_tokens_str = aa; } - } else if (!(aret = strcmp(str, "ClientTokens[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ClientTokens[]")) || aret == '=') { TRY(!aa, "ClientTokens[] argument missing\n"); SET_NEXT(s->client_tokens, (aa), pa); } else - if ((aret = strcmp(str, "CreationDates")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CreationDates")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9061,11 +9065,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "CreationDates argument missing\n"); s->creation_dates_str = aa; } - } else if (!(aret = strcmp(str, "CreationDates[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "CreationDates[]")) || aret == '=') { TRY(!aa, "CreationDates[] argument missing\n"); SET_NEXT(s->creation_dates, (aa), pa); } else - if ((aret = strcmp(str, "ImageIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ImageIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9089,11 +9093,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "ImageIds argument missing\n"); s->image_ids_str = aa; } - } else if (!(aret = strcmp(str, "ImageIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ImageIds[]")) || aret == '=') { TRY(!aa, "ImageIds[] argument missing\n"); SET_NEXT(s->image_ids, (aa), pa); } else - if ((aret = strcmp(str, "IsSourceDestChecked")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IsSourceDestChecked")) == 0 || aret == '=' || aret == '.') { s->is_set_is_source_dest_checked = 1; if (!aa || !strcasecmp(aa, "true")) { s->is_source_dest_checked = 1; @@ -9103,7 +9107,7 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("IsSourceDestChecked require true/false\n"); } } else - if ((aret = strcmp(str, "KeypairNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "KeypairNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9127,11 +9131,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "KeypairNames argument missing\n"); s->keypair_names_str = aa; } - } else if (!(aret = strcmp(str, "KeypairNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "KeypairNames[]")) || aret == '=') { TRY(!aa, "KeypairNames[] argument missing\n"); SET_NEXT(s->keypair_names, (aa), pa); } else - if ((aret = strcmp(str, "LaunchNumbers")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LaunchNumbers")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9155,11 +9159,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "LaunchNumbers argument missing\n"); s->launch_numbers_str = aa; } - } else if (!(aret = strcmp(str, "LaunchNumbers[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LaunchNumbers[]")) || aret == '=') { TRY(!aa, "LaunchNumbers[] argument missing\n"); SET_NEXT(s->launch_numbers, atoi(aa), pa); } else - if ((aret = strcmp(str, "Lifecycles")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Lifecycles")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9183,11 +9187,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "Lifecycles argument missing\n"); s->lifecycles_str = aa; } - } else if (!(aret = strcmp(str, "Lifecycles[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Lifecycles[]")) || aret == '=') { TRY(!aa, "Lifecycles[] argument missing\n"); SET_NEXT(s->lifecycles, (aa), pa); } else - if ((aret = strcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9211,11 +9215,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NetIds argument missing\n"); s->net_ids_str = aa; } - } else if (!(aret = strcmp(str, "NetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NetIds[]")) || aret == '=') { TRY(!aa, "NetIds[] argument missing\n"); SET_NEXT(s->net_ids, (aa), pa); } else - if ((aret = strcmp(str, "NicAccountIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicAccountIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9239,11 +9243,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicAccountIds argument missing\n"); s->nic_account_ids_str = aa; } - } else if (!(aret = strcmp(str, "NicAccountIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicAccountIds[]")) || aret == '=') { TRY(!aa, "NicAccountIds[] argument missing\n"); SET_NEXT(s->nic_account_ids, (aa), pa); } else - if ((aret = strcmp(str, "NicDescriptions")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicDescriptions")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9267,11 +9271,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicDescriptions argument missing\n"); s->nic_descriptions_str = aa; } - } else if (!(aret = strcmp(str, "NicDescriptions[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicDescriptions[]")) || aret == '=') { TRY(!aa, "NicDescriptions[] argument missing\n"); SET_NEXT(s->nic_descriptions, (aa), pa); } else - if ((aret = strcmp(str, "NicIsSourceDestChecked")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicIsSourceDestChecked")) == 0 || aret == '=' || aret == '.') { s->is_set_nic_is_source_dest_checked = 1; if (!aa || !strcasecmp(aa, "true")) { s->nic_is_source_dest_checked = 1; @@ -9281,7 +9285,7 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("NicIsSourceDestChecked require true/false\n"); } } else - if ((aret = strcmp(str, "NicLinkNicDeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicLinkNicDeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_nic_link_nic_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->nic_link_nic_delete_on_vm_deletion = 1; @@ -9291,7 +9295,7 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("NicLinkNicDeleteOnVmDeletion require true/false\n"); } } else - if ((aret = strcmp(str, "NicLinkNicDeviceNumbers")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicLinkNicDeviceNumbers")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9315,11 +9319,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicLinkNicDeviceNumbers argument missing\n"); s->nic_link_nic_device_numbers_str = aa; } - } else if (!(aret = strcmp(str, "NicLinkNicDeviceNumbers[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicLinkNicDeviceNumbers[]")) || aret == '=') { TRY(!aa, "NicLinkNicDeviceNumbers[] argument missing\n"); SET_NEXT(s->nic_link_nic_device_numbers, atoi(aa), pa); } else - if ((aret = strcmp(str, "NicLinkNicLinkNicDates")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicLinkNicLinkNicDates")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9343,11 +9347,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicLinkNicLinkNicDates argument missing\n"); s->nic_link_nic_link_nic_dates_str = aa; } - } else if (!(aret = strcmp(str, "NicLinkNicLinkNicDates[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicLinkNicLinkNicDates[]")) || aret == '=') { TRY(!aa, "NicLinkNicLinkNicDates[] argument missing\n"); SET_NEXT(s->nic_link_nic_link_nic_dates, (aa), pa); } else - if ((aret = strcmp(str, "NicLinkNicLinkNicIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicLinkNicLinkNicIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9371,11 +9375,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicLinkNicLinkNicIds argument missing\n"); s->nic_link_nic_link_nic_ids_str = aa; } - } else if (!(aret = strcmp(str, "NicLinkNicLinkNicIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicLinkNicLinkNicIds[]")) || aret == '=') { TRY(!aa, "NicLinkNicLinkNicIds[] argument missing\n"); SET_NEXT(s->nic_link_nic_link_nic_ids, (aa), pa); } else - if ((aret = strcmp(str, "NicLinkNicStates")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicLinkNicStates")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9399,11 +9403,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicLinkNicStates argument missing\n"); s->nic_link_nic_states_str = aa; } - } else if (!(aret = strcmp(str, "NicLinkNicStates[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicLinkNicStates[]")) || aret == '=') { TRY(!aa, "NicLinkNicStates[] argument missing\n"); SET_NEXT(s->nic_link_nic_states, (aa), pa); } else - if ((aret = strcmp(str, "NicLinkNicVmAccountIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicLinkNicVmAccountIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9427,11 +9431,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicLinkNicVmAccountIds argument missing\n"); s->nic_link_nic_vm_account_ids_str = aa; } - } else if (!(aret = strcmp(str, "NicLinkNicVmAccountIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicLinkNicVmAccountIds[]")) || aret == '=') { TRY(!aa, "NicLinkNicVmAccountIds[] argument missing\n"); SET_NEXT(s->nic_link_nic_vm_account_ids, (aa), pa); } else - if ((aret = strcmp(str, "NicLinkNicVmIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicLinkNicVmIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9455,11 +9459,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicLinkNicVmIds argument missing\n"); s->nic_link_nic_vm_ids_str = aa; } - } else if (!(aret = strcmp(str, "NicLinkNicVmIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicLinkNicVmIds[]")) || aret == '=') { TRY(!aa, "NicLinkNicVmIds[] argument missing\n"); SET_NEXT(s->nic_link_nic_vm_ids, (aa), pa); } else - if ((aret = strcmp(str, "NicLinkPublicIpAccountIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicLinkPublicIpAccountIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9483,11 +9487,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicLinkPublicIpAccountIds argument missing\n"); s->nic_link_public_ip_account_ids_str = aa; } - } else if (!(aret = strcmp(str, "NicLinkPublicIpAccountIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicLinkPublicIpAccountIds[]")) || aret == '=') { TRY(!aa, "NicLinkPublicIpAccountIds[] argument missing\n"); SET_NEXT(s->nic_link_public_ip_account_ids, (aa), pa); } else - if ((aret = strcmp(str, "NicLinkPublicIpLinkPublicIpIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicLinkPublicIpLinkPublicIpIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9511,11 +9515,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicLinkPublicIpLinkPublicIpIds argument missing\n"); s->nic_link_public_ip_link_public_ip_ids_str = aa; } - } else if (!(aret = strcmp(str, "NicLinkPublicIpLinkPublicIpIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicLinkPublicIpLinkPublicIpIds[]")) || aret == '=') { TRY(!aa, "NicLinkPublicIpLinkPublicIpIds[] argument missing\n"); SET_NEXT(s->nic_link_public_ip_link_public_ip_ids, (aa), pa); } else - if ((aret = strcmp(str, "NicLinkPublicIpPublicIpIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicLinkPublicIpPublicIpIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9539,11 +9543,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicLinkPublicIpPublicIpIds argument missing\n"); s->nic_link_public_ip_public_ip_ids_str = aa; } - } else if (!(aret = strcmp(str, "NicLinkPublicIpPublicIpIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicLinkPublicIpPublicIpIds[]")) || aret == '=') { TRY(!aa, "NicLinkPublicIpPublicIpIds[] argument missing\n"); SET_NEXT(s->nic_link_public_ip_public_ip_ids, (aa), pa); } else - if ((aret = strcmp(str, "NicLinkPublicIpPublicIps")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicLinkPublicIpPublicIps")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9567,11 +9571,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicLinkPublicIpPublicIps argument missing\n"); s->nic_link_public_ip_public_ips_str = aa; } - } else if (!(aret = strcmp(str, "NicLinkPublicIpPublicIps[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicLinkPublicIpPublicIps[]")) || aret == '=') { TRY(!aa, "NicLinkPublicIpPublicIps[] argument missing\n"); SET_NEXT(s->nic_link_public_ip_public_ips, (aa), pa); } else - if ((aret = strcmp(str, "NicMacAddresses")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicMacAddresses")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9595,11 +9599,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicMacAddresses argument missing\n"); s->nic_mac_addresses_str = aa; } - } else if (!(aret = strcmp(str, "NicMacAddresses[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicMacAddresses[]")) || aret == '=') { TRY(!aa, "NicMacAddresses[] argument missing\n"); SET_NEXT(s->nic_mac_addresses, (aa), pa); } else - if ((aret = strcmp(str, "NicNetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicNetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9623,11 +9627,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicNetIds argument missing\n"); s->nic_net_ids_str = aa; } - } else if (!(aret = strcmp(str, "NicNetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicNetIds[]")) || aret == '=') { TRY(!aa, "NicNetIds[] argument missing\n"); SET_NEXT(s->nic_net_ids, (aa), pa); } else - if ((aret = strcmp(str, "NicNicIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicNicIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9651,11 +9655,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicNicIds argument missing\n"); s->nic_nic_ids_str = aa; } - } else if (!(aret = strcmp(str, "NicNicIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicNicIds[]")) || aret == '=') { TRY(!aa, "NicNicIds[] argument missing\n"); SET_NEXT(s->nic_nic_ids, (aa), pa); } else - if ((aret = strcmp(str, "NicPrivateIpsLinkPublicIpAccountIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicPrivateIpsLinkPublicIpAccountIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9679,11 +9683,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicPrivateIpsLinkPublicIpAccountIds argument missing\n"); s->nic_private_ips_link_public_ip_account_ids_str = aa; } - } else if (!(aret = strcmp(str, "NicPrivateIpsLinkPublicIpAccountIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicPrivateIpsLinkPublicIpAccountIds[]")) || aret == '=') { TRY(!aa, "NicPrivateIpsLinkPublicIpAccountIds[] argument missing\n"); SET_NEXT(s->nic_private_ips_link_public_ip_account_ids, (aa), pa); } else - if ((aret = strcmp(str, "NicPrivateIpsLinkPublicIpIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicPrivateIpsLinkPublicIpIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9707,11 +9711,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicPrivateIpsLinkPublicIpIds argument missing\n"); s->nic_private_ips_link_public_ip_ids_str = aa; } - } else if (!(aret = strcmp(str, "NicPrivateIpsLinkPublicIpIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicPrivateIpsLinkPublicIpIds[]")) || aret == '=') { TRY(!aa, "NicPrivateIpsLinkPublicIpIds[] argument missing\n"); SET_NEXT(s->nic_private_ips_link_public_ip_ids, (aa), pa); } else - if ((aret = strcmp(str, "NicPrivateIpsPrimaryIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicPrivateIpsPrimaryIp")) == 0 || aret == '=' || aret == '.') { s->is_set_nic_private_ips_primary_ip = 1; if (!aa || !strcasecmp(aa, "true")) { s->nic_private_ips_primary_ip = 1; @@ -9721,7 +9725,7 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("NicPrivateIpsPrimaryIp require true/false\n"); } } else - if ((aret = strcmp(str, "NicPrivateIpsPrivateIps")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicPrivateIpsPrivateIps")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9745,11 +9749,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicPrivateIpsPrivateIps argument missing\n"); s->nic_private_ips_private_ips_str = aa; } - } else if (!(aret = strcmp(str, "NicPrivateIpsPrivateIps[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicPrivateIpsPrivateIps[]")) || aret == '=') { TRY(!aa, "NicPrivateIpsPrivateIps[] argument missing\n"); SET_NEXT(s->nic_private_ips_private_ips, (aa), pa); } else - if ((aret = strcmp(str, "NicSecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicSecurityGroupIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9773,11 +9777,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicSecurityGroupIds argument missing\n"); s->nic_security_group_ids_str = aa; } - } else if (!(aret = strcmp(str, "NicSecurityGroupIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicSecurityGroupIds[]")) || aret == '=') { TRY(!aa, "NicSecurityGroupIds[] argument missing\n"); SET_NEXT(s->nic_security_group_ids, (aa), pa); } else - if ((aret = strcmp(str, "NicSecurityGroupNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicSecurityGroupNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9801,11 +9805,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicSecurityGroupNames argument missing\n"); s->nic_security_group_names_str = aa; } - } else if (!(aret = strcmp(str, "NicSecurityGroupNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicSecurityGroupNames[]")) || aret == '=') { TRY(!aa, "NicSecurityGroupNames[] argument missing\n"); SET_NEXT(s->nic_security_group_names, (aa), pa); } else - if ((aret = strcmp(str, "NicStates")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicStates")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9829,11 +9833,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicStates argument missing\n"); s->nic_states_str = aa; } - } else if (!(aret = strcmp(str, "NicStates[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicStates[]")) || aret == '=') { TRY(!aa, "NicStates[] argument missing\n"); SET_NEXT(s->nic_states, (aa), pa); } else - if ((aret = strcmp(str, "NicSubnetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicSubnetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9857,11 +9861,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicSubnetIds argument missing\n"); s->nic_subnet_ids_str = aa; } - } else if (!(aret = strcmp(str, "NicSubnetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicSubnetIds[]")) || aret == '=') { TRY(!aa, "NicSubnetIds[] argument missing\n"); SET_NEXT(s->nic_subnet_ids, (aa), pa); } else - if ((aret = strcmp(str, "NicSubregionNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicSubregionNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9885,11 +9889,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "NicSubregionNames argument missing\n"); s->nic_subregion_names_str = aa; } - } else if (!(aret = strcmp(str, "NicSubregionNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NicSubregionNames[]")) || aret == '=') { TRY(!aa, "NicSubregionNames[] argument missing\n"); SET_NEXT(s->nic_subregion_names, (aa), pa); } else - if ((aret = strcmp(str, "Platforms")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Platforms")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9913,11 +9917,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "Platforms argument missing\n"); s->platforms_str = aa; } - } else if (!(aret = strcmp(str, "Platforms[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Platforms[]")) || aret == '=') { TRY(!aa, "Platforms[] argument missing\n"); SET_NEXT(s->platforms, (aa), pa); } else - if ((aret = strcmp(str, "PrivateIps")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PrivateIps")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9941,11 +9945,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "PrivateIps argument missing\n"); s->private_ips_str = aa; } - } else if (!(aret = strcmp(str, "PrivateIps[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "PrivateIps[]")) || aret == '=') { TRY(!aa, "PrivateIps[] argument missing\n"); SET_NEXT(s->private_ips, (aa), pa); } else - if ((aret = strcmp(str, "ProductCodes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ProductCodes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9969,11 +9973,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "ProductCodes argument missing\n"); s->product_codes_str = aa; } - } else if (!(aret = strcmp(str, "ProductCodes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ProductCodes[]")) || aret == '=') { TRY(!aa, "ProductCodes[] argument missing\n"); SET_NEXT(s->product_codes, (aa), pa); } else - if ((aret = strcmp(str, "PublicIps")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PublicIps")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -9997,11 +10001,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "PublicIps argument missing\n"); s->public_ips_str = aa; } - } else if (!(aret = strcmp(str, "PublicIps[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "PublicIps[]")) || aret == '=') { TRY(!aa, "PublicIps[] argument missing\n"); SET_NEXT(s->public_ips, (aa), pa); } else - if ((aret = strcmp(str, "ReservationIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ReservationIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10025,11 +10029,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "ReservationIds argument missing\n"); s->reservation_ids_str = aa; } - } else if (!(aret = strcmp(str, "ReservationIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ReservationIds[]")) || aret == '=') { TRY(!aa, "ReservationIds[] argument missing\n"); SET_NEXT(s->reservation_ids, (aa), pa); } else - if ((aret = strcmp(str, "RootDeviceNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RootDeviceNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10053,11 +10057,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "RootDeviceNames argument missing\n"); s->root_device_names_str = aa; } - } else if (!(aret = strcmp(str, "RootDeviceNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "RootDeviceNames[]")) || aret == '=') { TRY(!aa, "RootDeviceNames[] argument missing\n"); SET_NEXT(s->root_device_names, (aa), pa); } else - if ((aret = strcmp(str, "RootDeviceTypes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RootDeviceTypes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10081,11 +10085,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "RootDeviceTypes argument missing\n"); s->root_device_types_str = aa; } - } else if (!(aret = strcmp(str, "RootDeviceTypes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "RootDeviceTypes[]")) || aret == '=') { TRY(!aa, "RootDeviceTypes[] argument missing\n"); SET_NEXT(s->root_device_types, (aa), pa); } else - if ((aret = strcmp(str, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10109,11 +10113,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "SecurityGroupIds argument missing\n"); s->security_group_ids_str = aa; } - } else if (!(aret = strcmp(str, "SecurityGroupIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SecurityGroupIds[]")) || aret == '=') { TRY(!aa, "SecurityGroupIds[] argument missing\n"); SET_NEXT(s->security_group_ids, (aa), pa); } else - if ((aret = strcmp(str, "SecurityGroupNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecurityGroupNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10137,11 +10141,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "SecurityGroupNames argument missing\n"); s->security_group_names_str = aa; } - } else if (!(aret = strcmp(str, "SecurityGroupNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SecurityGroupNames[]")) || aret == '=') { TRY(!aa, "SecurityGroupNames[] argument missing\n"); SET_NEXT(s->security_group_names, (aa), pa); } else - if ((aret = strcmp(str, "StateReasonCodes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "StateReasonCodes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10165,11 +10169,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "StateReasonCodes argument missing\n"); s->state_reason_codes_str = aa; } - } else if (!(aret = strcmp(str, "StateReasonCodes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "StateReasonCodes[]")) || aret == '=') { TRY(!aa, "StateReasonCodes[] argument missing\n"); SET_NEXT(s->state_reason_codes, atoi(aa), pa); } else - if ((aret = strcmp(str, "StateReasonMessages")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "StateReasonMessages")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10193,11 +10197,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "StateReasonMessages argument missing\n"); s->state_reason_messages_str = aa; } - } else if (!(aret = strcmp(str, "StateReasonMessages[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "StateReasonMessages[]")) || aret == '=') { TRY(!aa, "StateReasonMessages[] argument missing\n"); SET_NEXT(s->state_reason_messages, (aa), pa); } else - if ((aret = strcmp(str, "StateReasons")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "StateReasons")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10221,11 +10225,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "StateReasons argument missing\n"); s->state_reasons_str = aa; } - } else if (!(aret = strcmp(str, "StateReasons[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "StateReasons[]")) || aret == '=') { TRY(!aa, "StateReasons[] argument missing\n"); SET_NEXT(s->state_reasons, (aa), pa); } else - if ((aret = strcmp(str, "SubnetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubnetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10249,11 +10253,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "SubnetIds argument missing\n"); s->subnet_ids_str = aa; } - } else if (!(aret = strcmp(str, "SubnetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SubnetIds[]")) || aret == '=') { TRY(!aa, "SubnetIds[] argument missing\n"); SET_NEXT(s->subnet_ids, (aa), pa); } else - if ((aret = strcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10277,11 +10281,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "SubregionNames argument missing\n"); s->subregion_names_str = aa; } - } else if (!(aret = strcmp(str, "SubregionNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SubregionNames[]")) || aret == '=') { TRY(!aa, "SubregionNames[] argument missing\n"); SET_NEXT(s->subregion_names, (aa), pa); } else - if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10305,11 +10309,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "TagKeys argument missing\n"); s->tag_keys_str = aa; } - } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10333,11 +10337,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "TagValues argument missing\n"); s->tag_values_str = aa; } - } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10361,11 +10365,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "Tags argument missing\n"); s->tags_str = aa; } - } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else - if ((aret = strcmp(str, "Tenancies")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tenancies")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10389,11 +10393,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "Tenancies argument missing\n"); s->tenancies_str = aa; } - } else if (!(aret = strcmp(str, "Tenancies[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Tenancies[]")) || aret == '=') { TRY(!aa, "Tenancies[] argument missing\n"); SET_NEXT(s->tenancies, (aa), pa); } else - if ((aret = strcmp(str, "VmIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10417,11 +10421,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "VmIds argument missing\n"); s->vm_ids_str = aa; } - } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); } else - if ((aret = strcmp(str, "VmSecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmSecurityGroupIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10445,11 +10449,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "VmSecurityGroupIds argument missing\n"); s->vm_security_group_ids_str = aa; } - } else if (!(aret = strcmp(str, "VmSecurityGroupIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmSecurityGroupIds[]")) || aret == '=') { TRY(!aa, "VmSecurityGroupIds[] argument missing\n"); SET_NEXT(s->vm_security_group_ids, (aa), pa); } else - if ((aret = strcmp(str, "VmSecurityGroupNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmSecurityGroupNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10473,11 +10477,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "VmSecurityGroupNames argument missing\n"); s->vm_security_group_names_str = aa; } - } else if (!(aret = strcmp(str, "VmSecurityGroupNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmSecurityGroupNames[]")) || aret == '=') { TRY(!aa, "VmSecurityGroupNames[] argument missing\n"); SET_NEXT(s->vm_security_group_names, (aa), pa); } else - if ((aret = strcmp(str, "VmStateCodes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmStateCodes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10501,11 +10505,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "VmStateCodes argument missing\n"); s->vm_state_codes_str = aa; } - } else if (!(aret = strcmp(str, "VmStateCodes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmStateCodes[]")) || aret == '=') { TRY(!aa, "VmStateCodes[] argument missing\n"); SET_NEXT(s->vm_state_codes, atoi(aa), pa); } else - if ((aret = strcmp(str, "VmStateNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmStateNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10529,11 +10533,11 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "VmStateNames argument missing\n"); s->vm_state_names_str = aa; } - } else if (!(aret = strcmp(str, "VmStateNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmStateNames[]")) || aret == '=') { TRY(!aa, "VmStateNames[] argument missing\n"); SET_NEXT(s->vm_state_names, (aa), pa); } else - if ((aret = strcmp(str, "VmTypes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmTypes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10557,7 +10561,7 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "VmTypes argument missing\n"); s->vm_types_str = aa; } - } else if (!(aret = strcmp(str, "VmTypes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmTypes[]")) || aret == '=') { TRY(!aa, "VmTypes[] argument missing\n"); SET_NEXT(s->vm_types, (aa), pa); } else @@ -10571,7 +10575,7 @@ int filters_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int filters_vm_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_vm_group *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10595,11 +10599,11 @@ int filters_vm_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "Descriptions argument missing\n"); s->descriptions_str = aa; } - } else if (!(aret = strcmp(str, "Descriptions[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Descriptions[]")) || aret == '=') { TRY(!aa, "Descriptions[] argument missing\n"); SET_NEXT(s->descriptions, (aa), pa); } else - if ((aret = strcmp(str, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10623,11 +10627,11 @@ int filters_vm_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "SecurityGroupIds argument missing\n"); s->security_group_ids_str = aa; } - } else if (!(aret = strcmp(str, "SecurityGroupIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SecurityGroupIds[]")) || aret == '=') { TRY(!aa, "SecurityGroupIds[] argument missing\n"); SET_NEXT(s->security_group_ids, (aa), pa); } else - if ((aret = strcmp(str, "SubnetIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubnetIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10651,11 +10655,11 @@ int filters_vm_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "SubnetIds argument missing\n"); s->subnet_ids_str = aa; } - } else if (!(aret = strcmp(str, "SubnetIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SubnetIds[]")) || aret == '=') { TRY(!aa, "SubnetIds[] argument missing\n"); SET_NEXT(s->subnet_ids, (aa), pa); } else - if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10679,11 +10683,11 @@ int filters_vm_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "TagKeys argument missing\n"); s->tag_keys_str = aa; } - } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10707,11 +10711,11 @@ int filters_vm_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "TagValues argument missing\n"); s->tag_values_str = aa; } - } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10735,11 +10739,11 @@ int filters_vm_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "Tags argument missing\n"); s->tags_str = aa; } - } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else - if ((aret = strcmp(str, "VmCounts")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmCounts")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10763,11 +10767,11 @@ int filters_vm_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "VmCounts argument missing\n"); s->vm_counts_str = aa; } - } else if (!(aret = strcmp(str, "VmCounts[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmCounts[]")) || aret == '=') { TRY(!aa, "VmCounts[] argument missing\n"); SET_NEXT(s->vm_counts, atoi(aa), pa); } else - if ((aret = strcmp(str, "VmGroupIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmGroupIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10791,11 +10795,11 @@ int filters_vm_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "VmGroupIds argument missing\n"); s->vm_group_ids_str = aa; } - } else if (!(aret = strcmp(str, "VmGroupIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmGroupIds[]")) || aret == '=') { TRY(!aa, "VmGroupIds[] argument missing\n"); SET_NEXT(s->vm_group_ids, (aa), pa); } else - if ((aret = strcmp(str, "VmGroupNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmGroupNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10819,11 +10823,11 @@ int filters_vm_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "VmGroupNames argument missing\n"); s->vm_group_names_str = aa; } - } else if (!(aret = strcmp(str, "VmGroupNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmGroupNames[]")) || aret == '=') { TRY(!aa, "VmGroupNames[] argument missing\n"); SET_NEXT(s->vm_group_names, (aa), pa); } else - if ((aret = strcmp(str, "VmTemplateIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmTemplateIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10847,7 +10851,7 @@ int filters_vm_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "VmTemplateIds argument missing\n"); s->vm_template_ids_str = aa; } - } else if (!(aret = strcmp(str, "VmTemplateIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmTemplateIds[]")) || aret == '=') { TRY(!aa, "VmTemplateIds[] argument missing\n"); SET_NEXT(s->vm_template_ids, (aa), pa); } else @@ -10861,7 +10865,7 @@ int filters_vm_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa int filters_vm_template_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_vm_template *s = v_s; int aret = 0; - if ((aret = strcmp(str, "CpuCores")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CpuCores")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10885,11 +10889,11 @@ int filters_vm_template_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "CpuCores argument missing\n"); s->cpu_cores_str = aa; } - } else if (!(aret = strcmp(str, "CpuCores[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "CpuCores[]")) || aret == '=') { TRY(!aa, "CpuCores[] argument missing\n"); SET_NEXT(s->cpu_cores, atoi(aa), pa); } else - if ((aret = strcmp(str, "CpuGenerations")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CpuGenerations")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10913,11 +10917,11 @@ int filters_vm_template_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "CpuGenerations argument missing\n"); s->cpu_generations_str = aa; } - } else if (!(aret = strcmp(str, "CpuGenerations[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "CpuGenerations[]")) || aret == '=') { TRY(!aa, "CpuGenerations[] argument missing\n"); SET_NEXT(s->cpu_generations, (aa), pa); } else - if ((aret = strcmp(str, "CpuPerformances")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CpuPerformances")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10941,11 +10945,11 @@ int filters_vm_template_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "CpuPerformances argument missing\n"); s->cpu_performances_str = aa; } - } else if (!(aret = strcmp(str, "CpuPerformances[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "CpuPerformances[]")) || aret == '=') { TRY(!aa, "CpuPerformances[] argument missing\n"); SET_NEXT(s->cpu_performances, (aa), pa); } else - if ((aret = strcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Descriptions")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10969,11 +10973,11 @@ int filters_vm_template_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "Descriptions argument missing\n"); s->descriptions_str = aa; } - } else if (!(aret = strcmp(str, "Descriptions[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Descriptions[]")) || aret == '=') { TRY(!aa, "Descriptions[] argument missing\n"); SET_NEXT(s->descriptions, (aa), pa); } else - if ((aret = strcmp(str, "ImageIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ImageIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -10997,11 +11001,11 @@ int filters_vm_template_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "ImageIds argument missing\n"); s->image_ids_str = aa; } - } else if (!(aret = strcmp(str, "ImageIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ImageIds[]")) || aret == '=') { TRY(!aa, "ImageIds[] argument missing\n"); SET_NEXT(s->image_ids, (aa), pa); } else - if ((aret = strcmp(str, "KeypairNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "KeypairNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11025,11 +11029,11 @@ int filters_vm_template_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "KeypairNames argument missing\n"); s->keypair_names_str = aa; } - } else if (!(aret = strcmp(str, "KeypairNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "KeypairNames[]")) || aret == '=') { TRY(!aa, "KeypairNames[] argument missing\n"); SET_NEXT(s->keypair_names, (aa), pa); } else - if ((aret = strcmp(str, "Rams")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Rams")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11053,11 +11057,11 @@ int filters_vm_template_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "Rams argument missing\n"); s->rams_str = aa; } - } else if (!(aret = strcmp(str, "Rams[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Rams[]")) || aret == '=') { TRY(!aa, "Rams[] argument missing\n"); SET_NEXT(s->rams, atoi(aa), pa); } else - if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11081,11 +11085,11 @@ int filters_vm_template_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "TagKeys argument missing\n"); s->tag_keys_str = aa; } - } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11109,11 +11113,11 @@ int filters_vm_template_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "TagValues argument missing\n"); s->tag_values_str = aa; } - } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11137,11 +11141,11 @@ int filters_vm_template_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "Tags argument missing\n"); s->tags_str = aa; } - } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else - if ((aret = strcmp(str, "VmTemplateIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmTemplateIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11165,11 +11169,11 @@ int filters_vm_template_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "VmTemplateIds argument missing\n"); s->vm_template_ids_str = aa; } - } else if (!(aret = strcmp(str, "VmTemplateIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmTemplateIds[]")) || aret == '=') { TRY(!aa, "VmTemplateIds[] argument missing\n"); SET_NEXT(s->vm_template_ids, (aa), pa); } else - if ((aret = strcmp(str, "VmTemplateNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmTemplateNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11193,7 +11197,7 @@ int filters_vm_template_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "VmTemplateNames argument missing\n"); s->vm_template_names_str = aa; } - } else if (!(aret = strcmp(str, "VmTemplateNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmTemplateNames[]")) || aret == '=') { TRY(!aa, "VmTemplateNames[] argument missing\n"); SET_NEXT(s->vm_template_names, (aa), pa); } else @@ -11207,7 +11211,7 @@ int filters_vm_template_parser(void *v_s, char *str, char *aa, struct ptr_array int filters_vm_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_vm_type *s = v_s; int aret = 0; - if ((aret = strcmp(str, "BsuOptimized")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BsuOptimized")) == 0 || aret == '=' || aret == '.') { s->is_set_bsu_optimized = 1; if (!aa || !strcasecmp(aa, "true")) { s->bsu_optimized = 1; @@ -11217,7 +11221,7 @@ int filters_vm_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) BAD_RET("BsuOptimized require true/false\n"); } } else - if ((aret = strcmp(str, "EphemeralsTypes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "EphemeralsTypes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11241,11 +11245,11 @@ int filters_vm_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "EphemeralsTypes argument missing\n"); s->ephemerals_types_str = aa; } - } else if (!(aret = strcmp(str, "EphemeralsTypes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "EphemeralsTypes[]")) || aret == '=') { TRY(!aa, "EphemeralsTypes[] argument missing\n"); SET_NEXT(s->ephemerals_types, (aa), pa); } else - if ((aret = strcmp(str, "Eths")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Eths")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11269,11 +11273,11 @@ int filters_vm_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "Eths argument missing\n"); s->eths_str = aa; } - } else if (!(aret = strcmp(str, "Eths[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Eths[]")) || aret == '=') { TRY(!aa, "Eths[] argument missing\n"); SET_NEXT(s->eths, atoi(aa), pa); } else - if ((aret = strcmp(str, "Gpus")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Gpus")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11297,11 +11301,11 @@ int filters_vm_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "Gpus argument missing\n"); s->gpus_str = aa; } - } else if (!(aret = strcmp(str, "Gpus[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Gpus[]")) || aret == '=') { TRY(!aa, "Gpus[] argument missing\n"); SET_NEXT(s->gpus, atoi(aa), pa); } else - if ((aret = strcmp(str, "MemorySizes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "MemorySizes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11325,11 +11329,11 @@ int filters_vm_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "MemorySizes argument missing\n"); s->memory_sizes_str = aa; } - } else if (!(aret = strcmp(str, "MemorySizes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "MemorySizes[]")) || aret == '=') { TRY(!aa, "MemorySizes[] argument missing\n"); SET_NEXT(s->memory_sizes, atof(aa), pa); } else - if ((aret = strcmp(str, "VcoreCounts")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VcoreCounts")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11353,11 +11357,11 @@ int filters_vm_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "VcoreCounts argument missing\n"); s->vcore_counts_str = aa; } - } else if (!(aret = strcmp(str, "VcoreCounts[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VcoreCounts[]")) || aret == '=') { TRY(!aa, "VcoreCounts[] argument missing\n"); SET_NEXT(s->vcore_counts, atoi(aa), pa); } else - if ((aret = strcmp(str, "VmTypeNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmTypeNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11381,11 +11385,11 @@ int filters_vm_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "VmTypeNames argument missing\n"); s->vm_type_names_str = aa; } - } else if (!(aret = strcmp(str, "VmTypeNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmTypeNames[]")) || aret == '=') { TRY(!aa, "VmTypeNames[] argument missing\n"); SET_NEXT(s->vm_type_names, (aa), pa); } else - if ((aret = strcmp(str, "VolumeCounts")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VolumeCounts")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11409,11 +11413,11 @@ int filters_vm_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "VolumeCounts argument missing\n"); s->volume_counts_str = aa; } - } else if (!(aret = strcmp(str, "VolumeCounts[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VolumeCounts[]")) || aret == '=') { TRY(!aa, "VolumeCounts[] argument missing\n"); SET_NEXT(s->volume_counts, atoi(aa), pa); } else - if ((aret = strcmp(str, "VolumeSizes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VolumeSizes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11437,7 +11441,7 @@ int filters_vm_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "VolumeSizes argument missing\n"); s->volume_sizes_str = aa; } - } else if (!(aret = strcmp(str, "VolumeSizes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VolumeSizes[]")) || aret == '=') { TRY(!aa, "VolumeSizes[] argument missing\n"); SET_NEXT(s->volume_sizes, atoi(aa), pa); } else @@ -11451,7 +11455,7 @@ int filters_vm_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int filters_vms_state_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_vms_state *s = v_s; int aret = 0; - if ((aret = strcmp(str, "MaintenanceEventCodes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "MaintenanceEventCodes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11475,11 +11479,11 @@ int filters_vms_state_parser(void *v_s, char *str, char *aa, struct ptr_array *p TRY(!aa, "MaintenanceEventCodes argument missing\n"); s->maintenance_event_codes_str = aa; } - } else if (!(aret = strcmp(str, "MaintenanceEventCodes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "MaintenanceEventCodes[]")) || aret == '=') { TRY(!aa, "MaintenanceEventCodes[] argument missing\n"); SET_NEXT(s->maintenance_event_codes, (aa), pa); } else - if ((aret = strcmp(str, "MaintenanceEventDescriptions")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "MaintenanceEventDescriptions")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11503,11 +11507,11 @@ int filters_vms_state_parser(void *v_s, char *str, char *aa, struct ptr_array *p TRY(!aa, "MaintenanceEventDescriptions argument missing\n"); s->maintenance_event_descriptions_str = aa; } - } else if (!(aret = strcmp(str, "MaintenanceEventDescriptions[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "MaintenanceEventDescriptions[]")) || aret == '=') { TRY(!aa, "MaintenanceEventDescriptions[] argument missing\n"); SET_NEXT(s->maintenance_event_descriptions, (aa), pa); } else - if ((aret = strcmp(str, "MaintenanceEventsNotAfter")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "MaintenanceEventsNotAfter")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11531,11 +11535,11 @@ int filters_vms_state_parser(void *v_s, char *str, char *aa, struct ptr_array *p TRY(!aa, "MaintenanceEventsNotAfter argument missing\n"); s->maintenance_events_not_after_str = aa; } - } else if (!(aret = strcmp(str, "MaintenanceEventsNotAfter[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "MaintenanceEventsNotAfter[]")) || aret == '=') { TRY(!aa, "MaintenanceEventsNotAfter[] argument missing\n"); SET_NEXT(s->maintenance_events_not_after, (aa), pa); } else - if ((aret = strcmp(str, "MaintenanceEventsNotBefore")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "MaintenanceEventsNotBefore")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11559,11 +11563,11 @@ int filters_vms_state_parser(void *v_s, char *str, char *aa, struct ptr_array *p TRY(!aa, "MaintenanceEventsNotBefore argument missing\n"); s->maintenance_events_not_before_str = aa; } - } else if (!(aret = strcmp(str, "MaintenanceEventsNotBefore[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "MaintenanceEventsNotBefore[]")) || aret == '=') { TRY(!aa, "MaintenanceEventsNotBefore[] argument missing\n"); SET_NEXT(s->maintenance_events_not_before, (aa), pa); } else - if ((aret = strcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11587,11 +11591,11 @@ int filters_vms_state_parser(void *v_s, char *str, char *aa, struct ptr_array *p TRY(!aa, "SubregionNames argument missing\n"); s->subregion_names_str = aa; } - } else if (!(aret = strcmp(str, "SubregionNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SubregionNames[]")) || aret == '=') { TRY(!aa, "SubregionNames[] argument missing\n"); SET_NEXT(s->subregion_names, (aa), pa); } else - if ((aret = strcmp(str, "VmIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11615,11 +11619,11 @@ int filters_vms_state_parser(void *v_s, char *str, char *aa, struct ptr_array *p TRY(!aa, "VmIds argument missing\n"); s->vm_ids_str = aa; } - } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); } else - if ((aret = strcmp(str, "VmStates")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmStates")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11643,7 +11647,7 @@ int filters_vms_state_parser(void *v_s, char *str, char *aa, struct ptr_array *p TRY(!aa, "VmStates argument missing\n"); s->vm_states_str = aa; } - } else if (!(aret = strcmp(str, "VmStates[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmStates[]")) || aret == '=') { TRY(!aa, "VmStates[] argument missing\n"); SET_NEXT(s->vm_states, (aa), pa); } else @@ -11657,7 +11661,7 @@ int filters_vms_state_parser(void *v_s, char *str, char *aa, struct ptr_array *p int filters_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_volume *s = v_s; int aret = 0; - if ((aret = strcmp(str, "CreationDates")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CreationDates")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11681,11 +11685,11 @@ int filters_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "CreationDates argument missing\n"); s->creation_dates_str = aa; } - } else if (!(aret = strcmp(str, "CreationDates[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "CreationDates[]")) || aret == '=') { TRY(!aa, "CreationDates[] argument missing\n"); SET_NEXT(s->creation_dates, (aa), pa); } else - if ((aret = strcmp(str, "LinkVolumeDeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkVolumeDeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_link_volume_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->link_volume_delete_on_vm_deletion = 1; @@ -11695,7 +11699,7 @@ int filters_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) BAD_RET("LinkVolumeDeleteOnVmDeletion require true/false\n"); } } else - if ((aret = strcmp(str, "LinkVolumeDeviceNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkVolumeDeviceNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11719,11 +11723,11 @@ int filters_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "LinkVolumeDeviceNames argument missing\n"); s->link_volume_device_names_str = aa; } - } else if (!(aret = strcmp(str, "LinkVolumeDeviceNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LinkVolumeDeviceNames[]")) || aret == '=') { TRY(!aa, "LinkVolumeDeviceNames[] argument missing\n"); SET_NEXT(s->link_volume_device_names, (aa), pa); } else - if ((aret = strcmp(str, "LinkVolumeLinkDates")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkVolumeLinkDates")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11747,11 +11751,11 @@ int filters_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "LinkVolumeLinkDates argument missing\n"); s->link_volume_link_dates_str = aa; } - } else if (!(aret = strcmp(str, "LinkVolumeLinkDates[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LinkVolumeLinkDates[]")) || aret == '=') { TRY(!aa, "LinkVolumeLinkDates[] argument missing\n"); SET_NEXT(s->link_volume_link_dates, (aa), pa); } else - if ((aret = strcmp(str, "LinkVolumeLinkStates")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkVolumeLinkStates")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11775,11 +11779,11 @@ int filters_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "LinkVolumeLinkStates argument missing\n"); s->link_volume_link_states_str = aa; } - } else if (!(aret = strcmp(str, "LinkVolumeLinkStates[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LinkVolumeLinkStates[]")) || aret == '=') { TRY(!aa, "LinkVolumeLinkStates[] argument missing\n"); SET_NEXT(s->link_volume_link_states, (aa), pa); } else - if ((aret = strcmp(str, "LinkVolumeVmIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkVolumeVmIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11803,11 +11807,11 @@ int filters_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "LinkVolumeVmIds argument missing\n"); s->link_volume_vm_ids_str = aa; } - } else if (!(aret = strcmp(str, "LinkVolumeVmIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LinkVolumeVmIds[]")) || aret == '=') { TRY(!aa, "LinkVolumeVmIds[] argument missing\n"); SET_NEXT(s->link_volume_vm_ids, (aa), pa); } else - if ((aret = strcmp(str, "SnapshotIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SnapshotIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11831,11 +11835,11 @@ int filters_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "SnapshotIds argument missing\n"); s->snapshot_ids_str = aa; } - } else if (!(aret = strcmp(str, "SnapshotIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SnapshotIds[]")) || aret == '=') { TRY(!aa, "SnapshotIds[] argument missing\n"); SET_NEXT(s->snapshot_ids, (aa), pa); } else - if ((aret = strcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11859,11 +11863,11 @@ int filters_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "SubregionNames argument missing\n"); s->subregion_names_str = aa; } - } else if (!(aret = strcmp(str, "SubregionNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SubregionNames[]")) || aret == '=') { TRY(!aa, "SubregionNames[] argument missing\n"); SET_NEXT(s->subregion_names, (aa), pa); } else - if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11887,11 +11891,11 @@ int filters_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "TagKeys argument missing\n"); s->tag_keys_str = aa; } - } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11915,11 +11919,11 @@ int filters_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "TagValues argument missing\n"); s->tag_values_str = aa; } - } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11943,11 +11947,11 @@ int filters_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "Tags argument missing\n"); s->tags_str = aa; } - } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else - if ((aret = strcmp(str, "VolumeIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VolumeIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11971,11 +11975,11 @@ int filters_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "VolumeIds argument missing\n"); s->volume_ids_str = aa; } - } else if (!(aret = strcmp(str, "VolumeIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VolumeIds[]")) || aret == '=') { TRY(!aa, "VolumeIds[] argument missing\n"); SET_NEXT(s->volume_ids, (aa), pa); } else - if ((aret = strcmp(str, "VolumeSizes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VolumeSizes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -11999,11 +12003,11 @@ int filters_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "VolumeSizes argument missing\n"); s->volume_sizes_str = aa; } - } else if (!(aret = strcmp(str, "VolumeSizes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VolumeSizes[]")) || aret == '=') { TRY(!aa, "VolumeSizes[] argument missing\n"); SET_NEXT(s->volume_sizes, atoi(aa), pa); } else - if ((aret = strcmp(str, "VolumeStates")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VolumeStates")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -12027,11 +12031,11 @@ int filters_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "VolumeStates argument missing\n"); s->volume_states_str = aa; } - } else if (!(aret = strcmp(str, "VolumeStates[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VolumeStates[]")) || aret == '=') { TRY(!aa, "VolumeStates[] argument missing\n"); SET_NEXT(s->volume_states, (aa), pa); } else - if ((aret = strcmp(str, "VolumeTypes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VolumeTypes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -12055,7 +12059,7 @@ int filters_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "VolumeTypes argument missing\n"); s->volume_types_str = aa; } - } else if (!(aret = strcmp(str, "VolumeTypes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VolumeTypes[]")) || aret == '=') { TRY(!aa, "VolumeTypes[] argument missing\n"); SET_NEXT(s->volume_types, (aa), pa); } else @@ -12069,7 +12073,7 @@ int filters_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int filters_vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct filters_vpn_connection *s = v_s; int aret = 0; - if ((aret = strcmp(str, "BgpAsns")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BgpAsns")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -12093,11 +12097,11 @@ int filters_vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "BgpAsns argument missing\n"); s->bgp_asns_str = aa; } - } else if (!(aret = strcmp(str, "BgpAsns[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "BgpAsns[]")) || aret == '=') { TRY(!aa, "BgpAsns[] argument missing\n"); SET_NEXT(s->bgp_asns, atoi(aa), pa); } else - if ((aret = strcmp(str, "ClientGatewayIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ClientGatewayIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -12121,11 +12125,11 @@ int filters_vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "ClientGatewayIds argument missing\n"); s->client_gateway_ids_str = aa; } - } else if (!(aret = strcmp(str, "ClientGatewayIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ClientGatewayIds[]")) || aret == '=') { TRY(!aa, "ClientGatewayIds[] argument missing\n"); SET_NEXT(s->client_gateway_ids, (aa), pa); } else - if ((aret = strcmp(str, "ConnectionTypes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ConnectionTypes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -12149,11 +12153,11 @@ int filters_vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "ConnectionTypes argument missing\n"); s->connection_types_str = aa; } - } else if (!(aret = strcmp(str, "ConnectionTypes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ConnectionTypes[]")) || aret == '=') { TRY(!aa, "ConnectionTypes[] argument missing\n"); SET_NEXT(s->connection_types, (aa), pa); } else - if ((aret = strcmp(str, "RouteDestinationIpRanges")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RouteDestinationIpRanges")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -12177,11 +12181,11 @@ int filters_vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "RouteDestinationIpRanges argument missing\n"); s->route_destination_ip_ranges_str = aa; } - } else if (!(aret = strcmp(str, "RouteDestinationIpRanges[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "RouteDestinationIpRanges[]")) || aret == '=') { TRY(!aa, "RouteDestinationIpRanges[] argument missing\n"); SET_NEXT(s->route_destination_ip_ranges, (aa), pa); } else - if ((aret = strcmp(str, "States")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "States")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -12205,11 +12209,11 @@ int filters_vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "States argument missing\n"); s->states_str = aa; } - } else if (!(aret = strcmp(str, "States[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "States[]")) || aret == '=') { TRY(!aa, "States[] argument missing\n"); SET_NEXT(s->states, (aa), pa); } else - if ((aret = strcmp(str, "StaticRoutesOnly")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "StaticRoutesOnly")) == 0 || aret == '=' || aret == '.') { s->is_set_static_routes_only = 1; if (!aa || !strcasecmp(aa, "true")) { s->static_routes_only = 1; @@ -12219,7 +12223,7 @@ int filters_vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_arr BAD_RET("StaticRoutesOnly require true/false\n"); } } else - if ((aret = strcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagKeys")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -12243,11 +12247,11 @@ int filters_vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "TagKeys argument missing\n"); s->tag_keys_str = aa; } - } else if (!(aret = strcmp(str, "TagKeys[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagKeys[]")) || aret == '=') { TRY(!aa, "TagKeys[] argument missing\n"); SET_NEXT(s->tag_keys, (aa), pa); } else - if ((aret = strcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TagValues")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -12271,11 +12275,11 @@ int filters_vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "TagValues argument missing\n"); s->tag_values_str = aa; } - } else if (!(aret = strcmp(str, "TagValues[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "TagValues[]")) || aret == '=') { TRY(!aa, "TagValues[] argument missing\n"); SET_NEXT(s->tag_values, (aa), pa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -12299,11 +12303,11 @@ int filters_vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "Tags argument missing\n"); s->tags_str = aa; } - } else if (!(aret = strcmp(str, "Tags[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Tags[]")) || aret == '=') { TRY(!aa, "Tags[] argument missing\n"); SET_NEXT(s->tags, (aa), pa); } else - if ((aret = strcmp(str, "VirtualGatewayIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VirtualGatewayIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -12327,11 +12331,11 @@ int filters_vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "VirtualGatewayIds argument missing\n"); s->virtual_gateway_ids_str = aa; } - } else if (!(aret = strcmp(str, "VirtualGatewayIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VirtualGatewayIds[]")) || aret == '=') { TRY(!aa, "VirtualGatewayIds[] argument missing\n"); SET_NEXT(s->virtual_gateway_ids, (aa), pa); } else - if ((aret = strcmp(str, "VpnConnectionIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VpnConnectionIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -12355,7 +12359,7 @@ int filters_vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_arr TRY(!aa, "VpnConnectionIds argument missing\n"); s->vpn_connection_ids_str = aa; } - } else if (!(aret = strcmp(str, "VpnConnectionIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VpnConnectionIds[]")) || aret == '=') { TRY(!aa, "VpnConnectionIds[] argument missing\n"); SET_NEXT(s->vpn_connection_ids, (aa), pa); } else @@ -12369,7 +12373,7 @@ int filters_vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_arr int flexible_gpu_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct flexible_gpu *s = v_s; int aret = 0; - if ((aret = strcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->delete_on_vm_deletion = 1; @@ -12379,32 +12383,32 @@ int flexible_gpu_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = strcmp(str, "FlexibleGpuId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "FlexibleGpuId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "FlexibleGpuId argument missing\n"); s->flexible_gpu_id = aa; // string string } else - if ((aret = strcmp(str, "Generation")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Generation")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Generation argument missing\n"); s->generation = aa; // string string } else - if ((aret = strcmp(str, "ModelName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ModelName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ModelName argument missing\n"); s->model_name = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubregionName argument missing\n"); s->subregion_name = aa; // string string } else - if ((aret = strcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmId argument missing\n"); s->vm_id = aa; // string string @@ -12419,7 +12423,7 @@ int flexible_gpu_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int flexible_gpu_catalog_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct flexible_gpu_catalog *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Generations")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Generations")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -12443,26 +12447,26 @@ int flexible_gpu_catalog_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "Generations argument missing\n"); s->generations_str = aa; } - } else if (!(aret = strcmp(str, "Generations[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Generations[]")) || aret == '=') { TRY(!aa, "Generations[] argument missing\n"); SET_NEXT(s->generations, (aa), pa); } else - if ((aret = strcmp(str, "MaxCpu")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "MaxCpu")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "MaxCpu argument missing\n"); s->is_set_max_cpu = 1; s->max_cpu = atoi(aa); } else - if ((aret = strcmp(str, "MaxRam")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "MaxRam")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "MaxRam argument missing\n"); s->is_set_max_ram = 1; s->max_ram = atoi(aa); } else - if ((aret = strcmp(str, "ModelName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ModelName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ModelName argument missing\n"); s->model_name = aa; // string string } else - if ((aret = strcmp(str, "VRam")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VRam")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VRam argument missing\n"); s->is_set_vram = 1; s->vram = atoi(aa); @@ -12477,37 +12481,37 @@ int flexible_gpu_catalog_parser(void *v_s, char *str, char *aa, struct ptr_array int health_check_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct health_check *s = v_s; int aret = 0; - if ((aret = strcmp(str, "CheckInterval")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CheckInterval")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CheckInterval argument missing\n"); s->is_set_check_interval = 1; s->check_interval = atoi(aa); } else - if ((aret = strcmp(str, "HealthyThreshold")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "HealthyThreshold")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "HealthyThreshold argument missing\n"); s->is_set_healthy_threshold = 1; s->healthy_threshold = atoi(aa); } else - if ((aret = strcmp(str, "Path")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Path")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Path argument missing\n"); s->path = aa; // string string } else - if ((aret = strcmp(str, "Port")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Port")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Port argument missing\n"); s->is_set_port = 1; s->port = atoi(aa); } else - if ((aret = strcmp(str, "Protocol")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Protocol")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Protocol argument missing\n"); s->protocol = aa; // string string } else - if ((aret = strcmp(str, "Timeout")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Timeout")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Timeout argument missing\n"); s->is_set_timeout = 1; s->timeout = atoi(aa); } else - if ((aret = strcmp(str, "UnhealthyThreshold")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "UnhealthyThreshold")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "UnhealthyThreshold argument missing\n"); s->is_set_unhealthy_threshold = 1; s->unhealthy_threshold = atoi(aa); @@ -12522,22 +12526,22 @@ int health_check_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct image *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccountAlias")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountAlias")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountAlias argument missing\n"); s->account_alias = aa; // string string } else - if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = strcmp(str, "Architecture")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Architecture")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Architecture argument missing\n"); s->architecture = aa; // string string } else - if ((aret = strcmp(str, "BlockDeviceMappings")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BlockDeviceMappings")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -12562,37 +12566,37 @@ int image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->block_device_mappings_str = aa; // array ref BlockDeviceMappingImage ref } } else - if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = strcmp(str, "FileLocation")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "FileLocation")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "FileLocation argument missing\n"); s->file_location = aa; // string string } else - if ((aret = strcmp(str, "ImageId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ImageId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ImageId argument missing\n"); s->image_id = aa; // string string } else - if ((aret = strcmp(str, "ImageName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ImageName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ImageName argument missing\n"); s->image_name = aa; // string string } else - if ((aret = strcmp(str, "ImageType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ImageType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ImageType argument missing\n"); s->image_type = aa; // string string } else - if ((aret = strcmp(str, "PermissionsToLaunch")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PermissionsToLaunch")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "PermissionsToLaunch argument missing\n"); @@ -12609,7 +12613,7 @@ int image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->permissions_to_launch_str = aa; } } else - if ((aret = strcmp(str, "ProductCodes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ProductCodes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -12633,26 +12637,26 @@ int image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "ProductCodes argument missing\n"); s->product_codes_str = aa; } - } else if (!(aret = strcmp(str, "ProductCodes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ProductCodes[]")) || aret == '=') { TRY(!aa, "ProductCodes[] argument missing\n"); SET_NEXT(s->product_codes, (aa), pa); } else - if ((aret = strcmp(str, "RootDeviceName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RootDeviceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "RootDeviceName argument missing\n"); s->root_device_name = aa; // string string } else - if ((aret = strcmp(str, "RootDeviceType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RootDeviceType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "RootDeviceType argument missing\n"); s->root_device_type = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "StateComment")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "StateComment")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "StateComment argument missing\n"); @@ -12669,7 +12673,7 @@ int image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->state_comment_str = aa; } } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -12704,17 +12708,17 @@ int image_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int image_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct image_export_task *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Comment")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Comment")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Comment argument missing\n"); s->comment = aa; // string string } else - if ((aret = strcmp(str, "ImageId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ImageId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ImageId argument missing\n"); s->image_id = aa; // string string } else - if ((aret = strcmp(str, "OsuExport")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OsuExport")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "OsuExport argument missing\n"); @@ -12731,17 +12735,17 @@ int image_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array *p s->osu_export_str = aa; } } else - if ((aret = strcmp(str, "Progress")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Progress")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Progress argument missing\n"); s->is_set_progress = 1; s->progress = atoi(aa); } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -12766,7 +12770,7 @@ int image_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array *p s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = strcmp(str, "TaskId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TaskId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "TaskId argument missing\n"); s->task_id = aa; // string string @@ -12781,12 +12785,12 @@ int image_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array *p int inline_policy_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct inline_policy *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Body")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Body")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Body argument missing\n"); s->body = aa; // string string } else - if ((aret = strcmp(str, "Name")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Name")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Name argument missing\n"); s->name = aa; // string string @@ -12801,22 +12805,22 @@ int inline_policy_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int internet_service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct internet_service *s = v_s; int aret = 0; - if ((aret = strcmp(str, "InternetServiceId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "InternetServiceId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "InternetServiceId argument missing\n"); s->internet_service_id = aa; // string string } else - if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -12851,17 +12855,17 @@ int internet_service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa int keypair_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct keypair *s = v_s; int aret = 0; - if ((aret = strcmp(str, "KeypairFingerprint")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "KeypairFingerprint")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "KeypairFingerprint argument missing\n"); s->keypair_fingerprint = aa; // string string } else - if ((aret = strcmp(str, "KeypairName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "KeypairName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "KeypairName argument missing\n"); s->keypair_name = aa; // string string } else - if ((aret = strcmp(str, "KeypairType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "KeypairType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "KeypairType argument missing\n"); s->keypair_type = aa; // string string @@ -12876,22 +12880,22 @@ int keypair_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int keypair_created_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct keypair_created *s = v_s; int aret = 0; - if ((aret = strcmp(str, "KeypairFingerprint")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "KeypairFingerprint")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "KeypairFingerprint argument missing\n"); s->keypair_fingerprint = aa; // string string } else - if ((aret = strcmp(str, "KeypairName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "KeypairName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "KeypairName argument missing\n"); s->keypair_name = aa; // string string } else - if ((aret = strcmp(str, "KeypairType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "KeypairType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "KeypairType argument missing\n"); s->keypair_type = aa; // string string } else - if ((aret = strcmp(str, "PrivateKey")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PrivateKey")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PrivateKey argument missing\n"); s->private_key = aa; // string string @@ -12906,7 +12910,7 @@ int keypair_created_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int link_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct link_nic *s = v_s; int aret = 0; - if ((aret = strcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->delete_on_vm_deletion = 1; @@ -12916,27 +12920,27 @@ int link_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = strcmp(str, "DeviceNumber")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DeviceNumber")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DeviceNumber argument missing\n"); s->is_set_device_number = 1; s->device_number = atoi(aa); } else - if ((aret = strcmp(str, "LinkNicId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkNicId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LinkNicId argument missing\n"); s->link_nic_id = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "VmAccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmAccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmAccountId argument missing\n"); s->vm_account_id = aa; // string string } else - if ((aret = strcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmId argument missing\n"); s->vm_id = aa; // string string @@ -12951,7 +12955,7 @@ int link_nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int link_nic_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct link_nic_light *s = v_s; int aret = 0; - if ((aret = strcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->delete_on_vm_deletion = 1; @@ -12961,17 +12965,17 @@ int link_nic_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = strcmp(str, "DeviceNumber")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DeviceNumber")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DeviceNumber argument missing\n"); s->is_set_device_number = 1; s->device_number = atoi(aa); } else - if ((aret = strcmp(str, "LinkNicId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkNicId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LinkNicId argument missing\n"); s->link_nic_id = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string @@ -12986,7 +12990,7 @@ int link_nic_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int link_nic_to_update_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct link_nic_to_update *s = v_s; int aret = 0; - if ((aret = strcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->delete_on_vm_deletion = 1; @@ -12996,7 +13000,7 @@ int link_nic_to_update_parser(void *v_s, char *str, char *aa, struct ptr_array * BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = strcmp(str, "LinkNicId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkNicId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LinkNicId argument missing\n"); s->link_nic_id = aa; // string string @@ -13011,27 +13015,27 @@ int link_nic_to_update_parser(void *v_s, char *str, char *aa, struct ptr_array * int link_public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct link_public_ip *s = v_s; int aret = 0; - if ((aret = strcmp(str, "LinkPublicIpId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkPublicIpId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LinkPublicIpId argument missing\n"); s->link_public_ip_id = aa; // string string } else - if ((aret = strcmp(str, "PublicDnsName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PublicDnsName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicDnsName argument missing\n"); s->public_dns_name = aa; // string string } else - if ((aret = strcmp(str, "PublicIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PublicIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIp argument missing\n"); s->public_ip = aa; // string string } else - if ((aret = strcmp(str, "PublicIpAccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PublicIpAccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIpAccountId argument missing\n"); s->public_ip_account_id = aa; // string string } else - if ((aret = strcmp(str, "PublicIpId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PublicIpId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIpId argument missing\n"); s->public_ip_id = aa; // string string @@ -13046,17 +13050,17 @@ int link_public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int link_public_ip_light_for_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct link_public_ip_light_for_vm *s = v_s; int aret = 0; - if ((aret = strcmp(str, "PublicDnsName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PublicDnsName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicDnsName argument missing\n"); s->public_dns_name = aa; // string string } else - if ((aret = strcmp(str, "PublicIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PublicIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIp argument missing\n"); s->public_ip = aa; // string string } else - if ((aret = strcmp(str, "PublicIpAccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PublicIpAccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIpAccountId argument missing\n"); s->public_ip_account_id = aa; // string string @@ -13071,12 +13075,12 @@ int link_public_ip_light_for_vm_parser(void *v_s, char *str, char *aa, struct pt int link_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct link_route_table *s = v_s; int aret = 0; - if ((aret = strcmp(str, "LinkRouteTableId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkRouteTableId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LinkRouteTableId argument missing\n"); s->link_route_table_id = aa; // string string } else - if ((aret = strcmp(str, "Main")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Main")) == 0 || aret == '=' || aret == '.') { s->is_set_main = 1; if (!aa || !strcasecmp(aa, "true")) { s->main = 1; @@ -13086,17 +13090,17 @@ int link_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array *pa BAD_RET("Main require true/false\n"); } } else - if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = strcmp(str, "RouteTableId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RouteTableId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "RouteTableId argument missing\n"); s->route_table_id = aa; // string string } else - if ((aret = strcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubnetId argument missing\n"); s->subnet_id = aa; // string string @@ -13111,27 +13115,27 @@ int link_route_table_parser(void *v_s, char *str, char *aa, struct ptr_array *pa int linked_policy_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct linked_policy *s = v_s; int aret = 0; - if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = strcmp(str, "LastModificationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LastModificationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LastModificationDate argument missing\n"); s->last_modification_date = aa; // string string } else - if ((aret = strcmp(str, "Orn")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Orn")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Orn argument missing\n"); s->orn = aa; // string string } else - if ((aret = strcmp(str, "PolicyId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PolicyId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PolicyId argument missing\n"); s->policy_id = aa; // string string } else - if ((aret = strcmp(str, "PolicyName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PolicyName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PolicyName argument missing\n"); s->policy_name = aa; // string string @@ -13146,7 +13150,7 @@ int linked_policy_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int linked_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct linked_volume *s = v_s; int aret = 0; - if ((aret = strcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->delete_on_vm_deletion = 1; @@ -13156,22 +13160,22 @@ int linked_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = strcmp(str, "DeviceName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DeviceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DeviceName argument missing\n"); s->device_name = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmId argument missing\n"); s->vm_id = aa; // string string } else - if ((aret = strcmp(str, "VolumeId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VolumeId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VolumeId argument missing\n"); s->volume_id = aa; // string string @@ -13186,27 +13190,27 @@ int linked_volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int listener_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct listener *s = v_s; int aret = 0; - if ((aret = strcmp(str, "BackendPort")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BackendPort")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "BackendPort argument missing\n"); s->is_set_backend_port = 1; s->backend_port = atoi(aa); } else - if ((aret = strcmp(str, "BackendProtocol")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BackendProtocol")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "BackendProtocol argument missing\n"); s->backend_protocol = aa; // string string } else - if ((aret = strcmp(str, "LoadBalancerPort")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LoadBalancerPort")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LoadBalancerPort argument missing\n"); s->is_set_load_balancer_port = 1; s->load_balancer_port = atoi(aa); } else - if ((aret = strcmp(str, "LoadBalancerProtocol")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LoadBalancerProtocol")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LoadBalancerProtocol argument missing\n"); s->load_balancer_protocol = aa; // string string } else - if ((aret = strcmp(str, "PolicyNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PolicyNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -13230,11 +13234,11 @@ int listener_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "PolicyNames argument missing\n"); s->policy_names_str = aa; } - } else if (!(aret = strcmp(str, "PolicyNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "PolicyNames[]")) || aret == '=') { TRY(!aa, "PolicyNames[] argument missing\n"); SET_NEXT(s->policy_names, (aa), pa); } else - if ((aret = strcmp(str, "ServerCertificateId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ServerCertificateId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ServerCertificateId argument missing\n"); s->server_certificate_id = aa; // string string @@ -13249,27 +13253,27 @@ int listener_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int listener_for_creation_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct listener_for_creation *s = v_s; int aret = 0; - if ((aret = strcmp(str, "BackendPort")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BackendPort")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "BackendPort argument missing\n"); s->is_set_backend_port = 1; s->backend_port = atoi(aa); } else - if ((aret = strcmp(str, "BackendProtocol")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BackendProtocol")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "BackendProtocol argument missing\n"); s->backend_protocol = aa; // string string } else - if ((aret = strcmp(str, "LoadBalancerPort")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LoadBalancerPort")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LoadBalancerPort argument missing\n"); s->is_set_load_balancer_port = 1; s->load_balancer_port = atoi(aa); } else - if ((aret = strcmp(str, "LoadBalancerProtocol")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LoadBalancerProtocol")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LoadBalancerProtocol argument missing\n"); s->load_balancer_protocol = aa; // string string } else - if ((aret = strcmp(str, "ServerCertificateId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ServerCertificateId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ServerCertificateId argument missing\n"); s->server_certificate_id = aa; // string string @@ -13284,42 +13288,42 @@ int listener_for_creation_parser(void *v_s, char *str, char *aa, struct ptr_arra int listener_rule_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct listener_rule *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Action")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Action")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Action argument missing\n"); s->action = aa; // string string } else - if ((aret = strcmp(str, "HostNamePattern")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "HostNamePattern")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "HostNamePattern argument missing\n"); s->host_name_pattern = aa; // string string } else - if ((aret = strcmp(str, "ListenerId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ListenerId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ListenerId argument missing\n"); s->is_set_listener_id = 1; s->listener_id = atoi(aa); } else - if ((aret = strcmp(str, "ListenerRuleId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ListenerRuleId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ListenerRuleId argument missing\n"); s->is_set_listener_rule_id = 1; s->listener_rule_id = atoi(aa); } else - if ((aret = strcmp(str, "ListenerRuleName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ListenerRuleName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ListenerRuleName argument missing\n"); s->listener_rule_name = aa; // string string } else - if ((aret = strcmp(str, "PathPattern")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PathPattern")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PathPattern argument missing\n"); s->path_pattern = aa; // string string } else - if ((aret = strcmp(str, "Priority")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Priority")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Priority argument missing\n"); s->is_set_priority = 1; s->priority = atoi(aa); } else - if ((aret = strcmp(str, "VmIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -13343,7 +13347,7 @@ int listener_rule_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "VmIds argument missing\n"); s->vm_ids_str = aa; } - } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); } else @@ -13357,27 +13361,27 @@ int listener_rule_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int listener_rule_for_creation_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct listener_rule_for_creation *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Action")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Action")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Action argument missing\n"); s->action = aa; // string string } else - if ((aret = strcmp(str, "HostNamePattern")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "HostNamePattern")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "HostNamePattern argument missing\n"); s->host_name_pattern = aa; // string string } else - if ((aret = strcmp(str, "ListenerRuleName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ListenerRuleName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ListenerRuleName argument missing\n"); s->listener_rule_name = aa; // string string } else - if ((aret = strcmp(str, "PathPattern")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PathPattern")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PathPattern argument missing\n"); s->path_pattern = aa; // string string } else - if ((aret = strcmp(str, "Priority")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Priority")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Priority argument missing\n"); s->is_set_priority = 1; s->priority = atoi(aa); @@ -13392,7 +13396,7 @@ int listener_rule_for_creation_parser(void *v_s, char *str, char *aa, struct ptr int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct load_balancer *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccessLog")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccessLog")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "AccessLog argument missing\n"); @@ -13409,7 +13413,7 @@ int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->access_log_str = aa; } } else - if ((aret = strcmp(str, "ApplicationStickyCookiePolicies")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ApplicationStickyCookiePolicies")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -13434,7 +13438,7 @@ int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->application_sticky_cookie_policies_str = aa; // array ref ApplicationStickyCookiePolicy ref } } else - if ((aret = strcmp(str, "BackendIps")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BackendIps")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -13458,11 +13462,11 @@ int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "BackendIps argument missing\n"); s->backend_ips_str = aa; } - } else if (!(aret = strcmp(str, "BackendIps[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "BackendIps[]")) || aret == '=') { TRY(!aa, "BackendIps[] argument missing\n"); SET_NEXT(s->backend_ips, (aa), pa); } else - if ((aret = strcmp(str, "BackendVmIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BackendVmIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -13486,16 +13490,16 @@ int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "BackendVmIds argument missing\n"); s->backend_vm_ids_str = aa; } - } else if (!(aret = strcmp(str, "BackendVmIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "BackendVmIds[]")) || aret == '=') { TRY(!aa, "BackendVmIds[] argument missing\n"); SET_NEXT(s->backend_vm_ids, (aa), pa); } else - if ((aret = strcmp(str, "DnsName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DnsName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DnsName argument missing\n"); s->dns_name = aa; // string string } else - if ((aret = strcmp(str, "HealthCheck")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "HealthCheck")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "HealthCheck argument missing\n"); @@ -13512,7 +13516,7 @@ int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->health_check_str = aa; } } else - if ((aret = strcmp(str, "Listeners")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Listeners")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -13537,12 +13541,12 @@ int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->listeners_str = aa; // array ref Listener ref } } else - if ((aret = strcmp(str, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LoadBalancerName argument missing\n"); s->load_balancer_name = aa; // string string } else - if ((aret = strcmp(str, "LoadBalancerStickyCookiePolicies")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LoadBalancerStickyCookiePolicies")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -13567,22 +13571,22 @@ int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->load_balancer_sticky_cookie_policies_str = aa; // array ref LoadBalancerStickyCookiePolicy ref } } else - if ((aret = strcmp(str, "LoadBalancerType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LoadBalancerType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LoadBalancerType argument missing\n"); s->load_balancer_type = aa; // string string } else - if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = strcmp(str, "PublicIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PublicIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIp argument missing\n"); s->public_ip = aa; // string string } else - if ((aret = strcmp(str, "SecuredCookies")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecuredCookies")) == 0 || aret == '=' || aret == '.') { s->is_set_secured_cookies = 1; if (!aa || !strcasecmp(aa, "true")) { s->secured_cookies = 1; @@ -13592,7 +13596,7 @@ int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("SecuredCookies require true/false\n"); } } else - if ((aret = strcmp(str, "SecurityGroups")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecurityGroups")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -13616,11 +13620,11 @@ int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "SecurityGroups argument missing\n"); s->security_groups_str = aa; } - } else if (!(aret = strcmp(str, "SecurityGroups[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SecurityGroups[]")) || aret == '=') { TRY(!aa, "SecurityGroups[] argument missing\n"); SET_NEXT(s->security_groups, (aa), pa); } else - if ((aret = strcmp(str, "SourceSecurityGroup")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SourceSecurityGroup")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "SourceSecurityGroup argument missing\n"); @@ -13637,7 +13641,7 @@ int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->source_security_group_str = aa; } } else - if ((aret = strcmp(str, "Subnets")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Subnets")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -13661,11 +13665,11 @@ int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "Subnets argument missing\n"); s->subnets_str = aa; } - } else if (!(aret = strcmp(str, "Subnets[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Subnets[]")) || aret == '=') { TRY(!aa, "Subnets[] argument missing\n"); SET_NEXT(s->subnets, (aa), pa); } else - if ((aret = strcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubregionNames")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -13689,11 +13693,11 @@ int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "SubregionNames argument missing\n"); s->subregion_names_str = aa; } - } else if (!(aret = strcmp(str, "SubregionNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SubregionNames[]")) || aret == '=') { TRY(!aa, "SubregionNames[] argument missing\n"); SET_NEXT(s->subregion_names, (aa), pa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -13728,12 +13732,12 @@ int load_balancer_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int load_balancer_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct load_balancer_light *s = v_s; int aret = 0; - if ((aret = strcmp(str, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LoadBalancerName argument missing\n"); s->load_balancer_name = aa; // string string } else - if ((aret = strcmp(str, "LoadBalancerPort")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LoadBalancerPort")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LoadBalancerPort argument missing\n"); s->is_set_load_balancer_port = 1; s->load_balancer_port = atoi(aa); @@ -13748,12 +13752,12 @@ int load_balancer_light_parser(void *v_s, char *str, char *aa, struct ptr_array int load_balancer_sticky_cookie_policy_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct load_balancer_sticky_cookie_policy *s = v_s; int aret = 0; - if ((aret = strcmp(str, "CookieExpirationPeriod")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CookieExpirationPeriod")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CookieExpirationPeriod argument missing\n"); s->is_set_cookie_expiration_period = 1; s->cookie_expiration_period = atoi(aa); } else - if ((aret = strcmp(str, "PolicyName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PolicyName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PolicyName argument missing\n"); s->policy_name = aa; // string string @@ -13768,17 +13772,17 @@ int load_balancer_sticky_cookie_policy_parser(void *v_s, char *str, char *aa, st int load_balancer_tag_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct load_balancer_tag *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Key")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Key")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Key argument missing\n"); s->key = aa; // string string } else - if ((aret = strcmp(str, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LoadBalancerName argument missing\n"); s->load_balancer_name = aa; // string string } else - if ((aret = strcmp(str, "Value")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Value")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Value argument missing\n"); s->value = aa; // string string @@ -13793,12 +13797,12 @@ int load_balancer_tag_parser(void *v_s, char *str, char *aa, struct ptr_array *p int location_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct location *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Code")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Code")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Code argument missing\n"); s->code = aa; // string string } else - if ((aret = strcmp(str, "Name")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Name")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Name argument missing\n"); s->name = aa; // string string @@ -13813,82 +13817,82 @@ int location_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int log_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct log *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = strcmp(str, "CallDuration")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CallDuration")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CallDuration argument missing\n"); s->is_set_call_duration = 1; s->call_duration = atoi(aa); } else - if ((aret = strcmp(str, "QueryAccessKey")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryAccessKey")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryAccessKey argument missing\n"); s->query_access_key = aa; // string string } else - if ((aret = strcmp(str, "QueryApiName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryApiName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryApiName argument missing\n"); s->query_api_name = aa; // string string } else - if ((aret = strcmp(str, "QueryApiVersion")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryApiVersion")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryApiVersion argument missing\n"); s->query_api_version = aa; // string string } else - if ((aret = strcmp(str, "QueryCallName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryCallName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryCallName argument missing\n"); s->query_call_name = aa; // string string } else - if ((aret = strcmp(str, "QueryDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryDate argument missing\n"); s->query_date = aa; // string string } else - if ((aret = strcmp(str, "QueryHeaderRaw")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryHeaderRaw")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryHeaderRaw argument missing\n"); s->query_header_raw = aa; // string string } else - if ((aret = strcmp(str, "QueryHeaderSize")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryHeaderSize")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryHeaderSize argument missing\n"); s->is_set_query_header_size = 1; s->query_header_size = atoi(aa); } else - if ((aret = strcmp(str, "QueryIpAddress")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryIpAddress")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryIpAddress argument missing\n"); s->query_ip_address = aa; // string string } else - if ((aret = strcmp(str, "QueryPayloadRaw")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryPayloadRaw")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryPayloadRaw argument missing\n"); s->query_payload_raw = aa; // string string } else - if ((aret = strcmp(str, "QueryPayloadSize")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryPayloadSize")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryPayloadSize argument missing\n"); s->is_set_query_payload_size = 1; s->query_payload_size = atoi(aa); } else - if ((aret = strcmp(str, "QueryUserAgent")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryUserAgent")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QueryUserAgent argument missing\n"); s->query_user_agent = aa; // string string } else - if ((aret = strcmp(str, "RequestId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RequestId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "RequestId argument missing\n"); s->request_id = aa; // string string } else - if ((aret = strcmp(str, "ResponseSize")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ResponseSize")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ResponseSize argument missing\n"); s->is_set_response_size = 1; s->response_size = atoi(aa); } else - if ((aret = strcmp(str, "ResponseStatusCode")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ResponseStatusCode")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ResponseStatusCode argument missing\n"); s->is_set_response_status_code = 1; s->response_status_code = atoi(aa); @@ -13903,22 +13907,22 @@ int log_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int maintenance_event_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct maintenance_event *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Code")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Code")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Code argument missing\n"); s->code = aa; // string string } else - if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = strcmp(str, "NotAfter")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NotAfter")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NotAfter argument missing\n"); s->not_after = aa; // string string } else - if ((aret = strcmp(str, "NotBefore")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NotBefore")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NotBefore argument missing\n"); s->not_before = aa; // string string @@ -13933,22 +13937,22 @@ int maintenance_event_parser(void *v_s, char *str, char *aa, struct ptr_array *p int nat_service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct nat_service *s = v_s; int aret = 0; - if ((aret = strcmp(str, "ClientToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ClientToken")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ClientToken argument missing\n"); s->client_token = aa; // string string } else - if ((aret = strcmp(str, "NatServiceId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NatServiceId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NatServiceId argument missing\n"); s->nat_service_id = aa; // string string } else - if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = strcmp(str, "PublicIps")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PublicIps")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -13973,17 +13977,17 @@ int nat_service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->public_ips_str = aa; // array ref PublicIpLight ref } } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubnetId argument missing\n"); s->subnet_id = aa; // string string } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -14018,27 +14022,27 @@ int nat_service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct net *s = v_s; int aret = 0; - if ((aret = strcmp(str, "DhcpOptionsSetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DhcpOptionsSetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DhcpOptionsSetId argument missing\n"); s->dhcp_options_set_id = aa; // string string } else - if ((aret = strcmp(str, "IpRange")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IpRange")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "IpRange argument missing\n"); s->ip_range = aa; // string string } else - if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -14063,7 +14067,7 @@ int net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = strcmp(str, "Tenancy")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tenancy")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Tenancy argument missing\n"); s->tenancy = aa; // string string @@ -14078,17 +14082,17 @@ int net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int net_access_point_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct net_access_point *s = v_s; int aret = 0; - if ((aret = strcmp(str, "NetAccessPointId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetAccessPointId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetAccessPointId argument missing\n"); s->net_access_point_id = aa; // string string } else - if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = strcmp(str, "RouteTableIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RouteTableIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -14112,21 +14116,21 @@ int net_access_point_parser(void *v_s, char *str, char *aa, struct ptr_array *pa TRY(!aa, "RouteTableIds argument missing\n"); s->route_table_ids_str = aa; } - } else if (!(aret = strcmp(str, "RouteTableIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "RouteTableIds[]")) || aret == '=') { TRY(!aa, "RouteTableIds[] argument missing\n"); SET_NEXT(s->route_table_ids, (aa), pa); } else - if ((aret = strcmp(str, "ServiceName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ServiceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ServiceName argument missing\n"); s->service_name = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -14161,7 +14165,7 @@ int net_access_point_parser(void *v_s, char *str, char *aa, struct ptr_array *pa int net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct net_peering *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccepterNet")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccepterNet")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "AccepterNet argument missing\n"); @@ -14178,17 +14182,17 @@ int net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->accepter_net_str = aa; } } else - if ((aret = strcmp(str, "ExpirationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ExpirationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ExpirationDate argument missing\n"); s->expiration_date = aa; // string string } else - if ((aret = strcmp(str, "NetPeeringId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetPeeringId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetPeeringId argument missing\n"); s->net_peering_id = aa; // string string } else - if ((aret = strcmp(str, "SourceNet")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SourceNet")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "SourceNet argument missing\n"); @@ -14205,7 +14209,7 @@ int net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->source_net_str = aa; } } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "State argument missing\n"); @@ -14222,7 +14226,7 @@ int net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->state_str = aa; } } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -14257,12 +14261,12 @@ int net_peering_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int net_peering_state_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct net_peering_state *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Message")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Message")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Message argument missing\n"); s->message = aa; // string string } else - if ((aret = strcmp(str, "Name")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Name")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Name argument missing\n"); s->name = aa; // string string @@ -14277,12 +14281,12 @@ int net_peering_state_parser(void *v_s, char *str, char *aa, struct ptr_array *p int net_to_virtual_gateway_link_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct net_to_virtual_gateway_link *s = v_s; int aret = 0; - if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string @@ -14297,17 +14301,17 @@ int net_to_virtual_gateway_link_parser(void *v_s, char *str, char *aa, struct pt int nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct nic *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = strcmp(str, "IsSourceDestChecked")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IsSourceDestChecked")) == 0 || aret == '=' || aret == '.') { s->is_set_is_source_dest_checked = 1; if (!aa || !strcasecmp(aa, "true")) { s->is_source_dest_checked = 1; @@ -14317,7 +14321,7 @@ int nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("IsSourceDestChecked require true/false\n"); } } else - if ((aret = strcmp(str, "LinkNic")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkNic")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "LinkNic argument missing\n"); @@ -14334,7 +14338,7 @@ int nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->link_nic_str = aa; } } else - if ((aret = strcmp(str, "LinkPublicIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkPublicIp")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "LinkPublicIp argument missing\n"); @@ -14351,27 +14355,27 @@ int nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->link_public_ip_str = aa; } } else - if ((aret = strcmp(str, "MacAddress")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "MacAddress")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "MacAddress argument missing\n"); s->mac_address = aa; // string string } else - if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = strcmp(str, "NicId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NicId argument missing\n"); s->nic_id = aa; // string string } else - if ((aret = strcmp(str, "PrivateDnsName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PrivateDnsName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PrivateDnsName argument missing\n"); s->private_dns_name = aa; // string string } else - if ((aret = strcmp(str, "PrivateIps")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PrivateIps")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -14396,7 +14400,7 @@ int nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->private_ips_str = aa; // array ref PrivateIp ref } } else - if ((aret = strcmp(str, "SecurityGroups")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecurityGroups")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -14421,22 +14425,22 @@ int nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->security_groups_str = aa; // array ref SecurityGroupLight ref } } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubnetId argument missing\n"); s->subnet_id = aa; // string string } else - if ((aret = strcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubregionName argument missing\n"); s->subregion_name = aa; // string string } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -14471,7 +14475,7 @@ int nic_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int nic_for_vm_creation_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct nic_for_vm_creation *s = v_s; int aret = 0; - if ((aret = strcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { s->is_set_delete_on_vm_deletion = 1; if (!aa || !strcasecmp(aa, "true")) { s->delete_on_vm_deletion = 1; @@ -14481,22 +14485,22 @@ int nic_for_vm_creation_parser(void *v_s, char *str, char *aa, struct ptr_array BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = strcmp(str, "DeviceNumber")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DeviceNumber")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DeviceNumber argument missing\n"); s->is_set_device_number = 1; s->device_number = atoi(aa); } else - if ((aret = strcmp(str, "NicId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NicId argument missing\n"); s->nic_id = aa; // string string } else - if ((aret = strcmp(str, "PrivateIps")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PrivateIps")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -14521,12 +14525,12 @@ int nic_for_vm_creation_parser(void *v_s, char *str, char *aa, struct ptr_array s->private_ips_str = aa; // array ref PrivateIpLight ref } } else - if ((aret = strcmp(str, "SecondaryPrivateIpCount")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecondaryPrivateIpCount")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SecondaryPrivateIpCount argument missing\n"); s->is_set_secondary_private_ip_count = 1; s->secondary_private_ip_count = atoi(aa); } else - if ((aret = strcmp(str, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -14550,11 +14554,11 @@ int nic_for_vm_creation_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "SecurityGroupIds argument missing\n"); s->security_group_ids_str = aa; } - } else if (!(aret = strcmp(str, "SecurityGroupIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SecurityGroupIds[]")) || aret == '=') { TRY(!aa, "SecurityGroupIds[] argument missing\n"); SET_NEXT(s->security_group_ids, (aa), pa); } else - if ((aret = strcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubnetId argument missing\n"); s->subnet_id = aa; // string string @@ -14569,17 +14573,17 @@ int nic_for_vm_creation_parser(void *v_s, char *str, char *aa, struct ptr_array int nic_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct nic_light *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = strcmp(str, "IsSourceDestChecked")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IsSourceDestChecked")) == 0 || aret == '=' || aret == '.') { s->is_set_is_source_dest_checked = 1; if (!aa || !strcasecmp(aa, "true")) { s->is_source_dest_checked = 1; @@ -14589,7 +14593,7 @@ int nic_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("IsSourceDestChecked require true/false\n"); } } else - if ((aret = strcmp(str, "LinkNic")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkNic")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "LinkNic argument missing\n"); @@ -14606,7 +14610,7 @@ int nic_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->link_nic_str = aa; } } else - if ((aret = strcmp(str, "LinkPublicIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkPublicIp")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "LinkPublicIp argument missing\n"); @@ -14623,27 +14627,27 @@ int nic_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->link_public_ip_str = aa; } } else - if ((aret = strcmp(str, "MacAddress")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "MacAddress")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "MacAddress argument missing\n"); s->mac_address = aa; // string string } else - if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = strcmp(str, "NicId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NicId argument missing\n"); s->nic_id = aa; // string string } else - if ((aret = strcmp(str, "PrivateDnsName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PrivateDnsName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PrivateDnsName argument missing\n"); s->private_dns_name = aa; // string string } else - if ((aret = strcmp(str, "PrivateIps")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PrivateIps")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -14668,7 +14672,7 @@ int nic_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->private_ips_str = aa; // array ref PrivateIpLightForVm ref } } else - if ((aret = strcmp(str, "SecurityGroups")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecurityGroups")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -14693,12 +14697,12 @@ int nic_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->security_groups_str = aa; // array ref SecurityGroupLight ref } } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubnetId argument missing\n"); s->subnet_id = aa; // string string @@ -14713,12 +14717,12 @@ int nic_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int osu_api_key_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct osu_api_key *s = v_s; int aret = 0; - if ((aret = strcmp(str, "ApiKeyId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ApiKeyId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ApiKeyId argument missing\n"); s->api_key_id = aa; // string string } else - if ((aret = strcmp(str, "SecretKey")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecretKey")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SecretKey argument missing\n"); s->secret_key = aa; // string string @@ -14733,22 +14737,22 @@ int osu_api_key_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int osu_export_image_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct osu_export_image_export_task *s = v_s; int aret = 0; - if ((aret = strcmp(str, "DiskImageFormat")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DiskImageFormat")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DiskImageFormat argument missing\n"); s->disk_image_format = aa; // string string } else - if ((aret = strcmp(str, "OsuBucket")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OsuBucket")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OsuBucket argument missing\n"); s->osu_bucket = aa; // string string } else - if ((aret = strcmp(str, "OsuManifestUrl")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OsuManifestUrl")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OsuManifestUrl argument missing\n"); s->osu_manifest_url = aa; // string string } else - if ((aret = strcmp(str, "OsuPrefix")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OsuPrefix")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OsuPrefix argument missing\n"); s->osu_prefix = aa; // string string @@ -14763,17 +14767,17 @@ int osu_export_image_export_task_parser(void *v_s, char *str, char *aa, struct p int osu_export_snapshot_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct osu_export_snapshot_export_task *s = v_s; int aret = 0; - if ((aret = strcmp(str, "DiskImageFormat")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DiskImageFormat")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DiskImageFormat argument missing\n"); s->disk_image_format = aa; // string string } else - if ((aret = strcmp(str, "OsuBucket")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OsuBucket")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OsuBucket argument missing\n"); s->osu_bucket = aa; // string string } else - if ((aret = strcmp(str, "OsuPrefix")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OsuPrefix")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OsuPrefix argument missing\n"); s->osu_prefix = aa; // string string @@ -14788,12 +14792,12 @@ int osu_export_snapshot_export_task_parser(void *v_s, char *str, char *aa, struc int osu_export_to_create_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct osu_export_to_create *s = v_s; int aret = 0; - if ((aret = strcmp(str, "DiskImageFormat")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DiskImageFormat")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DiskImageFormat argument missing\n"); s->disk_image_format = aa; // string string } else - if ((aret = strcmp(str, "OsuApiKey")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OsuApiKey")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "OsuApiKey argument missing\n"); @@ -14810,17 +14814,17 @@ int osu_export_to_create_parser(void *v_s, char *str, char *aa, struct ptr_array s->osu_api_key_str = aa; } } else - if ((aret = strcmp(str, "OsuBucket")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OsuBucket")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OsuBucket argument missing\n"); s->osu_bucket = aa; // string string } else - if ((aret = strcmp(str, "OsuManifestUrl")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OsuManifestUrl")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OsuManifestUrl argument missing\n"); s->osu_manifest_url = aa; // string string } else - if ((aret = strcmp(str, "OsuPrefix")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OsuPrefix")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OsuPrefix argument missing\n"); s->osu_prefix = aa; // string string @@ -14835,7 +14839,7 @@ int osu_export_to_create_parser(void *v_s, char *str, char *aa, struct ptr_array int permissions_on_resource_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct permissions_on_resource *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccountIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -14859,11 +14863,11 @@ int permissions_on_resource_parser(void *v_s, char *str, char *aa, struct ptr_ar TRY(!aa, "AccountIds argument missing\n"); s->account_ids_str = aa; } - } else if (!(aret = strcmp(str, "AccountIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "AccountIds[]")) || aret == '=') { TRY(!aa, "AccountIds[] argument missing\n"); SET_NEXT(s->account_ids, (aa), pa); } else - if ((aret = strcmp(str, "GlobalPermission")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "GlobalPermission")) == 0 || aret == '=' || aret == '.') { s->is_set_global_permission = 1; if (!aa || !strcasecmp(aa, "true")) { s->global_permission = 1; @@ -14883,7 +14887,7 @@ int permissions_on_resource_parser(void *v_s, char *str, char *aa, struct ptr_ar int permissions_on_resource_creation_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct permissions_on_resource_creation *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Additions")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Additions")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "Additions argument missing\n"); @@ -14900,7 +14904,7 @@ int permissions_on_resource_creation_parser(void *v_s, char *str, char *aa, stru s->additions_str = aa; } } else - if ((aret = strcmp(str, "Removals")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Removals")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "Removals argument missing\n"); @@ -14927,17 +14931,17 @@ int permissions_on_resource_creation_parser(void *v_s, char *str, char *aa, stru int phase1_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct phase1_options *s = v_s; int aret = 0; - if ((aret = strcmp(str, "DpdTimeoutAction")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DpdTimeoutAction")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DpdTimeoutAction argument missing\n"); s->dpd_timeout_action = aa; // string string } else - if ((aret = strcmp(str, "DpdTimeoutSeconds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DpdTimeoutSeconds")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DpdTimeoutSeconds argument missing\n"); s->is_set_dpd_timeout_seconds = 1; s->dpd_timeout_seconds = atoi(aa); } else - if ((aret = strcmp(str, "IkeVersions")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IkeVersions")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -14961,11 +14965,11 @@ int phase1_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "IkeVersions argument missing\n"); s->ike_versions_str = aa; } - } else if (!(aret = strcmp(str, "IkeVersions[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "IkeVersions[]")) || aret == '=') { TRY(!aa, "IkeVersions[] argument missing\n"); SET_NEXT(s->ike_versions, (aa), pa); } else - if ((aret = strcmp(str, "Phase1DhGroupNumbers")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Phase1DhGroupNumbers")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -14989,11 +14993,11 @@ int phase1_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "Phase1DhGroupNumbers argument missing\n"); s->phase1_dh_group_numbers_str = aa; } - } else if (!(aret = strcmp(str, "Phase1DhGroupNumbers[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Phase1DhGroupNumbers[]")) || aret == '=') { TRY(!aa, "Phase1DhGroupNumbers[] argument missing\n"); SET_NEXT(s->phase1_dh_group_numbers, atoi(aa), pa); } else - if ((aret = strcmp(str, "Phase1EncryptionAlgorithms")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Phase1EncryptionAlgorithms")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -15017,11 +15021,11 @@ int phase1_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "Phase1EncryptionAlgorithms argument missing\n"); s->phase1_encryption_algorithms_str = aa; } - } else if (!(aret = strcmp(str, "Phase1EncryptionAlgorithms[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Phase1EncryptionAlgorithms[]")) || aret == '=') { TRY(!aa, "Phase1EncryptionAlgorithms[] argument missing\n"); SET_NEXT(s->phase1_encryption_algorithms, (aa), pa); } else - if ((aret = strcmp(str, "Phase1IntegrityAlgorithms")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Phase1IntegrityAlgorithms")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -15045,21 +15049,21 @@ int phase1_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "Phase1IntegrityAlgorithms argument missing\n"); s->phase1_integrity_algorithms_str = aa; } - } else if (!(aret = strcmp(str, "Phase1IntegrityAlgorithms[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Phase1IntegrityAlgorithms[]")) || aret == '=') { TRY(!aa, "Phase1IntegrityAlgorithms[] argument missing\n"); SET_NEXT(s->phase1_integrity_algorithms, (aa), pa); } else - if ((aret = strcmp(str, "Phase1LifetimeSeconds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Phase1LifetimeSeconds")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Phase1LifetimeSeconds argument missing\n"); s->is_set_phase1_lifetime_seconds = 1; s->phase1_lifetime_seconds = atoi(aa); } else - if ((aret = strcmp(str, "ReplayWindowSize")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ReplayWindowSize")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ReplayWindowSize argument missing\n"); s->is_set_replay_window_size = 1; s->replay_window_size = atoi(aa); } else - if ((aret = strcmp(str, "StartupAction")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "StartupAction")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "StartupAction argument missing\n"); s->startup_action = aa; // string string @@ -15074,7 +15078,7 @@ int phase1_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int phase2_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct phase2_options *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Phase2DhGroupNumbers")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Phase2DhGroupNumbers")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -15098,11 +15102,11 @@ int phase2_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "Phase2DhGroupNumbers argument missing\n"); s->phase2_dh_group_numbers_str = aa; } - } else if (!(aret = strcmp(str, "Phase2DhGroupNumbers[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Phase2DhGroupNumbers[]")) || aret == '=') { TRY(!aa, "Phase2DhGroupNumbers[] argument missing\n"); SET_NEXT(s->phase2_dh_group_numbers, atoi(aa), pa); } else - if ((aret = strcmp(str, "Phase2EncryptionAlgorithms")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Phase2EncryptionAlgorithms")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -15126,11 +15130,11 @@ int phase2_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "Phase2EncryptionAlgorithms argument missing\n"); s->phase2_encryption_algorithms_str = aa; } - } else if (!(aret = strcmp(str, "Phase2EncryptionAlgorithms[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Phase2EncryptionAlgorithms[]")) || aret == '=') { TRY(!aa, "Phase2EncryptionAlgorithms[] argument missing\n"); SET_NEXT(s->phase2_encryption_algorithms, (aa), pa); } else - if ((aret = strcmp(str, "Phase2IntegrityAlgorithms")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Phase2IntegrityAlgorithms")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -15154,16 +15158,16 @@ int phase2_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) TRY(!aa, "Phase2IntegrityAlgorithms argument missing\n"); s->phase2_integrity_algorithms_str = aa; } - } else if (!(aret = strcmp(str, "Phase2IntegrityAlgorithms[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Phase2IntegrityAlgorithms[]")) || aret == '=') { TRY(!aa, "Phase2IntegrityAlgorithms[] argument missing\n"); SET_NEXT(s->phase2_integrity_algorithms, (aa), pa); } else - if ((aret = strcmp(str, "Phase2LifetimeSeconds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Phase2LifetimeSeconds")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Phase2LifetimeSeconds argument missing\n"); s->is_set_phase2_lifetime_seconds = 1; s->phase2_lifetime_seconds = atoi(aa); } else - if ((aret = strcmp(str, "PreSharedKey")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PreSharedKey")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PreSharedKey argument missing\n"); s->pre_shared_key = aa; // string string @@ -15178,12 +15182,12 @@ int phase2_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int placement_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct placement *s = v_s; int aret = 0; - if ((aret = strcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubregionName argument missing\n"); s->subregion_name = aa; // string string } else - if ((aret = strcmp(str, "Tenancy")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tenancy")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Tenancy argument missing\n"); s->tenancy = aa; // string string @@ -15198,17 +15202,17 @@ int placement_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int policy_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct policy *s = v_s; int aret = 0; - if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = strcmp(str, "IsLinkable")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IsLinkable")) == 0 || aret == '=' || aret == '.') { s->is_set_is_linkable = 1; if (!aa || !strcasecmp(aa, "true")) { s->is_linkable = 1; @@ -15218,37 +15222,37 @@ int policy_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("IsLinkable require true/false\n"); } } else - if ((aret = strcmp(str, "LastModificationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LastModificationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LastModificationDate argument missing\n"); s->last_modification_date = aa; // string string } else - if ((aret = strcmp(str, "Orn")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Orn")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Orn argument missing\n"); s->orn = aa; // string string } else - if ((aret = strcmp(str, "Path")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Path")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Path argument missing\n"); s->path = aa; // string string } else - if ((aret = strcmp(str, "PolicyDefaultVersionId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PolicyDefaultVersionId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PolicyDefaultVersionId argument missing\n"); s->policy_default_version_id = aa; // string string } else - if ((aret = strcmp(str, "PolicyId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PolicyId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PolicyId argument missing\n"); s->policy_id = aa; // string string } else - if ((aret = strcmp(str, "PolicyName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PolicyName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PolicyName argument missing\n"); s->policy_name = aa; // string string } else - if ((aret = strcmp(str, "ResourcesCount")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ResourcesCount")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ResourcesCount argument missing\n"); s->is_set_resources_count = 1; s->resources_count = atoi(aa); @@ -15263,17 +15267,17 @@ int policy_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int policy_version_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct policy_version *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Body")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Body")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Body argument missing\n"); s->body = aa; // string string } else - if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = strcmp(str, "DefaultVersion")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DefaultVersion")) == 0 || aret == '=' || aret == '.') { s->is_set_default_version = 1; if (!aa || !strcasecmp(aa, "true")) { s->default_version = 1; @@ -15283,7 +15287,7 @@ int policy_version_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) BAD_RET("DefaultVersion require true/false\n"); } } else - if ((aret = strcmp(str, "VersionId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VersionId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VersionId argument missing\n"); s->version_id = aa; // string string @@ -15298,7 +15302,7 @@ int policy_version_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int private_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct private_ip *s = v_s; int aret = 0; - if ((aret = strcmp(str, "IsPrimary")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IsPrimary")) == 0 || aret == '=' || aret == '.') { s->is_set_is_primary = 1; if (!aa || !strcasecmp(aa, "true")) { s->is_primary = 1; @@ -15308,7 +15312,7 @@ int private_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("IsPrimary require true/false\n"); } } else - if ((aret = strcmp(str, "LinkPublicIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkPublicIp")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "LinkPublicIp argument missing\n"); @@ -15325,12 +15329,12 @@ int private_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->link_public_ip_str = aa; } } else - if ((aret = strcmp(str, "PrivateDnsName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PrivateDnsName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PrivateDnsName argument missing\n"); s->private_dns_name = aa; // string string } else - if ((aret = strcmp(str, "PrivateIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PrivateIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PrivateIp argument missing\n"); s->private_ip = aa; // string string @@ -15345,7 +15349,7 @@ int private_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int private_ip_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct private_ip_light *s = v_s; int aret = 0; - if ((aret = strcmp(str, "IsPrimary")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IsPrimary")) == 0 || aret == '=' || aret == '.') { s->is_set_is_primary = 1; if (!aa || !strcasecmp(aa, "true")) { s->is_primary = 1; @@ -15355,7 +15359,7 @@ int private_ip_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa BAD_RET("IsPrimary require true/false\n"); } } else - if ((aret = strcmp(str, "PrivateIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PrivateIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PrivateIp argument missing\n"); s->private_ip = aa; // string string @@ -15370,7 +15374,7 @@ int private_ip_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa int private_ip_light_for_vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct private_ip_light_for_vm *s = v_s; int aret = 0; - if ((aret = strcmp(str, "IsPrimary")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IsPrimary")) == 0 || aret == '=' || aret == '.') { s->is_set_is_primary = 1; if (!aa || !strcasecmp(aa, "true")) { s->is_primary = 1; @@ -15380,7 +15384,7 @@ int private_ip_light_for_vm_parser(void *v_s, char *str, char *aa, struct ptr_ar BAD_RET("IsPrimary require true/false\n"); } } else - if ((aret = strcmp(str, "LinkPublicIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkPublicIp")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "LinkPublicIp argument missing\n"); @@ -15397,12 +15401,12 @@ int private_ip_light_for_vm_parser(void *v_s, char *str, char *aa, struct ptr_ar s->link_public_ip_str = aa; } } else - if ((aret = strcmp(str, "PrivateDnsName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PrivateDnsName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PrivateDnsName argument missing\n"); s->private_dns_name = aa; // string string } else - if ((aret = strcmp(str, "PrivateIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PrivateIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PrivateIp argument missing\n"); s->private_ip = aa; // string string @@ -15417,17 +15421,17 @@ int private_ip_light_for_vm_parser(void *v_s, char *str, char *aa, struct ptr_ar int product_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct product_type *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = strcmp(str, "ProductTypeId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ProductTypeId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ProductTypeId argument missing\n"); s->product_type_id = aa; // string string } else - if ((aret = strcmp(str, "Vendor")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Vendor")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Vendor argument missing\n"); s->vendor = aa; // string string @@ -15442,37 +15446,37 @@ int product_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct public_ip *s = v_s; int aret = 0; - if ((aret = strcmp(str, "LinkPublicIpId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkPublicIpId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LinkPublicIpId argument missing\n"); s->link_public_ip_id = aa; // string string } else - if ((aret = strcmp(str, "NicAccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicAccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NicAccountId argument missing\n"); s->nic_account_id = aa; // string string } else - if ((aret = strcmp(str, "NicId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NicId argument missing\n"); s->nic_id = aa; // string string } else - if ((aret = strcmp(str, "PrivateIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PrivateIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PrivateIp argument missing\n"); s->private_ip = aa; // string string } else - if ((aret = strcmp(str, "PublicIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PublicIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIp argument missing\n"); s->public_ip = aa; // string string } else - if ((aret = strcmp(str, "PublicIpId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PublicIpId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIpId argument missing\n"); s->public_ip_id = aa; // string string } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -15497,7 +15501,7 @@ int public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = strcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmId argument missing\n"); s->vm_id = aa; // string string @@ -15512,12 +15516,12 @@ int public_ip_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int public_ip_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct public_ip_light *s = v_s; int aret = 0; - if ((aret = strcmp(str, "PublicIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PublicIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIp argument missing\n"); s->public_ip = aa; // string string } else - if ((aret = strcmp(str, "PublicIpId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PublicIpId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIpId argument missing\n"); s->public_ip_id = aa; // string string @@ -15532,37 +15536,37 @@ int public_ip_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int quota_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct quota *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = strcmp(str, "MaxValue")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "MaxValue")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "MaxValue argument missing\n"); s->is_set_max_value = 1; s->max_value = atoi(aa); } else - if ((aret = strcmp(str, "Name")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Name")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Name argument missing\n"); s->name = aa; // string string } else - if ((aret = strcmp(str, "QuotaCollection")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QuotaCollection")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QuotaCollection argument missing\n"); s->quota_collection = aa; // string string } else - if ((aret = strcmp(str, "ShortDescription")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ShortDescription")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ShortDescription argument missing\n"); s->short_description = aa; // string string } else - if ((aret = strcmp(str, "UsedValue")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "UsedValue")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "UsedValue argument missing\n"); s->is_set_used_value = 1; s->used_value = atoi(aa); @@ -15577,12 +15581,12 @@ int quota_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int quota_types_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct quota_types *s = v_s; int aret = 0; - if ((aret = strcmp(str, "QuotaType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QuotaType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "QuotaType argument missing\n"); s->quota_type = aa; // string string } else - if ((aret = strcmp(str, "Quotas")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Quotas")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -15617,7 +15621,7 @@ int quota_types_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int read_linked_policies_filters_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct read_linked_policies_filters *s = v_s; int aret = 0; - if ((aret = strcmp(str, "PathPrefix")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PathPrefix")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PathPrefix argument missing\n"); s->path_prefix = aa; // string string @@ -15632,7 +15636,7 @@ int read_linked_policies_filters_parser(void *v_s, char *str, char *aa, struct p int read_policies_filters_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct read_policies_filters *s = v_s; int aret = 0; - if ((aret = strcmp(str, "OnlyLinked")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OnlyLinked")) == 0 || aret == '=' || aret == '.') { s->is_set_only_linked = 1; if (!aa || !strcasecmp(aa, "true")) { s->only_linked = 1; @@ -15642,12 +15646,12 @@ int read_policies_filters_parser(void *v_s, char *str, char *aa, struct ptr_arra BAD_RET("OnlyLinked require true/false\n"); } } else - if ((aret = strcmp(str, "PathPrefix")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PathPrefix")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PathPrefix argument missing\n"); s->path_prefix = aa; // string string } else - if ((aret = strcmp(str, "Scope")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Scope")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Scope argument missing\n"); s->scope = aa; // string string @@ -15662,12 +15666,12 @@ int read_policies_filters_parser(void *v_s, char *str, char *aa, struct ptr_arra int region_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct region *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Endpoint")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Endpoint")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Endpoint argument missing\n"); s->endpoint = aa; // string string } else - if ((aret = strcmp(str, "RegionName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RegionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "RegionName argument missing\n"); s->region_name = aa; // string string @@ -15682,7 +15686,7 @@ int region_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int resource_load_balancer_tag_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct resource_load_balancer_tag *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Key")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Key")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Key argument missing\n"); s->key = aa; // string string @@ -15697,12 +15701,12 @@ int resource_load_balancer_tag_parser(void *v_s, char *str, char *aa, struct ptr int resource_tag_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct resource_tag *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Key")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Key")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Key argument missing\n"); s->key = aa; // string string } else - if ((aret = strcmp(str, "Value")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Value")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Value argument missing\n"); s->value = aa; // string string @@ -15717,57 +15721,57 @@ int resource_tag_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int route_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct route *s = v_s; int aret = 0; - if ((aret = strcmp(str, "CreationMethod")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CreationMethod")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationMethod argument missing\n"); s->creation_method = aa; // string string } else - if ((aret = strcmp(str, "DestinationIpRange")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DestinationIpRange")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DestinationIpRange argument missing\n"); s->destination_ip_range = aa; // string string } else - if ((aret = strcmp(str, "DestinationServiceId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DestinationServiceId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DestinationServiceId argument missing\n"); s->destination_service_id = aa; // string string } else - if ((aret = strcmp(str, "GatewayId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "GatewayId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "GatewayId argument missing\n"); s->gateway_id = aa; // string string } else - if ((aret = strcmp(str, "NatServiceId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NatServiceId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NatServiceId argument missing\n"); s->nat_service_id = aa; // string string } else - if ((aret = strcmp(str, "NetAccessPointId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetAccessPointId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetAccessPointId argument missing\n"); s->net_access_point_id = aa; // string string } else - if ((aret = strcmp(str, "NetPeeringId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetPeeringId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetPeeringId argument missing\n"); s->net_peering_id = aa; // string string } else - if ((aret = strcmp(str, "NicId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NicId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NicId argument missing\n"); s->nic_id = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "VmAccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmAccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmAccountId argument missing\n"); s->vm_account_id = aa; // string string } else - if ((aret = strcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmId argument missing\n"); s->vm_id = aa; // string string @@ -15782,17 +15786,17 @@ int route_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int route_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct route_light *s = v_s; int aret = 0; - if ((aret = strcmp(str, "DestinationIpRange")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DestinationIpRange")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "DestinationIpRange argument missing\n"); s->destination_ip_range = aa; // string string } else - if ((aret = strcmp(str, "RouteType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RouteType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "RouteType argument missing\n"); s->route_type = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string @@ -15807,7 +15811,7 @@ int route_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int route_propagating_virtual_gateway_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct route_propagating_virtual_gateway *s = v_s; int aret = 0; - if ((aret = strcmp(str, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VirtualGatewayId argument missing\n"); s->virtual_gateway_id = aa; // string string @@ -15822,7 +15826,7 @@ int route_propagating_virtual_gateway_parser(void *v_s, char *str, char *aa, str int route_table_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct route_table *s = v_s; int aret = 0; - if ((aret = strcmp(str, "LinkRouteTables")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkRouteTables")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -15847,12 +15851,12 @@ int route_table_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->link_route_tables_str = aa; // array ref LinkRouteTable ref } } else - if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = strcmp(str, "RoutePropagatingVirtualGateways")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RoutePropagatingVirtualGateways")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -15877,12 +15881,12 @@ int route_table_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->route_propagating_virtual_gateways_str = aa; // array ref RoutePropagatingVirtualGateway ref } } else - if ((aret = strcmp(str, "RouteTableId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RouteTableId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "RouteTableId argument missing\n"); s->route_table_id = aa; // string string } else - if ((aret = strcmp(str, "Routes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Routes")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -15907,7 +15911,7 @@ int route_table_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->routes_str = aa; // array ref Route ref } } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -15942,17 +15946,17 @@ int route_table_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int security_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct security_group *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = strcmp(str, "InboundRules")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "InboundRules")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -15977,12 +15981,12 @@ int security_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) s->inbound_rules_str = aa; // array ref SecurityGroupRule ref } } else - if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = strcmp(str, "OutboundRules")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OutboundRules")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -16007,17 +16011,17 @@ int security_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) s->outbound_rules_str = aa; // array ref SecurityGroupRule ref } } else - if ((aret = strcmp(str, "SecurityGroupId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecurityGroupId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SecurityGroupId argument missing\n"); s->security_group_id = aa; // string string } else - if ((aret = strcmp(str, "SecurityGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecurityGroupName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SecurityGroupName argument missing\n"); s->security_group_name = aa; // string string } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -16052,12 +16056,12 @@ int security_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int security_group_light_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct security_group_light *s = v_s; int aret = 0; - if ((aret = strcmp(str, "SecurityGroupId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecurityGroupId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SecurityGroupId argument missing\n"); s->security_group_id = aa; // string string } else - if ((aret = strcmp(str, "SecurityGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecurityGroupName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SecurityGroupName argument missing\n"); s->security_group_name = aa; // string string @@ -16072,17 +16076,17 @@ int security_group_light_parser(void *v_s, char *str, char *aa, struct ptr_array int security_group_rule_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct security_group_rule *s = v_s; int aret = 0; - if ((aret = strcmp(str, "FromPortRange")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "FromPortRange")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "FromPortRange argument missing\n"); s->is_set_from_port_range = 1; s->from_port_range = atoi(aa); } else - if ((aret = strcmp(str, "IpProtocol")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IpProtocol")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "IpProtocol argument missing\n"); s->ip_protocol = aa; // string string } else - if ((aret = strcmp(str, "IpRanges")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IpRanges")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -16106,11 +16110,11 @@ int security_group_rule_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "IpRanges argument missing\n"); s->ip_ranges_str = aa; } - } else if (!(aret = strcmp(str, "IpRanges[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "IpRanges[]")) || aret == '=') { TRY(!aa, "IpRanges[] argument missing\n"); SET_NEXT(s->ip_ranges, (aa), pa); } else - if ((aret = strcmp(str, "SecurityGroupsMembers")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecurityGroupsMembers")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -16135,7 +16139,7 @@ int security_group_rule_parser(void *v_s, char *str, char *aa, struct ptr_array s->security_groups_members_str = aa; // array ref SecurityGroupsMember ref } } else - if ((aret = strcmp(str, "ServiceIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ServiceIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -16159,11 +16163,11 @@ int security_group_rule_parser(void *v_s, char *str, char *aa, struct ptr_array TRY(!aa, "ServiceIds argument missing\n"); s->service_ids_str = aa; } - } else if (!(aret = strcmp(str, "ServiceIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ServiceIds[]")) || aret == '=') { TRY(!aa, "ServiceIds[] argument missing\n"); SET_NEXT(s->service_ids, (aa), pa); } else - if ((aret = strcmp(str, "ToPortRange")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ToPortRange")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ToPortRange argument missing\n"); s->is_set_to_port_range = 1; s->to_port_range = atoi(aa); @@ -16178,17 +16182,17 @@ int security_group_rule_parser(void *v_s, char *str, char *aa, struct ptr_array int security_groups_member_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct security_groups_member *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = strcmp(str, "SecurityGroupId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecurityGroupId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SecurityGroupId argument missing\n"); s->security_group_id = aa; // string string } else - if ((aret = strcmp(str, "SecurityGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecurityGroupName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SecurityGroupName argument missing\n"); s->security_group_name = aa; // string string @@ -16203,32 +16207,32 @@ int security_groups_member_parser(void *v_s, char *str, char *aa, struct ptr_arr int server_certificate_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct server_certificate *s = v_s; int aret = 0; - if ((aret = strcmp(str, "ExpirationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ExpirationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ExpirationDate argument missing\n"); s->expiration_date = aa; // string string } else - if ((aret = strcmp(str, "Id")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Id")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Id argument missing\n"); s->id = aa; // string string } else - if ((aret = strcmp(str, "Name")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Name")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Name argument missing\n"); s->name = aa; // string string } else - if ((aret = strcmp(str, "Orn")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Orn")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Orn argument missing\n"); s->orn = aa; // string string } else - if ((aret = strcmp(str, "Path")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Path")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Path argument missing\n"); s->path = aa; // string string } else - if ((aret = strcmp(str, "UploadDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "UploadDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "UploadDate argument missing\n"); s->upload_date = aa; // string string @@ -16243,7 +16247,7 @@ int server_certificate_parser(void *v_s, char *str, char *aa, struct ptr_array * int service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct service *s = v_s; int aret = 0; - if ((aret = strcmp(str, "IpRanges")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IpRanges")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -16267,16 +16271,16 @@ int service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "IpRanges argument missing\n"); s->ip_ranges_str = aa; } - } else if (!(aret = strcmp(str, "IpRanges[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "IpRanges[]")) || aret == '=') { TRY(!aa, "IpRanges[] argument missing\n"); SET_NEXT(s->ip_ranges, (aa), pa); } else - if ((aret = strcmp(str, "ServiceId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ServiceId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ServiceId argument missing\n"); s->service_id = aa; // string string } else - if ((aret = strcmp(str, "ServiceName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ServiceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ServiceName argument missing\n"); s->service_name = aa; // string string @@ -16291,27 +16295,27 @@ int service_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct snapshot *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccountAlias")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountAlias")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountAlias argument missing\n"); s->account_alias = aa; // string string } else - if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = strcmp(str, "PermissionsToCreateVolume")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PermissionsToCreateVolume")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "PermissionsToCreateVolume argument missing\n"); @@ -16328,22 +16332,22 @@ int snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->permissions_to_create_volume_str = aa; } } else - if ((aret = strcmp(str, "Progress")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Progress")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Progress argument missing\n"); s->is_set_progress = 1; s->progress = atoi(aa); } else - if ((aret = strcmp(str, "SnapshotId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SnapshotId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SnapshotId argument missing\n"); s->snapshot_id = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -16368,12 +16372,12 @@ int snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = strcmp(str, "VolumeId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VolumeId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VolumeId argument missing\n"); s->volume_id = aa; // string string } else - if ((aret = strcmp(str, "VolumeSize")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VolumeSize")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VolumeSize argument missing\n"); s->is_set_volume_size = 1; s->volume_size = atoi(aa); @@ -16388,12 +16392,12 @@ int snapshot_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int snapshot_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct snapshot_export_task *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Comment")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Comment")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Comment argument missing\n"); s->comment = aa; // string string } else - if ((aret = strcmp(str, "OsuExport")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OsuExport")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "OsuExport argument missing\n"); @@ -16410,22 +16414,22 @@ int snapshot_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array s->osu_export_str = aa; } } else - if ((aret = strcmp(str, "Progress")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Progress")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Progress argument missing\n"); s->is_set_progress = 1; s->progress = atoi(aa); } else - if ((aret = strcmp(str, "SnapshotId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SnapshotId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SnapshotId argument missing\n"); s->snapshot_id = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -16450,7 +16454,7 @@ int snapshot_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = strcmp(str, "TaskId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TaskId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "TaskId argument missing\n"); s->task_id = aa; // string string @@ -16465,17 +16469,17 @@ int snapshot_export_task_parser(void *v_s, char *str, char *aa, struct ptr_array int source_net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct source_net *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AccountId argument missing\n"); s->account_id = aa; // string string } else - if ((aret = strcmp(str, "IpRange")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IpRange")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "IpRange argument missing\n"); s->ip_range = aa; // string string } else - if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string @@ -16490,12 +16494,12 @@ int source_net_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int source_security_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct source_security_group *s = v_s; int aret = 0; - if ((aret = strcmp(str, "SecurityGroupAccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecurityGroupAccountId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SecurityGroupAccountId argument missing\n"); s->security_group_account_id = aa; // string string } else - if ((aret = strcmp(str, "SecurityGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecurityGroupName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SecurityGroupName argument missing\n"); s->security_group_name = aa; // string string @@ -16510,12 +16514,12 @@ int source_security_group_parser(void *v_s, char *str, char *aa, struct ptr_arra int state_comment_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct state_comment *s = v_s; int aret = 0; - if ((aret = strcmp(str, "StateCode")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "StateCode")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "StateCode argument missing\n"); s->state_code = aa; // string string } else - if ((aret = strcmp(str, "StateMessage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "StateMessage")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "StateMessage argument missing\n"); s->state_message = aa; // string string @@ -16530,17 +16534,17 @@ int state_comment_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int subnet_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct subnet *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AvailableIpsCount")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AvailableIpsCount")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AvailableIpsCount argument missing\n"); s->is_set_available_ips_count = 1; s->available_ips_count = atoi(aa); } else - if ((aret = strcmp(str, "IpRange")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IpRange")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "IpRange argument missing\n"); s->ip_range = aa; // string string } else - if ((aret = strcmp(str, "MapPublicIpOnLaunch")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "MapPublicIpOnLaunch")) == 0 || aret == '=' || aret == '.') { s->is_set_map_public_ip_on_launch = 1; if (!aa || !strcasecmp(aa, "true")) { s->map_public_ip_on_launch = 1; @@ -16550,27 +16554,27 @@ int subnet_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("MapPublicIpOnLaunch require true/false\n"); } } else - if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubnetId argument missing\n"); s->subnet_id = aa; // string string } else - if ((aret = strcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubregionName argument missing\n"); s->subregion_name = aa; // string string } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -16605,22 +16609,22 @@ int subnet_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int subregion_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct subregion *s = v_s; int aret = 0; - if ((aret = strcmp(str, "LocationCode")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LocationCode")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LocationCode argument missing\n"); s->location_code = aa; // string string } else - if ((aret = strcmp(str, "RegionName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RegionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "RegionName argument missing\n"); s->region_name = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubregionName argument missing\n"); s->subregion_name = aa; // string string @@ -16635,22 +16639,22 @@ int subregion_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int tag_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct tag *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Key")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Key")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Key argument missing\n"); s->key = aa; // string string } else - if ((aret = strcmp(str, "ResourceId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ResourceId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ResourceId argument missing\n"); s->resource_id = aa; // string string } else - if ((aret = strcmp(str, "ResourceType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ResourceType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ResourceType argument missing\n"); s->resource_type = aa; // string string } else - if ((aret = strcmp(str, "Value")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Value")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Value argument missing\n"); s->value = aa; // string string @@ -16665,27 +16669,27 @@ int tag_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int user_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct user *s = v_s; int aret = 0; - if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = strcmp(str, "LastModificationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LastModificationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LastModificationDate argument missing\n"); s->last_modification_date = aa; // string string } else - if ((aret = strcmp(str, "Path")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Path")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Path argument missing\n"); s->path = aa; // string string } else - if ((aret = strcmp(str, "UserId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "UserId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "UserId argument missing\n"); s->user_id = aa; // string string } else - if ((aret = strcmp(str, "UserName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "UserName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "UserName argument missing\n"); s->user_name = aa; // string string @@ -16700,32 +16704,32 @@ int user_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int user_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct user_group *s = v_s; int aret = 0; - if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = strcmp(str, "LastModificationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LastModificationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LastModificationDate argument missing\n"); s->last_modification_date = aa; // string string } else - if ((aret = strcmp(str, "Name")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Name")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Name argument missing\n"); s->name = aa; // string string } else - if ((aret = strcmp(str, "Orn")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Orn")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Orn argument missing\n"); s->orn = aa; // string string } else - if ((aret = strcmp(str, "Path")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Path")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Path argument missing\n"); s->path = aa; // string string } else - if ((aret = strcmp(str, "UserGroupId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "UserGroupId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "UserGroupId argument missing\n"); s->user_group_id = aa; // string string @@ -16740,27 +16744,27 @@ int user_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int vgw_telemetry_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct vgw_telemetry *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AcceptedRouteCount")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AcceptedRouteCount")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "AcceptedRouteCount argument missing\n"); s->is_set_accepted_route_count = 1; s->accepted_route_count = atoi(aa); } else - if ((aret = strcmp(str, "LastStateChangeDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LastStateChangeDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LastStateChangeDate argument missing\n"); s->last_state_change_date = aa; // string string } else - if ((aret = strcmp(str, "OutsideIpAddress")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OutsideIpAddress")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OutsideIpAddress argument missing\n"); s->outside_ip_address = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "StateDescription")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "StateDescription")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "StateDescription argument missing\n"); s->state_description = aa; // string string @@ -16775,12 +16779,12 @@ int vgw_telemetry_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int virtual_gateway_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct virtual_gateway *s = v_s; int aret = 0; - if ((aret = strcmp(str, "ConnectionType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ConnectionType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ConnectionType argument missing\n"); s->connection_type = aa; // string string } else - if ((aret = strcmp(str, "NetToVirtualGatewayLinks")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetToVirtualGatewayLinks")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -16805,12 +16809,12 @@ int virtual_gateway_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) s->net_to_virtual_gateway_links_str = aa; // array ref NetToVirtualGatewayLink ref } } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -16835,7 +16839,7 @@ int virtual_gateway_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = strcmp(str, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VirtualGatewayId argument missing\n"); s->virtual_gateway_id = aa; // string string @@ -16850,12 +16854,12 @@ int virtual_gateway_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct vm *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Architecture")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Architecture")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Architecture argument missing\n"); s->architecture = aa; // string string } else - if ((aret = strcmp(str, "BlockDeviceMappings")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BlockDeviceMappings")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -16880,7 +16884,7 @@ int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->block_device_mappings_str = aa; // array ref BlockDeviceMappingCreated ref } } else - if ((aret = strcmp(str, "BsuOptimized")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BsuOptimized")) == 0 || aret == '=' || aret == '.') { s->is_set_bsu_optimized = 1; if (!aa || !strcasecmp(aa, "true")) { s->bsu_optimized = 1; @@ -16890,17 +16894,17 @@ int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("BsuOptimized require true/false\n"); } } else - if ((aret = strcmp(str, "ClientToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ClientToken")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ClientToken argument missing\n"); s->client_token = aa; // string string } else - if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = strcmp(str, "DeletionProtection")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "DeletionProtection")) == 0 || aret == '=' || aret == '.') { s->is_set_deletion_protection = 1; if (!aa || !strcasecmp(aa, "true")) { s->deletion_protection = 1; @@ -16910,17 +16914,17 @@ int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("DeletionProtection require true/false\n"); } } else - if ((aret = strcmp(str, "Hypervisor")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Hypervisor")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Hypervisor argument missing\n"); s->hypervisor = aa; // string string } else - if ((aret = strcmp(str, "ImageId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ImageId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ImageId argument missing\n"); s->image_id = aa; // string string } else - if ((aret = strcmp(str, "IsSourceDestChecked")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "IsSourceDestChecked")) == 0 || aret == '=' || aret == '.') { s->is_set_is_source_dest_checked = 1; if (!aa || !strcasecmp(aa, "true")) { s->is_source_dest_checked = 1; @@ -16930,17 +16934,17 @@ int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("IsSourceDestChecked require true/false\n"); } } else - if ((aret = strcmp(str, "KeypairName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "KeypairName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "KeypairName argument missing\n"); s->keypair_name = aa; // string string } else - if ((aret = strcmp(str, "LaunchNumber")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LaunchNumber")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "LaunchNumber argument missing\n"); s->is_set_launch_number = 1; s->launch_number = atoi(aa); } else - if ((aret = strcmp(str, "NestedVirtualization")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NestedVirtualization")) == 0 || aret == '=' || aret == '.') { s->is_set_nested_virtualization = 1; if (!aa || !strcasecmp(aa, "true")) { s->nested_virtualization = 1; @@ -16950,12 +16954,12 @@ int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("NestedVirtualization require true/false\n"); } } else - if ((aret = strcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "NetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "NetId argument missing\n"); s->net_id = aa; // string string } else - if ((aret = strcmp(str, "Nics")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Nics")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -16980,17 +16984,17 @@ int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->nics_str = aa; // array ref NicLight ref } } else - if ((aret = strcmp(str, "OsFamily")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "OsFamily")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "OsFamily argument missing\n"); s->os_family = aa; // string string } else - if ((aret = strcmp(str, "Performance")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Performance")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Performance argument missing\n"); s->performance = aa; // string string } else - if ((aret = strcmp(str, "Placement")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Placement")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "Placement argument missing\n"); @@ -17007,17 +17011,17 @@ int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->placement_str = aa; } } else - if ((aret = strcmp(str, "PrivateDnsName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PrivateDnsName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PrivateDnsName argument missing\n"); s->private_dns_name = aa; // string string } else - if ((aret = strcmp(str, "PrivateIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PrivateIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PrivateIp argument missing\n"); s->private_ip = aa; // string string } else - if ((aret = strcmp(str, "ProductCodes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ProductCodes")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -17041,36 +17045,36 @@ int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "ProductCodes argument missing\n"); s->product_codes_str = aa; } - } else if (!(aret = strcmp(str, "ProductCodes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ProductCodes[]")) || aret == '=') { TRY(!aa, "ProductCodes[] argument missing\n"); SET_NEXT(s->product_codes, (aa), pa); } else - if ((aret = strcmp(str, "PublicDnsName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PublicDnsName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicDnsName argument missing\n"); s->public_dns_name = aa; // string string } else - if ((aret = strcmp(str, "PublicIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PublicIp")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PublicIp argument missing\n"); s->public_ip = aa; // string string } else - if ((aret = strcmp(str, "ReservationId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ReservationId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ReservationId argument missing\n"); s->reservation_id = aa; // string string } else - if ((aret = strcmp(str, "RootDeviceName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RootDeviceName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "RootDeviceName argument missing\n"); s->root_device_name = aa; // string string } else - if ((aret = strcmp(str, "RootDeviceType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RootDeviceType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "RootDeviceType argument missing\n"); s->root_device_type = aa; // string string } else - if ((aret = strcmp(str, "SecurityGroups")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecurityGroups")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -17095,22 +17099,22 @@ int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->security_groups_str = aa; // array ref SecurityGroupLight ref } } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "StateReason")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "StateReason")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "StateReason argument missing\n"); s->state_reason = aa; // string string } else - if ((aret = strcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubnetId argument missing\n"); s->subnet_id = aa; // string string } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -17135,22 +17139,22 @@ int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = strcmp(str, "UserData")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "UserData")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "UserData argument missing\n"); s->user_data = aa; // string string } else - if ((aret = strcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmId argument missing\n"); s->vm_id = aa; // string string } else - if ((aret = strcmp(str, "VmInitiatedShutdownBehavior")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmInitiatedShutdownBehavior")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmInitiatedShutdownBehavior argument missing\n"); s->vm_initiated_shutdown_behavior = aa; // string string } else - if ((aret = strcmp(str, "VmType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmType argument missing\n"); s->vm_type = aa; // string string @@ -17165,22 +17169,22 @@ int vm_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int vm_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct vm_group *s = v_s; int aret = 0; - if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = strcmp(str, "PositioningStrategy")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PositioningStrategy")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PositioningStrategy argument missing\n"); s->positioning_strategy = aa; // string string } else - if ((aret = strcmp(str, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -17204,21 +17208,21 @@ int vm_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "SecurityGroupIds argument missing\n"); s->security_group_ids_str = aa; } - } else if (!(aret = strcmp(str, "SecurityGroupIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SecurityGroupIds[]")) || aret == '=') { TRY(!aa, "SecurityGroupIds[] argument missing\n"); SET_NEXT(s->security_group_ids, (aa), pa); } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubnetId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubnetId argument missing\n"); s->subnet_id = aa; // string string } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -17243,22 +17247,22 @@ int vm_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = strcmp(str, "VmCount")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmCount")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmCount argument missing\n"); s->is_set_vm_count = 1; s->vm_count = atoi(aa); } else - if ((aret = strcmp(str, "VmGroupId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmGroupId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmGroupId argument missing\n"); s->vm_group_id = aa; // string string } else - if ((aret = strcmp(str, "VmGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmGroupName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmGroupName argument missing\n"); s->vm_group_name = aa; // string string } else - if ((aret = strcmp(str, "VmIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmIds")) == 0 || aret == '=' || aret == '.') { if (aret == '.') { int pos; char *endptr; @@ -17282,11 +17286,11 @@ int vm_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { TRY(!aa, "VmIds argument missing\n"); s->vm_ids_str = aa; } - } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); } else - if ((aret = strcmp(str, "VmTemplateId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmTemplateId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmTemplateId argument missing\n"); s->vm_template_id = aa; // string string @@ -17301,17 +17305,17 @@ int vm_group_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int vm_state_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct vm_state *s = v_s; int aret = 0; - if ((aret = strcmp(str, "CurrentState")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CurrentState")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CurrentState argument missing\n"); s->current_state = aa; // string string } else - if ((aret = strcmp(str, "PreviousState")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "PreviousState")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "PreviousState argument missing\n"); s->previous_state = aa; // string string } else - if ((aret = strcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmId argument missing\n"); s->vm_id = aa; // string string @@ -17326,7 +17330,7 @@ int vm_state_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int vm_states_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct vm_states *s = v_s; int aret = 0; - if ((aret = strcmp(str, "MaintenanceEvents")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "MaintenanceEvents")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -17351,17 +17355,17 @@ int vm_states_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->maintenance_events_str = aa; // array ref MaintenanceEvent ref } } else - if ((aret = strcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubregionName argument missing\n"); s->subregion_name = aa; // string string } else - if ((aret = strcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmId argument missing\n"); s->vm_id = aa; // string string } else - if ((aret = strcmp(str, "VmState")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmState")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmState argument missing\n"); s->vm_state = aa; // string string @@ -17376,47 +17380,47 @@ int vm_states_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int vm_template_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct vm_template *s = v_s; int aret = 0; - if ((aret = strcmp(str, "CpuCores")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CpuCores")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CpuCores argument missing\n"); s->is_set_cpu_cores = 1; s->cpu_cores = atoi(aa); } else - if ((aret = strcmp(str, "CpuGeneration")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CpuGeneration")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CpuGeneration argument missing\n"); s->cpu_generation = aa; // string string } else - if ((aret = strcmp(str, "CpuPerformance")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CpuPerformance")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CpuPerformance argument missing\n"); s->cpu_performance = aa; // string string } else - if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = strcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Description")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Description argument missing\n"); s->description = aa; // string string } else - if ((aret = strcmp(str, "ImageId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ImageId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ImageId argument missing\n"); s->image_id = aa; // string string } else - if ((aret = strcmp(str, "KeypairName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "KeypairName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "KeypairName argument missing\n"); s->keypair_name = aa; // string string } else - if ((aret = strcmp(str, "Ram")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Ram")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Ram argument missing\n"); s->is_set_ram = 1; s->ram = atoi(aa); } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -17441,12 +17445,12 @@ int vm_template_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = strcmp(str, "VmTemplateId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmTemplateId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmTemplateId argument missing\n"); s->vm_template_id = aa; // string string } else - if ((aret = strcmp(str, "VmTemplateName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmTemplateName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmTemplateName argument missing\n"); s->vm_template_name = aa; // string string @@ -17461,7 +17465,7 @@ int vm_template_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int vm_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct vm_type *s = v_s; int aret = 0; - if ((aret = strcmp(str, "BsuOptimized")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "BsuOptimized")) == 0 || aret == '=' || aret == '.') { s->is_set_bsu_optimized = 1; if (!aa || !strcasecmp(aa, "true")) { s->bsu_optimized = 1; @@ -17471,47 +17475,47 @@ int vm_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("BsuOptimized require true/false\n"); } } else - if ((aret = strcmp(str, "EphemeralsType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "EphemeralsType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "EphemeralsType argument missing\n"); s->ephemerals_type = aa; // string string } else - if ((aret = strcmp(str, "Eth")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Eth")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Eth argument missing\n"); s->is_set_eth = 1; s->eth = atoi(aa); } else - if ((aret = strcmp(str, "Gpu")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Gpu")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Gpu argument missing\n"); s->is_set_gpu = 1; s->gpu = atoi(aa); } else - if ((aret = strcmp(str, "MaxPrivateIps")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "MaxPrivateIps")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "MaxPrivateIps argument missing\n"); s->is_set_max_private_ips = 1; s->max_private_ips = atoi(aa); } else - if ((aret = strcmp(str, "MemorySize")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "MemorySize")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "MemorySize argument missing\n"); s->is_set_memory_size = 1; s->memory_size = atof(aa); } else - if ((aret = strcmp(str, "VcoreCount")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VcoreCount")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VcoreCount argument missing\n"); s->is_set_vcore_count = 1; s->vcore_count = atoi(aa); } else - if ((aret = strcmp(str, "VmTypeName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VmTypeName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VmTypeName argument missing\n"); s->vm_type_name = aa; // string string } else - if ((aret = strcmp(str, "VolumeCount")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VolumeCount")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VolumeCount argument missing\n"); s->is_set_volume_count = 1; s->volume_count = atoi(aa); } else - if ((aret = strcmp(str, "VolumeSize")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VolumeSize")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VolumeSize argument missing\n"); s->is_set_volume_size = 1; s->volume_size = atoi(aa); @@ -17526,17 +17530,17 @@ int vm_type_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct volume *s = v_s; int aret = 0; - if ((aret = strcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CreationDate")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "CreationDate argument missing\n"); s->creation_date = aa; // string string } else - if ((aret = strcmp(str, "Iops")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Iops")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Iops argument missing\n"); s->is_set_iops = 1; s->iops = atoi(aa); } else - if ((aret = strcmp(str, "LinkedVolumes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "LinkedVolumes")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -17561,27 +17565,27 @@ int volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->linked_volumes_str = aa; // array ref LinkedVolume ref } } else - if ((aret = strcmp(str, "Size")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Size")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "Size argument missing\n"); s->is_set_size = 1; s->size = atoi(aa); } else - if ((aret = strcmp(str, "SnapshotId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SnapshotId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SnapshotId argument missing\n"); s->snapshot_id = aa; // string string } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "SubregionName")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "SubregionName argument missing\n"); s->subregion_name = aa; // string string } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -17606,12 +17610,12 @@ int volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = strcmp(str, "VolumeId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VolumeId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VolumeId argument missing\n"); s->volume_id = aa; // string string } else - if ((aret = strcmp(str, "VolumeType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VolumeType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VolumeType argument missing\n"); s->volume_type = aa; // string string @@ -17626,22 +17630,22 @@ int volume_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct vpn_connection *s = v_s; int aret = 0; - if ((aret = strcmp(str, "ClientGatewayConfiguration")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ClientGatewayConfiguration")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ClientGatewayConfiguration argument missing\n"); s->client_gateway_configuration = aa; // string string } else - if ((aret = strcmp(str, "ClientGatewayId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ClientGatewayId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ClientGatewayId argument missing\n"); s->client_gateway_id = aa; // string string } else - if ((aret = strcmp(str, "ConnectionType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ConnectionType")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "ConnectionType argument missing\n"); s->connection_type = aa; // string string } else - if ((aret = strcmp(str, "Routes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Routes")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -17666,12 +17670,12 @@ int vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) s->routes_str = aa; // array ref RouteLight ref } } else - if ((aret = strcmp(str, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "State")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "State argument missing\n"); s->state = aa; // string string } else - if ((aret = strcmp(str, "StaticRoutesOnly")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "StaticRoutesOnly")) == 0 || aret == '=' || aret == '.') { s->is_set_static_routes_only = 1; if (!aa || !strcasecmp(aa, "true")) { s->static_routes_only = 1; @@ -17681,7 +17685,7 @@ int vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) BAD_RET("StaticRoutesOnly require true/false\n"); } } else - if ((aret = strcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Tags")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -17706,7 +17710,7 @@ int vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = strcmp(str, "VgwTelemetries")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VgwTelemetries")) == 0 || aret == '=' || aret == '.') { char *dot_pos = strchr(str, '.'); if (dot_pos) { @@ -17731,17 +17735,17 @@ int vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) s->vgw_telemetries_str = aa; // array ref VgwTelemetry ref } } else - if ((aret = strcmp(str, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VirtualGatewayId argument missing\n"); s->virtual_gateway_id = aa; // string string } else - if ((aret = strcmp(str, "VpnConnectionId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VpnConnectionId")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "VpnConnectionId argument missing\n"); s->vpn_connection_id = aa; // string string } else - if ((aret = strcmp(str, "VpnOptions")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "VpnOptions")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "VpnOptions argument missing\n"); @@ -17768,7 +17772,7 @@ int vpn_connection_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) int vpn_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct vpn_options *s = v_s; int aret = 0; - if ((aret = strcmp(str, "Phase1Options")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Phase1Options")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "Phase1Options argument missing\n"); @@ -17785,7 +17789,7 @@ int vpn_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->phase1_options_str = aa; } } else - if ((aret = strcmp(str, "Phase2Options")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "Phase2Options")) == 0 || aret == '=' || aret == '.') { char *dot_pos; TRY(!aa, "Phase2Options argument missing\n"); @@ -17802,7 +17806,7 @@ int vpn_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { s->phase2_options_str = aa; } } else - if ((aret = strcmp(str, "TunnelInsideIpRange")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "TunnelInsideIpRange")) == 0 || aret == '=' || aret == '.') { TRY(!aa, "TunnelInsideIpRange argument missing\n"); s->tunnel_inside_ip_range = aa; // string string @@ -17817,7 +17821,7 @@ int vpn_options_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { struct with *s = v_s; int aret = 0; - if ((aret = strcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "AccountId")) == 0 || aret == '=' || aret == '.') { s->is_set_account_id = 1; if (!aa || !strcasecmp(aa, "true")) { s->account_id = 1; @@ -17827,7 +17831,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("AccountId require true/false\n"); } } else - if ((aret = strcmp(str, "CallDuration")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "CallDuration")) == 0 || aret == '=' || aret == '.') { s->is_set_call_duration = 1; if (!aa || !strcasecmp(aa, "true")) { s->call_duration = 1; @@ -17837,7 +17841,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("CallDuration require true/false\n"); } } else - if ((aret = strcmp(str, "QueryAccessKey")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryAccessKey")) == 0 || aret == '=' || aret == '.') { s->is_set_query_access_key = 1; if (!aa || !strcasecmp(aa, "true")) { s->query_access_key = 1; @@ -17847,7 +17851,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("QueryAccessKey require true/false\n"); } } else - if ((aret = strcmp(str, "QueryApiName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryApiName")) == 0 || aret == '=' || aret == '.') { s->is_set_query_api_name = 1; if (!aa || !strcasecmp(aa, "true")) { s->query_api_name = 1; @@ -17857,7 +17861,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("QueryApiName require true/false\n"); } } else - if ((aret = strcmp(str, "QueryApiVersion")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryApiVersion")) == 0 || aret == '=' || aret == '.') { s->is_set_query_api_version = 1; if (!aa || !strcasecmp(aa, "true")) { s->query_api_version = 1; @@ -17867,7 +17871,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("QueryApiVersion require true/false\n"); } } else - if ((aret = strcmp(str, "QueryCallName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryCallName")) == 0 || aret == '=' || aret == '.') { s->is_set_query_call_name = 1; if (!aa || !strcasecmp(aa, "true")) { s->query_call_name = 1; @@ -17877,7 +17881,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("QueryCallName require true/false\n"); } } else - if ((aret = strcmp(str, "QueryDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryDate")) == 0 || aret == '=' || aret == '.') { s->is_set_query_date = 1; if (!aa || !strcasecmp(aa, "true")) { s->query_date = 1; @@ -17887,7 +17891,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("QueryDate require true/false\n"); } } else - if ((aret = strcmp(str, "QueryHeaderRaw")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryHeaderRaw")) == 0 || aret == '=' || aret == '.') { s->is_set_query_header_raw = 1; if (!aa || !strcasecmp(aa, "true")) { s->query_header_raw = 1; @@ -17897,7 +17901,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("QueryHeaderRaw require true/false\n"); } } else - if ((aret = strcmp(str, "QueryHeaderSize")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryHeaderSize")) == 0 || aret == '=' || aret == '.') { s->is_set_query_header_size = 1; if (!aa || !strcasecmp(aa, "true")) { s->query_header_size = 1; @@ -17907,7 +17911,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("QueryHeaderSize require true/false\n"); } } else - if ((aret = strcmp(str, "QueryIpAddress")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryIpAddress")) == 0 || aret == '=' || aret == '.') { s->is_set_query_ip_address = 1; if (!aa || !strcasecmp(aa, "true")) { s->query_ip_address = 1; @@ -17917,7 +17921,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("QueryIpAddress require true/false\n"); } } else - if ((aret = strcmp(str, "QueryPayloadRaw")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryPayloadRaw")) == 0 || aret == '=' || aret == '.') { s->is_set_query_payload_raw = 1; if (!aa || !strcasecmp(aa, "true")) { s->query_payload_raw = 1; @@ -17927,7 +17931,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("QueryPayloadRaw require true/false\n"); } } else - if ((aret = strcmp(str, "QueryPayloadSize")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryPayloadSize")) == 0 || aret == '=' || aret == '.') { s->is_set_query_payload_size = 1; if (!aa || !strcasecmp(aa, "true")) { s->query_payload_size = 1; @@ -17937,7 +17941,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("QueryPayloadSize require true/false\n"); } } else - if ((aret = strcmp(str, "QueryUserAgent")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "QueryUserAgent")) == 0 || aret == '=' || aret == '.') { s->is_set_query_user_agent = 1; if (!aa || !strcasecmp(aa, "true")) { s->query_user_agent = 1; @@ -17947,7 +17951,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("QueryUserAgent require true/false\n"); } } else - if ((aret = strcmp(str, "RequestId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "RequestId")) == 0 || aret == '=' || aret == '.') { s->is_set_request_id = 1; if (!aa || !strcasecmp(aa, "true")) { s->request_id = 1; @@ -17957,7 +17961,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("RequestId require true/false\n"); } } else - if ((aret = strcmp(str, "ResponseSize")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ResponseSize")) == 0 || aret == '=' || aret == '.') { s->is_set_response_size = 1; if (!aa || !strcasecmp(aa, "true")) { s->response_size = 1; @@ -17967,7 +17971,7 @@ int with_parser(void *v_s, char *str, char *aa, struct ptr_array *pa) { BAD_RET("ResponseSize require true/false\n"); } } else - if ((aret = strcmp(str, "ResponseStatusCode")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(str, "ResponseStatusCode")) == 0 || aret == '=' || aret == '.') { s->is_set_response_status_code = 1; if (!aa || !strcasecmp(aa, "true")) { s->response_status_code = 1; @@ -18258,7 +18262,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "ClientGatewayId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ClientGatewayId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ClientGatewayId argument missing\n"); @@ -18269,7 +18273,7 @@ int main(int ac, char **av) s->client_gateway_id = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -18285,7 +18289,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VirtualGatewayId argument missing\n"); @@ -18296,7 +18300,7 @@ int main(int ac, char **av) s->virtual_gateway_id = aa; // string string } else - if ((aret = strcmp(next_a, "VpnConnectionId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VpnConnectionId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VpnConnectionId argument missing\n"); @@ -18307,7 +18311,7 @@ int main(int ac, char **av) s->vpn_connection_id = aa; // string string } else - if ((aret = strcmp(next_a, "VpnOptions")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VpnOptions")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VpnOptions argument missing\n"); @@ -18409,7 +18413,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -18425,7 +18429,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Iops")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Iops")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Iops argument missing\n"); @@ -18436,7 +18440,7 @@ int main(int ac, char **av) s->is_set_iops = 1; s->iops = atoi(aa); } else - if ((aret = strcmp(next_a, "Size")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Size")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Size argument missing\n"); @@ -18447,7 +18451,7 @@ int main(int ac, char **av) s->is_set_size = 1; s->size = atoi(aa); } else - if ((aret = strcmp(next_a, "VolumeId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VolumeId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VolumeId argument missing\n"); @@ -18458,7 +18462,7 @@ int main(int ac, char **av) s->volume_id = aa; // string string } else - if ((aret = strcmp(next_a, "VolumeType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VolumeType")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VolumeType argument missing\n"); @@ -18548,7 +18552,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -18559,7 +18563,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -18575,7 +18579,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Tags argument missing\n"); @@ -18606,7 +18610,7 @@ int main(int ac, char **av) s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = strcmp(next_a, "VmTemplateId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmTemplateId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmTemplateId argument missing\n"); @@ -18617,7 +18621,7 @@ int main(int ac, char **av) s->vm_template_id = aa; // string string } else - if ((aret = strcmp(next_a, "VmTemplateName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmTemplateName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmTemplateName argument missing\n"); @@ -18707,7 +18711,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -18718,7 +18722,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -18734,7 +18738,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Tags argument missing\n"); @@ -18765,7 +18769,7 @@ int main(int ac, char **av) s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = strcmp(next_a, "VmGroupId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmGroupId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmGroupId argument missing\n"); @@ -18776,7 +18780,7 @@ int main(int ac, char **av) s->vm_group_id = aa; // string string } else - if ((aret = strcmp(next_a, "VmGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmGroupName argument missing\n"); @@ -18787,7 +18791,7 @@ int main(int ac, char **av) s->vm_group_name = aa; // string string } else - if ((aret = strcmp(next_a, "VmTemplateId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmTemplateId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmTemplateId argument missing\n"); @@ -18877,7 +18881,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "BlockDeviceMappings")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "BlockDeviceMappings")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BlockDeviceMappings argument missing\n"); @@ -18908,7 +18912,7 @@ int main(int ac, char **av) s->block_device_mappings_str = aa; // array ref BlockDeviceMappingVmUpdate ref } } else - if ((aret = strcmp(next_a, "BsuOptimized")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "BsuOptimized")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BsuOptimized argument missing\n"); @@ -18924,7 +18928,7 @@ int main(int ac, char **av) BAD_RET("BsuOptimized require true/false\n"); } } else - if ((aret = strcmp(next_a, "DeletionProtection")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DeletionProtection")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DeletionProtection argument missing\n"); @@ -18940,7 +18944,7 @@ int main(int ac, char **av) BAD_RET("DeletionProtection require true/false\n"); } } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -18956,7 +18960,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "IsSourceDestChecked")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "IsSourceDestChecked")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "IsSourceDestChecked argument missing\n"); @@ -18972,7 +18976,7 @@ int main(int ac, char **av) BAD_RET("IsSourceDestChecked require true/false\n"); } } else - if ((aret = strcmp(next_a, "KeypairName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "KeypairName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "KeypairName argument missing\n"); @@ -18983,7 +18987,7 @@ int main(int ac, char **av) s->keypair_name = aa; // string string } else - if ((aret = strcmp(next_a, "NestedVirtualization")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NestedVirtualization")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NestedVirtualization argument missing\n"); @@ -18999,7 +19003,7 @@ int main(int ac, char **av) BAD_RET("NestedVirtualization require true/false\n"); } } else - if ((aret = strcmp(next_a, "Performance")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Performance")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Performance argument missing\n"); @@ -19010,7 +19014,7 @@ int main(int ac, char **av) s->performance = aa; // string string } else - if ((aret = strcmp(next_a, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupIds argument missing\n"); @@ -19040,11 +19044,11 @@ int main(int ac, char **av) TRY(!aa, "SecurityGroupIds argument missing\n"); s->security_group_ids_str = aa; } - } else if (!(aret = strcmp(str, "SecurityGroupIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SecurityGroupIds[]")) || aret == '=') { TRY(!aa, "SecurityGroupIds[] argument missing\n"); SET_NEXT(s->security_group_ids, (aa), pa); } else - if ((aret = strcmp(next_a, "UserData")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserData")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserData argument missing\n"); @@ -19055,7 +19059,7 @@ int main(int ac, char **av) s->user_data = aa; // string string } else - if ((aret = strcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmId argument missing\n"); @@ -19066,7 +19070,7 @@ int main(int ac, char **av) s->vm_id = aa; // string string } else - if ((aret = strcmp(next_a, "VmInitiatedShutdownBehavior")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmInitiatedShutdownBehavior")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmInitiatedShutdownBehavior argument missing\n"); @@ -19077,7 +19081,7 @@ int main(int ac, char **av) s->vm_initiated_shutdown_behavior = aa; // string string } else - if ((aret = strcmp(next_a, "VmType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmType")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmType argument missing\n"); @@ -19167,7 +19171,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -19183,7 +19187,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "NewPath")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NewPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NewPath argument missing\n"); @@ -19194,7 +19198,7 @@ int main(int ac, char **av) s->new_path = aa; // string string } else - if ((aret = strcmp(next_a, "NewUserGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NewUserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NewUserGroupName argument missing\n"); @@ -19205,7 +19209,7 @@ int main(int ac, char **av) s->new_user_group_name = aa; // string string } else - if ((aret = strcmp(next_a, "Path")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Path")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Path argument missing\n"); @@ -19216,7 +19220,7 @@ int main(int ac, char **av) s->path = aa; // string string } else - if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -19306,7 +19310,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -19322,7 +19326,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "NewPath")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NewPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NewPath argument missing\n"); @@ -19333,7 +19337,7 @@ int main(int ac, char **av) s->new_path = aa; // string string } else - if ((aret = strcmp(next_a, "NewUserName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NewUserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NewUserName argument missing\n"); @@ -19344,7 +19348,7 @@ int main(int ac, char **av) s->new_user_name = aa; // string string } else - if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -19434,7 +19438,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -19450,7 +19454,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "MapPublicIpOnLaunch")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "MapPublicIpOnLaunch")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "MapPublicIpOnLaunch argument missing\n"); @@ -19466,7 +19470,7 @@ int main(int ac, char **av) BAD_RET("MapPublicIpOnLaunch require true/false\n"); } } else - if ((aret = strcmp(next_a, "SubnetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SubnetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubnetId argument missing\n"); @@ -19556,7 +19560,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -19572,7 +19576,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "PermissionsToCreateVolume")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PermissionsToCreateVolume")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PermissionsToCreateVolume argument missing\n"); @@ -19595,7 +19599,7 @@ int main(int ac, char **av) s->permissions_to_create_volume_str = aa; } } else - if ((aret = strcmp(next_a, "SnapshotId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SnapshotId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SnapshotId argument missing\n"); @@ -19685,7 +19689,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -19701,7 +19705,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Name")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Name")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Name argument missing\n"); @@ -19712,7 +19716,7 @@ int main(int ac, char **av) s->name = aa; // string string } else - if ((aret = strcmp(next_a, "NewName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NewName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NewName argument missing\n"); @@ -19723,7 +19727,7 @@ int main(int ac, char **av) s->new_name = aa; // string string } else - if ((aret = strcmp(next_a, "NewPath")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NewPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NewPath argument missing\n"); @@ -19813,7 +19817,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -19829,7 +19833,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "LinkRouteTableId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LinkRouteTableId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LinkRouteTableId argument missing\n"); @@ -19840,7 +19844,7 @@ int main(int ac, char **av) s->link_route_table_id = aa; // string string } else - if ((aret = strcmp(next_a, "RouteTableId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "RouteTableId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "RouteTableId argument missing\n"); @@ -19930,7 +19934,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -19946,7 +19950,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Enable")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Enable")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Enable argument missing\n"); @@ -19962,7 +19966,7 @@ int main(int ac, char **av) BAD_RET("Enable require true/false\n"); } } else - if ((aret = strcmp(next_a, "RouteTableId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "RouteTableId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "RouteTableId argument missing\n"); @@ -19973,7 +19977,7 @@ int main(int ac, char **av) s->route_table_id = aa; // string string } else - if ((aret = strcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VirtualGatewayId argument missing\n"); @@ -20063,7 +20067,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DestinationIpRange")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DestinationIpRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DestinationIpRange argument missing\n"); @@ -20074,7 +20078,7 @@ int main(int ac, char **av) s->destination_ip_range = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -20090,7 +20094,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "GatewayId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "GatewayId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "GatewayId argument missing\n"); @@ -20101,7 +20105,7 @@ int main(int ac, char **av) s->gateway_id = aa; // string string } else - if ((aret = strcmp(next_a, "NatServiceId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NatServiceId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NatServiceId argument missing\n"); @@ -20112,7 +20116,7 @@ int main(int ac, char **av) s->nat_service_id = aa; // string string } else - if ((aret = strcmp(next_a, "NetPeeringId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NetPeeringId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetPeeringId argument missing\n"); @@ -20123,7 +20127,7 @@ int main(int ac, char **av) s->net_peering_id = aa; // string string } else - if ((aret = strcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NicId argument missing\n"); @@ -20134,7 +20138,7 @@ int main(int ac, char **av) s->nic_id = aa; // string string } else - if ((aret = strcmp(next_a, "RouteTableId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "RouteTableId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "RouteTableId argument missing\n"); @@ -20145,7 +20149,7 @@ int main(int ac, char **av) s->route_table_id = aa; // string string } else - if ((aret = strcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmId argument missing\n"); @@ -20235,7 +20239,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -20246,7 +20250,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -20262,7 +20266,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "LinkNic")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LinkNic")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LinkNic argument missing\n"); @@ -20285,7 +20289,7 @@ int main(int ac, char **av) s->link_nic_str = aa; } } else - if ((aret = strcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NicId argument missing\n"); @@ -20296,7 +20300,7 @@ int main(int ac, char **av) s->nic_id = aa; // string string } else - if ((aret = strcmp(next_a, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupIds argument missing\n"); @@ -20326,7 +20330,7 @@ int main(int ac, char **av) TRY(!aa, "SecurityGroupIds argument missing\n"); s->security_group_ids_str = aa; } - } else if (!(aret = strcmp(str, "SecurityGroupIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SecurityGroupIds[]")) || aret == '=') { TRY(!aa, "SecurityGroupIds[] argument missing\n"); SET_NEXT(s->security_group_ids, (aa), pa); } else @@ -20409,7 +20413,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "AddRouteTableIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "AddRouteTableIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "AddRouteTableIds argument missing\n"); @@ -20439,11 +20443,11 @@ int main(int ac, char **av) TRY(!aa, "AddRouteTableIds argument missing\n"); s->add_route_table_ids_str = aa; } - } else if (!(aret = strcmp(str, "AddRouteTableIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "AddRouteTableIds[]")) || aret == '=') { TRY(!aa, "AddRouteTableIds[] argument missing\n"); SET_NEXT(s->add_route_table_ids, (aa), pa); } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -20459,7 +20463,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "NetAccessPointId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NetAccessPointId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetAccessPointId argument missing\n"); @@ -20470,7 +20474,7 @@ int main(int ac, char **av) s->net_access_point_id = aa; // string string } else - if ((aret = strcmp(next_a, "RemoveRouteTableIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "RemoveRouteTableIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "RemoveRouteTableIds argument missing\n"); @@ -20500,7 +20504,7 @@ int main(int ac, char **av) TRY(!aa, "RemoveRouteTableIds argument missing\n"); s->remove_route_table_ids_str = aa; } - } else if (!(aret = strcmp(str, "RemoveRouteTableIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "RemoveRouteTableIds[]")) || aret == '=') { TRY(!aa, "RemoveRouteTableIds[] argument missing\n"); SET_NEXT(s->remove_route_table_ids, (aa), pa); } else @@ -20583,7 +20587,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DhcpOptionsSetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DhcpOptionsSetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DhcpOptionsSetId argument missing\n"); @@ -20594,7 +20598,7 @@ int main(int ac, char **av) s->dhcp_options_set_id = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -20610,7 +20614,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetId argument missing\n"); @@ -20700,7 +20704,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "AccessLog")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "AccessLog")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "AccessLog argument missing\n"); @@ -20723,7 +20727,7 @@ int main(int ac, char **av) s->access_log_str = aa; } } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -20739,7 +20743,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "HealthCheck")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "HealthCheck")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "HealthCheck argument missing\n"); @@ -20762,7 +20766,7 @@ int main(int ac, char **av) s->health_check_str = aa; } } else - if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -20773,7 +20777,7 @@ int main(int ac, char **av) s->load_balancer_name = aa; // string string } else - if ((aret = strcmp(next_a, "LoadBalancerPort")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LoadBalancerPort")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerPort argument missing\n"); @@ -20784,7 +20788,7 @@ int main(int ac, char **av) s->is_set_load_balancer_port = 1; s->load_balancer_port = atoi(aa); } else - if ((aret = strcmp(next_a, "PolicyNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PolicyNames")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyNames argument missing\n"); @@ -20814,11 +20818,11 @@ int main(int ac, char **av) TRY(!aa, "PolicyNames argument missing\n"); s->policy_names_str = aa; } - } else if (!(aret = strcmp(str, "PolicyNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "PolicyNames[]")) || aret == '=') { TRY(!aa, "PolicyNames[] argument missing\n"); SET_NEXT(s->policy_names, (aa), pa); } else - if ((aret = strcmp(next_a, "PublicIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PublicIp")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PublicIp argument missing\n"); @@ -20829,7 +20833,7 @@ int main(int ac, char **av) s->public_ip = aa; // string string } else - if ((aret = strcmp(next_a, "SecuredCookies")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SecuredCookies")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecuredCookies argument missing\n"); @@ -20845,7 +20849,7 @@ int main(int ac, char **av) BAD_RET("SecuredCookies require true/false\n"); } } else - if ((aret = strcmp(next_a, "SecurityGroups")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SecurityGroups")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroups argument missing\n"); @@ -20875,11 +20879,11 @@ int main(int ac, char **av) TRY(!aa, "SecurityGroups argument missing\n"); s->security_groups_str = aa; } - } else if (!(aret = strcmp(str, "SecurityGroups[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SecurityGroups[]")) || aret == '=') { TRY(!aa, "SecurityGroups[] argument missing\n"); SET_NEXT(s->security_groups, (aa), pa); } else - if ((aret = strcmp(next_a, "ServerCertificateId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ServerCertificateId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ServerCertificateId argument missing\n"); @@ -20969,7 +20973,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -20985,7 +20989,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "HostPattern")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "HostPattern")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "HostPattern argument missing\n"); @@ -20996,7 +21000,7 @@ int main(int ac, char **av) s->host_pattern = aa; // string string } else - if ((aret = strcmp(next_a, "ListenerRuleName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ListenerRuleName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ListenerRuleName argument missing\n"); @@ -21007,7 +21011,7 @@ int main(int ac, char **av) s->listener_rule_name = aa; // string string } else - if ((aret = strcmp(next_a, "PathPattern")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PathPattern")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PathPattern argument missing\n"); @@ -21097,7 +21101,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -21108,7 +21112,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -21124,7 +21128,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "ImageId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ImageId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ImageId argument missing\n"); @@ -21135,7 +21139,7 @@ int main(int ac, char **av) s->image_id = aa; // string string } else - if ((aret = strcmp(next_a, "PermissionsToLaunch")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PermissionsToLaunch")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PermissionsToLaunch argument missing\n"); @@ -21237,7 +21241,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DeleteOnVmDeletion argument missing\n"); @@ -21253,7 +21257,7 @@ int main(int ac, char **av) BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -21269,7 +21273,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "FlexibleGpuId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "FlexibleGpuId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FlexibleGpuId argument missing\n"); @@ -21359,7 +21363,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DirectLinkInterfaceId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DirectLinkInterfaceId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DirectLinkInterfaceId argument missing\n"); @@ -21370,7 +21374,7 @@ int main(int ac, char **av) s->direct_link_interface_id = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -21386,7 +21390,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Mtu")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Mtu")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Mtu argument missing\n"); @@ -21476,7 +21480,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DedicatedGroupId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DedicatedGroupId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DedicatedGroupId argument missing\n"); @@ -21487,7 +21491,7 @@ int main(int ac, char **av) s->dedicated_group_id = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -21503,7 +21507,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Name")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Name")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Name argument missing\n"); @@ -21593,7 +21597,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "CaId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "CaId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CaId argument missing\n"); @@ -21604,7 +21608,7 @@ int main(int ac, char **av) s->ca_id = aa; // string string } else - if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -21615,7 +21619,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -21710,7 +21714,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "ApiAccessRuleId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ApiAccessRuleId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ApiAccessRuleId argument missing\n"); @@ -21721,7 +21725,7 @@ int main(int ac, char **av) s->api_access_rule_id = aa; // string string } else - if ((aret = strcmp(next_a, "CaIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "CaIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CaIds argument missing\n"); @@ -21751,11 +21755,11 @@ int main(int ac, char **av) TRY(!aa, "CaIds argument missing\n"); s->ca_ids_str = aa; } - } else if (!(aret = strcmp(str, "CaIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "CaIds[]")) || aret == '=') { TRY(!aa, "CaIds[] argument missing\n"); SET_NEXT(s->ca_ids, (aa), pa); } else - if ((aret = strcmp(next_a, "Cns")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Cns")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Cns argument missing\n"); @@ -21785,11 +21789,11 @@ int main(int ac, char **av) TRY(!aa, "Cns argument missing\n"); s->cns_str = aa; } - } else if (!(aret = strcmp(str, "Cns[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Cns[]")) || aret == '=') { TRY(!aa, "Cns[] argument missing\n"); SET_NEXT(s->cns, (aa), pa); } else - if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -21800,7 +21804,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -21816,7 +21820,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "IpRanges")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "IpRanges")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "IpRanges argument missing\n"); @@ -21846,7 +21850,7 @@ int main(int ac, char **av) TRY(!aa, "IpRanges argument missing\n"); s->ip_ranges_str = aa; } - } else if (!(aret = strcmp(str, "IpRanges[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "IpRanges[]")) || aret == '=') { TRY(!aa, "IpRanges[] argument missing\n"); SET_NEXT(s->ip_ranges, (aa), pa); } else @@ -21929,7 +21933,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -21945,7 +21949,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "MaxAccessKeyExpirationSeconds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "MaxAccessKeyExpirationSeconds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "MaxAccessKeyExpirationSeconds argument missing\n"); @@ -21956,7 +21960,7 @@ int main(int ac, char **av) s->is_set_max_access_key_expiration_seconds = 1; s->max_access_key_expiration_seconds = atoi(aa); } else - if ((aret = strcmp(next_a, "RequireTrustedEnv")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "RequireTrustedEnv")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "RequireTrustedEnv argument missing\n"); @@ -22051,7 +22055,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "AdditionalEmails")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "AdditionalEmails")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "AdditionalEmails argument missing\n"); @@ -22081,11 +22085,11 @@ int main(int ac, char **av) TRY(!aa, "AdditionalEmails argument missing\n"); s->additional_emails_str = aa; } - } else if (!(aret = strcmp(str, "AdditionalEmails[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "AdditionalEmails[]")) || aret == '=') { TRY(!aa, "AdditionalEmails[] argument missing\n"); SET_NEXT(s->additional_emails, (aa), pa); } else - if ((aret = strcmp(next_a, "City")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "City")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "City argument missing\n"); @@ -22096,7 +22100,7 @@ int main(int ac, char **av) s->city = aa; // string string } else - if ((aret = strcmp(next_a, "CompanyName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "CompanyName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CompanyName argument missing\n"); @@ -22107,7 +22111,7 @@ int main(int ac, char **av) s->company_name = aa; // string string } else - if ((aret = strcmp(next_a, "Country")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Country")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Country argument missing\n"); @@ -22118,7 +22122,7 @@ int main(int ac, char **av) s->country = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -22134,7 +22138,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Email")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Email")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Email argument missing\n"); @@ -22145,7 +22149,7 @@ int main(int ac, char **av) s->email = aa; // string string } else - if ((aret = strcmp(next_a, "FirstName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "FirstName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FirstName argument missing\n"); @@ -22156,7 +22160,7 @@ int main(int ac, char **av) s->first_name = aa; // string string } else - if ((aret = strcmp(next_a, "JobTitle")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "JobTitle")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "JobTitle argument missing\n"); @@ -22167,7 +22171,7 @@ int main(int ac, char **av) s->job_title = aa; // string string } else - if ((aret = strcmp(next_a, "LastName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LastName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LastName argument missing\n"); @@ -22178,7 +22182,7 @@ int main(int ac, char **av) s->last_name = aa; // string string } else - if ((aret = strcmp(next_a, "MobileNumber")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "MobileNumber")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "MobileNumber argument missing\n"); @@ -22189,7 +22193,7 @@ int main(int ac, char **av) s->mobile_number = aa; // string string } else - if ((aret = strcmp(next_a, "PhoneNumber")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PhoneNumber")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PhoneNumber argument missing\n"); @@ -22200,7 +22204,7 @@ int main(int ac, char **av) s->phone_number = aa; // string string } else - if ((aret = strcmp(next_a, "StateProvince")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "StateProvince")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "StateProvince argument missing\n"); @@ -22211,7 +22215,7 @@ int main(int ac, char **av) s->state_province = aa; // string string } else - if ((aret = strcmp(next_a, "VatNumber")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VatNumber")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VatNumber argument missing\n"); @@ -22222,7 +22226,7 @@ int main(int ac, char **av) s->vat_number = aa; // string string } else - if ((aret = strcmp(next_a, "ZipCode")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ZipCode")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ZipCode argument missing\n"); @@ -22312,7 +22316,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "AccessKeyId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "AccessKeyId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "AccessKeyId argument missing\n"); @@ -22323,7 +22327,7 @@ int main(int ac, char **av) s->access_key_id = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -22339,7 +22343,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "ExpirationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ExpirationDate")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ExpirationDate argument missing\n"); @@ -22350,7 +22354,7 @@ int main(int ac, char **av) s->expiration_date = aa; // string string } else - if ((aret = strcmp(next_a, "State")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "State")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "State argument missing\n"); @@ -22361,7 +22365,7 @@ int main(int ac, char **av) s->state = aa; // string string } else - if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -22451,7 +22455,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -22467,7 +22471,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "ForceUnlink")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ForceUnlink")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ForceUnlink argument missing\n"); @@ -22483,7 +22487,7 @@ int main(int ac, char **av) BAD_RET("ForceUnlink require true/false\n"); } } else - if ((aret = strcmp(next_a, "VolumeId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VolumeId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VolumeId argument missing\n"); @@ -22573,7 +22577,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -22589,7 +22593,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetId argument missing\n"); @@ -22600,7 +22604,7 @@ int main(int ac, char **av) s->net_id = aa; // string string } else - if ((aret = strcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VirtualGatewayId argument missing\n"); @@ -22690,7 +22694,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -22706,7 +22710,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "LinkRouteTableId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LinkRouteTableId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LinkRouteTableId argument missing\n"); @@ -22796,7 +22800,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -22812,7 +22816,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "LinkPublicIpId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LinkPublicIpId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LinkPublicIpId argument missing\n"); @@ -22823,7 +22827,7 @@ int main(int ac, char **av) s->link_public_ip_id = aa; // string string } else - if ((aret = strcmp(next_a, "PublicIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PublicIp")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PublicIp argument missing\n"); @@ -22913,7 +22917,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -22929,7 +22933,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NicId argument missing\n"); @@ -22940,7 +22944,7 @@ int main(int ac, char **av) s->nic_id = aa; // string string } else - if ((aret = strcmp(next_a, "PrivateIps")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PrivateIps")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PrivateIps argument missing\n"); @@ -22970,7 +22974,7 @@ int main(int ac, char **av) TRY(!aa, "PrivateIps argument missing\n"); s->private_ips_str = aa; } - } else if (!(aret = strcmp(str, "PrivateIps[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "PrivateIps[]")) || aret == '=') { TRY(!aa, "PrivateIps[] argument missing\n"); SET_NEXT(s->private_ips, (aa), pa); } else @@ -23053,7 +23057,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -23069,7 +23073,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyOrn argument missing\n"); @@ -23080,7 +23084,7 @@ int main(int ac, char **av) s->policy_orn = aa; // string string } else - if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -23170,7 +23174,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -23186,7 +23190,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "LinkNicId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LinkNicId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LinkNicId argument missing\n"); @@ -23276,7 +23280,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -23292,7 +23296,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyOrn argument missing\n"); @@ -23303,7 +23307,7 @@ int main(int ac, char **av) s->policy_orn = aa; // string string } else - if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -23393,7 +23397,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "BackendIps")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "BackendIps")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BackendIps argument missing\n"); @@ -23423,11 +23427,11 @@ int main(int ac, char **av) TRY(!aa, "BackendIps argument missing\n"); s->backend_ips_str = aa; } - } else if (!(aret = strcmp(str, "BackendIps[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "BackendIps[]")) || aret == '=') { TRY(!aa, "BackendIps[] argument missing\n"); SET_NEXT(s->backend_ips, (aa), pa); } else - if ((aret = strcmp(next_a, "BackendVmIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "BackendVmIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BackendVmIds argument missing\n"); @@ -23457,11 +23461,11 @@ int main(int ac, char **av) TRY(!aa, "BackendVmIds argument missing\n"); s->backend_vm_ids_str = aa; } - } else if (!(aret = strcmp(str, "BackendVmIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "BackendVmIds[]")) || aret == '=') { TRY(!aa, "BackendVmIds[] argument missing\n"); SET_NEXT(s->backend_vm_ids, (aa), pa); } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -23477,7 +23481,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -23567,7 +23571,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -23583,7 +23587,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "InternetServiceId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "InternetServiceId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "InternetServiceId argument missing\n"); @@ -23594,7 +23598,7 @@ int main(int ac, char **av) s->internet_service_id = aa; // string string } else - if ((aret = strcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetId argument missing\n"); @@ -23684,7 +23688,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -23700,7 +23704,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "FlexibleGpuId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "FlexibleGpuId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FlexibleGpuId argument missing\n"); @@ -23790,7 +23794,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -23806,7 +23810,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "ForceStop")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ForceStop")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ForceStop argument missing\n"); @@ -23822,7 +23826,7 @@ int main(int ac, char **av) BAD_RET("ForceStop require true/false\n"); } } else - if ((aret = strcmp(next_a, "VmIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmIds argument missing\n"); @@ -23852,7 +23856,7 @@ int main(int ac, char **av) TRY(!aa, "VmIds argument missing\n"); s->vm_ids_str = aa; } - } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); } else @@ -23935,7 +23939,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -23951,7 +23955,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "VmIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmIds argument missing\n"); @@ -23981,7 +23985,7 @@ int main(int ac, char **av) TRY(!aa, "VmIds argument missing\n"); s->vm_ids_str = aa; } - } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); } else @@ -24064,7 +24068,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyOrn argument missing\n"); @@ -24075,7 +24079,7 @@ int main(int ac, char **av) s->policy_orn = aa; // string string } else - if ((aret = strcmp(next_a, "VersionId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VersionId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VersionId argument missing\n"); @@ -24165,7 +24169,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -24181,7 +24185,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "VmAddition")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmAddition")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmAddition argument missing\n"); @@ -24192,7 +24196,7 @@ int main(int ac, char **av) s->is_set_vm_addition = 1; s->vm_addition = atoi(aa); } else - if ((aret = strcmp(next_a, "VmGroupId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmGroupId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmGroupId argument missing\n"); @@ -24282,7 +24286,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -24298,7 +24302,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "VmGroupId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmGroupId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmGroupId argument missing\n"); @@ -24309,7 +24313,7 @@ int main(int ac, char **av) s->vm_group_id = aa; // string string } else - if ((aret = strcmp(next_a, "VmSubtraction")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmSubtraction")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmSubtraction argument missing\n"); @@ -24399,7 +24403,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -24415,7 +24419,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -24426,7 +24430,7 @@ int main(int ac, char **av) s->user_group_name = aa; // string string } else - if ((aret = strcmp(next_a, "UserGroupPath")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserGroupPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupPath argument missing\n"); @@ -24437,7 +24441,7 @@ int main(int ac, char **av) s->user_group_path = aa; // string string } else - if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -24448,7 +24452,7 @@ int main(int ac, char **av) s->user_name = aa; // string string } else - if ((aret = strcmp(next_a, "UserPath")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserPath argument missing\n"); @@ -24538,7 +24542,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -24554,7 +24558,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "NetPeeringId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NetPeeringId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetPeeringId argument missing\n"); @@ -24644,7 +24648,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "BackendVmIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "BackendVmIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BackendVmIds argument missing\n"); @@ -24674,11 +24678,11 @@ int main(int ac, char **av) TRY(!aa, "BackendVmIds argument missing\n"); s->backend_vm_ids_str = aa; } - } else if (!(aret = strcmp(str, "BackendVmIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "BackendVmIds[]")) || aret == '=') { TRY(!aa, "BackendVmIds[] argument missing\n"); SET_NEXT(s->backend_vm_ids, (aa), pa); } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -24694,7 +24698,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -24784,7 +24788,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -24800,7 +24804,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "VmIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmIds argument missing\n"); @@ -24830,7 +24834,7 @@ int main(int ac, char **av) TRY(!aa, "VmIds argument missing\n"); s->vm_ids_str = aa; } - } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); } else @@ -24913,7 +24917,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -24929,7 +24933,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -24952,7 +24956,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -24963,7 +24967,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -25053,7 +25057,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -25069,7 +25073,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -25092,7 +25096,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -25103,7 +25107,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -25193,7 +25197,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "AllVms")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "AllVms")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "AllVms argument missing\n"); @@ -25209,7 +25213,7 @@ int main(int ac, char **av) BAD_RET("AllVms require true/false\n"); } } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -25225,7 +25229,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -25248,7 +25252,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -25259,7 +25263,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -25349,7 +25353,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "BackendVmIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "BackendVmIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BackendVmIds argument missing\n"); @@ -25379,11 +25383,11 @@ int main(int ac, char **av) TRY(!aa, "BackendVmIds argument missing\n"); s->backend_vm_ids_str = aa; } - } else if (!(aret = strcmp(str, "BackendVmIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "BackendVmIds[]")) || aret == '=') { TRY(!aa, "BackendVmIds[] argument missing\n"); SET_NEXT(s->backend_vm_ids, (aa), pa); } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -25399,7 +25403,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -25489,7 +25493,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -25505,7 +25509,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -25528,7 +25532,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -25539,7 +25543,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -25629,7 +25633,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -25645,7 +25649,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -25668,7 +25672,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -25679,7 +25683,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -25769,7 +25773,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -25785,7 +25789,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -25887,7 +25891,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -25903,7 +25907,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -26005,7 +26009,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -26021,7 +26025,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -26044,7 +26048,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -26055,7 +26059,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -26145,7 +26149,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -26240,7 +26244,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -26256,7 +26260,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -26267,7 +26271,7 @@ int main(int ac, char **av) s->user_name = aa; // string string } else - if ((aret = strcmp(next_a, "UserPath")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserPath argument missing\n"); @@ -26357,7 +26361,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -26373,7 +26377,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -26396,7 +26400,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "FirstItem")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "FirstItem")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FirstItem argument missing\n"); @@ -26407,7 +26411,7 @@ int main(int ac, char **av) s->is_set_first_item = 1; s->first_item = atoi(aa); } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -26497,7 +26501,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -26513,7 +26517,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "PolicyName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PolicyName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyName argument missing\n"); @@ -26524,7 +26528,7 @@ int main(int ac, char **av) s->policy_name = aa; // string string } else - if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -26535,7 +26539,7 @@ int main(int ac, char **av) s->user_group_name = aa; // string string } else - if ((aret = strcmp(next_a, "UserGroupPath")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserGroupPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupPath argument missing\n"); @@ -26625,7 +26629,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -26641,7 +26645,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "FirstItem")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "FirstItem")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FirstItem argument missing\n"); @@ -26652,7 +26656,7 @@ int main(int ac, char **av) s->is_set_first_item = 1; s->first_item = atoi(aa); } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -26663,7 +26667,7 @@ int main(int ac, char **av) s->is_set_results_per_page = 1; s->results_per_page = atoi(aa); } else - if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -26674,7 +26678,7 @@ int main(int ac, char **av) s->user_group_name = aa; // string string } else - if ((aret = strcmp(next_a, "UserGroupPath")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserGroupPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupPath argument missing\n"); @@ -26764,7 +26768,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -26780,7 +26784,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Path")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Path")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Path argument missing\n"); @@ -26791,7 +26795,7 @@ int main(int ac, char **av) s->path = aa; // string string } else - if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -26881,7 +26885,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -26897,7 +26901,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -26920,7 +26924,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -26931,7 +26935,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -27021,7 +27025,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -27037,7 +27041,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -27060,7 +27064,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -27071,7 +27075,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -27161,7 +27165,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -27177,7 +27181,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -27200,7 +27204,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -27211,7 +27215,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -27301,7 +27305,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -27317,7 +27321,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -27340,7 +27344,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -27351,7 +27355,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -27441,7 +27445,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -27457,7 +27461,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -27480,7 +27484,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -27491,7 +27495,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -27581,7 +27585,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -27597,7 +27601,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -27699,7 +27703,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -27715,7 +27719,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -27738,7 +27742,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -27749,7 +27753,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -27839,7 +27843,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "AccessKeyId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "AccessKeyId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "AccessKeyId argument missing\n"); @@ -27850,7 +27854,7 @@ int main(int ac, char **av) s->access_key_id = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -27945,7 +27949,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -27961,7 +27965,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -27984,7 +27988,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -27995,7 +27999,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -28085,7 +28089,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -28180,7 +28184,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -28196,7 +28200,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -28219,7 +28223,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -28230,7 +28234,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -28320,7 +28324,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -28336,7 +28340,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -28359,7 +28363,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -28370,7 +28374,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -28460,7 +28464,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -28476,7 +28480,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -28487,7 +28491,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -28577,7 +28581,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -28672,7 +28676,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -28688,7 +28692,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -28711,7 +28715,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -28722,7 +28726,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -28812,7 +28816,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "FirstItem")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "FirstItem")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FirstItem argument missing\n"); @@ -28823,7 +28827,7 @@ int main(int ac, char **av) s->is_set_first_item = 1; s->first_item = atoi(aa); } else - if ((aret = strcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyOrn argument missing\n"); @@ -28834,7 +28838,7 @@ int main(int ac, char **av) s->policy_orn = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -28924,7 +28928,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyOrn argument missing\n"); @@ -28935,7 +28939,7 @@ int main(int ac, char **av) s->policy_orn = aa; // string string } else - if ((aret = strcmp(next_a, "VersionId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VersionId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VersionId argument missing\n"); @@ -29025,7 +29029,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyOrn argument missing\n"); @@ -29115,7 +29119,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -29131,7 +29135,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -29154,7 +29158,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "FirstItem")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "FirstItem")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FirstItem argument missing\n"); @@ -29165,7 +29169,7 @@ int main(int ac, char **av) s->is_set_first_item = 1; s->first_item = atoi(aa); } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -29255,7 +29259,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -29271,7 +29275,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -29373,7 +29377,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -29389,7 +29393,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -29412,7 +29416,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -29423,7 +29427,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -29513,7 +29517,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -29529,7 +29533,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -29552,7 +29556,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -29563,7 +29567,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -29653,7 +29657,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -29669,7 +29673,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -29692,7 +29696,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -29703,7 +29707,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -29793,7 +29797,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -29809,7 +29813,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -29832,7 +29836,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -29843,7 +29847,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -29933,7 +29937,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -29949,7 +29953,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -29972,7 +29976,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -29983,7 +29987,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -30073,7 +30077,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -30089,7 +30093,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -30112,7 +30116,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "FirstItem")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "FirstItem")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FirstItem argument missing\n"); @@ -30123,7 +30127,7 @@ int main(int ac, char **av) s->is_set_first_item = 1; s->first_item = atoi(aa); } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -30134,7 +30138,7 @@ int main(int ac, char **av) s->is_set_results_per_page = 1; s->results_per_page = atoi(aa); } else - if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -30224,7 +30228,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -30240,7 +30244,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -30251,7 +30255,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -30341,7 +30345,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -30357,7 +30361,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -30459,7 +30463,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -30475,7 +30479,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "LoadBalancerNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LoadBalancerNames")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerNames argument missing\n"); @@ -30505,7 +30509,7 @@ int main(int ac, char **av) TRY(!aa, "LoadBalancerNames argument missing\n"); s->load_balancer_names_str = aa; } - } else if (!(aret = strcmp(str, "LoadBalancerNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LoadBalancerNames[]")) || aret == '=') { TRY(!aa, "LoadBalancerNames[] argument missing\n"); SET_NEXT(s->load_balancer_names, (aa), pa); } else @@ -30588,7 +30592,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -30604,7 +30608,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -30706,7 +30710,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -30722,7 +30726,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -30745,7 +30749,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "FirstItem")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "FirstItem")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FirstItem argument missing\n"); @@ -30756,7 +30760,7 @@ int main(int ac, char **av) s->is_set_first_item = 1; s->first_item = atoi(aa); } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -30767,7 +30771,7 @@ int main(int ac, char **av) s->is_set_results_per_page = 1; s->results_per_page = atoi(aa); } else - if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -30857,7 +30861,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -30873,7 +30877,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -30896,7 +30900,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -30907,7 +30911,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -30997,7 +31001,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -31013,7 +31017,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -31036,7 +31040,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -31047,7 +31051,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -31137,7 +31141,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -31153,7 +31157,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -31176,7 +31180,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -31187,7 +31191,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -31277,7 +31281,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -31293,7 +31297,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -31316,7 +31320,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -31327,7 +31331,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -31417,7 +31421,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -31433,7 +31437,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -31535,7 +31539,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -31630,7 +31634,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -31646,7 +31650,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -31669,7 +31673,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -31680,7 +31684,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -31770,7 +31774,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -31786,7 +31790,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -31809,7 +31813,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -31820,7 +31824,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -31910,7 +31914,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -31926,7 +31930,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -31949,7 +31953,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -31960,7 +31964,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -32050,7 +32054,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -32066,7 +32070,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -32089,7 +32093,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -32100,7 +32104,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -32190,7 +32194,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -32206,7 +32210,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "FromDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "FromDate")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FromDate argument missing\n"); @@ -32217,7 +32221,7 @@ int main(int ac, char **av) s->from_date = aa; // string string } else - if ((aret = strcmp(next_a, "Overall")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Overall")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Overall argument missing\n"); @@ -32233,7 +32237,7 @@ int main(int ac, char **av) BAD_RET("Overall require true/false\n"); } } else - if ((aret = strcmp(next_a, "ShowPrice")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ShowPrice")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ShowPrice argument missing\n"); @@ -32249,7 +32253,7 @@ int main(int ac, char **av) BAD_RET("ShowPrice require true/false\n"); } } else - if ((aret = strcmp(next_a, "ToDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ToDate")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ToDate argument missing\n"); @@ -32339,7 +32343,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -32355,7 +32359,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmId argument missing\n"); @@ -32445,7 +32449,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -32461,7 +32465,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -32484,7 +32488,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -32495,7 +32499,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -32585,7 +32589,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -32601,7 +32605,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -32703,7 +32707,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -32798,7 +32802,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -32814,7 +32818,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -32916,7 +32920,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -32932,7 +32936,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -32955,7 +32959,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NextPageToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NextPageToken argument missing\n"); @@ -32966,7 +32970,7 @@ int main(int ac, char **av) s->next_page_token = aa; // string string } else - if ((aret = strcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResultsPerPage")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResultsPerPage argument missing\n"); @@ -32977,7 +32981,7 @@ int main(int ac, char **av) s->is_set_results_per_page = 1; s->results_per_page = atoi(aa); } else - if ((aret = strcmp(next_a, "With")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "With")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "With argument missing\n"); @@ -33079,7 +33083,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -33095,7 +33099,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -33197,7 +33201,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -33292,7 +33296,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -33308,7 +33312,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmId argument missing\n"); @@ -33398,7 +33402,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -33493,7 +33497,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -33509,7 +33513,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Filters")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Filters argument missing\n"); @@ -33532,7 +33536,7 @@ int main(int ac, char **av) s->filters_str = aa; } } else - if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -33622,7 +33626,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -33638,7 +33642,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "PolicyDocument")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PolicyDocument")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyDocument argument missing\n"); @@ -33649,7 +33653,7 @@ int main(int ac, char **av) s->policy_document = aa; // string string } else - if ((aret = strcmp(next_a, "PolicyName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PolicyName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyName argument missing\n"); @@ -33660,7 +33664,7 @@ int main(int ac, char **av) s->policy_name = aa; // string string } else - if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -33671,7 +33675,7 @@ int main(int ac, char **av) s->user_group_name = aa; // string string } else - if ((aret = strcmp(next_a, "UserGroupPath")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserGroupPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupPath argument missing\n"); @@ -33761,7 +33765,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DeviceName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DeviceName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DeviceName argument missing\n"); @@ -33772,7 +33776,7 @@ int main(int ac, char **av) s->device_name = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -33788,7 +33792,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmId argument missing\n"); @@ -33799,7 +33803,7 @@ int main(int ac, char **av) s->vm_id = aa; // string string } else - if ((aret = strcmp(next_a, "VolumeId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VolumeId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VolumeId argument missing\n"); @@ -33889,7 +33893,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -33905,7 +33909,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetId argument missing\n"); @@ -33916,7 +33920,7 @@ int main(int ac, char **av) s->net_id = aa; // string string } else - if ((aret = strcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VirtualGatewayId argument missing\n"); @@ -34006,7 +34010,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -34022,7 +34026,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "RouteTableId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "RouteTableId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "RouteTableId argument missing\n"); @@ -34033,7 +34037,7 @@ int main(int ac, char **av) s->route_table_id = aa; // string string } else - if ((aret = strcmp(next_a, "SubnetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SubnetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubnetId argument missing\n"); @@ -34123,7 +34127,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "AllowRelink")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "AllowRelink")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "AllowRelink argument missing\n"); @@ -34139,7 +34143,7 @@ int main(int ac, char **av) BAD_RET("AllowRelink require true/false\n"); } } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -34155,7 +34159,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NicId argument missing\n"); @@ -34166,7 +34170,7 @@ int main(int ac, char **av) s->nic_id = aa; // string string } else - if ((aret = strcmp(next_a, "PrivateIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PrivateIp")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PrivateIp argument missing\n"); @@ -34177,7 +34181,7 @@ int main(int ac, char **av) s->private_ip = aa; // string string } else - if ((aret = strcmp(next_a, "PublicIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PublicIp")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PublicIp argument missing\n"); @@ -34188,7 +34192,7 @@ int main(int ac, char **av) s->public_ip = aa; // string string } else - if ((aret = strcmp(next_a, "PublicIpId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PublicIpId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PublicIpId argument missing\n"); @@ -34199,7 +34203,7 @@ int main(int ac, char **av) s->public_ip_id = aa; // string string } else - if ((aret = strcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmId argument missing\n"); @@ -34289,7 +34293,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "AllowRelink")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "AllowRelink")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "AllowRelink argument missing\n"); @@ -34305,7 +34309,7 @@ int main(int ac, char **av) BAD_RET("AllowRelink require true/false\n"); } } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -34321,7 +34325,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NicId argument missing\n"); @@ -34332,7 +34336,7 @@ int main(int ac, char **av) s->nic_id = aa; // string string } else - if ((aret = strcmp(next_a, "PrivateIps")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PrivateIps")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PrivateIps argument missing\n"); @@ -34362,11 +34366,11 @@ int main(int ac, char **av) TRY(!aa, "PrivateIps argument missing\n"); s->private_ips_str = aa; } - } else if (!(aret = strcmp(str, "PrivateIps[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "PrivateIps[]")) || aret == '=') { TRY(!aa, "PrivateIps[] argument missing\n"); SET_NEXT(s->private_ips, (aa), pa); } else - if ((aret = strcmp(next_a, "SecondaryPrivateIpCount")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SecondaryPrivateIpCount")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecondaryPrivateIpCount argument missing\n"); @@ -34456,7 +34460,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -34472,7 +34476,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyOrn argument missing\n"); @@ -34483,7 +34487,7 @@ int main(int ac, char **av) s->policy_orn = aa; // string string } else - if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -34573,7 +34577,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DeviceNumber")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DeviceNumber")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DeviceNumber argument missing\n"); @@ -34584,7 +34588,7 @@ int main(int ac, char **av) s->is_set_device_number = 1; s->device_number = atoi(aa); } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -34600,7 +34604,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NicId argument missing\n"); @@ -34611,7 +34615,7 @@ int main(int ac, char **av) s->nic_id = aa; // string string } else - if ((aret = strcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmId argument missing\n"); @@ -34701,7 +34705,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -34717,7 +34721,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyOrn argument missing\n"); @@ -34728,7 +34732,7 @@ int main(int ac, char **av) s->policy_orn = aa; // string string } else - if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -34818,7 +34822,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "BackendIps")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "BackendIps")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BackendIps argument missing\n"); @@ -34848,11 +34852,11 @@ int main(int ac, char **av) TRY(!aa, "BackendIps argument missing\n"); s->backend_ips_str = aa; } - } else if (!(aret = strcmp(str, "BackendIps[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "BackendIps[]")) || aret == '=') { TRY(!aa, "BackendIps[] argument missing\n"); SET_NEXT(s->backend_ips, (aa), pa); } else - if ((aret = strcmp(next_a, "BackendVmIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "BackendVmIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BackendVmIds argument missing\n"); @@ -34882,11 +34886,11 @@ int main(int ac, char **av) TRY(!aa, "BackendVmIds argument missing\n"); s->backend_vm_ids_str = aa; } - } else if (!(aret = strcmp(str, "BackendVmIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "BackendVmIds[]")) || aret == '=') { TRY(!aa, "BackendVmIds[] argument missing\n"); SET_NEXT(s->backend_vm_ids, (aa), pa); } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -34902,7 +34906,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -34992,7 +34996,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -35008,7 +35012,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "InternetServiceId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "InternetServiceId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "InternetServiceId argument missing\n"); @@ -35019,7 +35023,7 @@ int main(int ac, char **av) s->internet_service_id = aa; // string string } else - if ((aret = strcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetId argument missing\n"); @@ -35109,7 +35113,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -35125,7 +35129,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "FlexibleGpuId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "FlexibleGpuId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FlexibleGpuId argument missing\n"); @@ -35136,7 +35140,7 @@ int main(int ac, char **av) s->flexible_gpu_id = aa; // string string } else - if ((aret = strcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmId argument missing\n"); @@ -35226,7 +35230,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "BackendVmIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "BackendVmIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BackendVmIds argument missing\n"); @@ -35256,11 +35260,11 @@ int main(int ac, char **av) TRY(!aa, "BackendVmIds argument missing\n"); s->backend_vm_ids_str = aa; } - } else if (!(aret = strcmp(str, "BackendVmIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "BackendVmIds[]")) || aret == '=') { TRY(!aa, "BackendVmIds[] argument missing\n"); SET_NEXT(s->backend_vm_ids, (aa), pa); } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -35276,7 +35280,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -35366,7 +35370,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DestinationIpRange")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DestinationIpRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DestinationIpRange argument missing\n"); @@ -35377,7 +35381,7 @@ int main(int ac, char **av) s->destination_ip_range = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -35393,7 +35397,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "VpnConnectionId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VpnConnectionId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VpnConnectionId argument missing\n"); @@ -35483,7 +35487,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -35499,7 +35503,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "VpnConnectionId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VpnConnectionId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VpnConnectionId argument missing\n"); @@ -35589,7 +35593,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -35605,7 +35609,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "VolumeId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VolumeId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VolumeId argument missing\n"); @@ -35695,7 +35699,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -35711,7 +35715,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "VmIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmIds argument missing\n"); @@ -35741,7 +35745,7 @@ int main(int ac, char **av) TRY(!aa, "VmIds argument missing\n"); s->vm_ids_str = aa; } - } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); } else @@ -35824,7 +35828,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -35840,7 +35844,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "VmTemplateId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmTemplateId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmTemplateId argument missing\n"); @@ -35930,7 +35934,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -35946,7 +35950,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "VmGroupId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmGroupId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmGroupId argument missing\n"); @@ -36036,7 +36040,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -36052,7 +36056,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VirtualGatewayId argument missing\n"); @@ -36142,7 +36146,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -36158,7 +36162,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "PolicyName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PolicyName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyName argument missing\n"); @@ -36169,7 +36173,7 @@ int main(int ac, char **av) s->policy_name = aa; // string string } else - if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -36180,7 +36184,7 @@ int main(int ac, char **av) s->user_group_name = aa; // string string } else - if ((aret = strcmp(next_a, "UserGroupPath")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserGroupPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupPath argument missing\n"); @@ -36270,7 +36274,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -36286,7 +36290,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Force")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Force")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Force argument missing\n"); @@ -36302,7 +36306,7 @@ int main(int ac, char **av) BAD_RET("Force require true/false\n"); } } else - if ((aret = strcmp(next_a, "Path")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Path")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Path argument missing\n"); @@ -36313,7 +36317,7 @@ int main(int ac, char **av) s->path = aa; // string string } else - if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -36403,7 +36407,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -36419,7 +36423,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -36509,7 +36513,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -36525,7 +36529,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "ResourceIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResourceIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResourceIds argument missing\n"); @@ -36555,11 +36559,11 @@ int main(int ac, char **av) TRY(!aa, "ResourceIds argument missing\n"); s->resource_ids_str = aa; } - } else if (!(aret = strcmp(str, "ResourceIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ResourceIds[]")) || aret == '=') { TRY(!aa, "ResourceIds[] argument missing\n"); SET_NEXT(s->resource_ids, (aa), pa); } else - if ((aret = strcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Tags argument missing\n"); @@ -36669,7 +36673,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -36685,7 +36689,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "SubnetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SubnetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubnetId argument missing\n"); @@ -36775,7 +36779,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -36791,7 +36795,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "SnapshotId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SnapshotId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SnapshotId argument missing\n"); @@ -36881,7 +36885,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -36897,7 +36901,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Name")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Name")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Name argument missing\n"); @@ -36987,7 +36991,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -37003,7 +37007,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Flow")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Flow")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Flow argument missing\n"); @@ -37014,7 +37018,7 @@ int main(int ac, char **av) s->flow = aa; // string string } else - if ((aret = strcmp(next_a, "FromPortRange")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "FromPortRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FromPortRange argument missing\n"); @@ -37025,7 +37029,7 @@ int main(int ac, char **av) s->is_set_from_port_range = 1; s->from_port_range = atoi(aa); } else - if ((aret = strcmp(next_a, "IpProtocol")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "IpProtocol")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "IpProtocol argument missing\n"); @@ -37036,7 +37040,7 @@ int main(int ac, char **av) s->ip_protocol = aa; // string string } else - if ((aret = strcmp(next_a, "IpRange")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "IpRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "IpRange argument missing\n"); @@ -37047,7 +37051,7 @@ int main(int ac, char **av) s->ip_range = aa; // string string } else - if ((aret = strcmp(next_a, "Rules")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Rules")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Rules argument missing\n"); @@ -37078,7 +37082,7 @@ int main(int ac, char **av) s->rules_str = aa; // array ref SecurityGroupRule ref } } else - if ((aret = strcmp(next_a, "SecurityGroupAccountIdToUnlink")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SecurityGroupAccountIdToUnlink")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupAccountIdToUnlink argument missing\n"); @@ -37089,7 +37093,7 @@ int main(int ac, char **av) s->security_group_account_id_to_unlink = aa; // string string } else - if ((aret = strcmp(next_a, "SecurityGroupId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SecurityGroupId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupId argument missing\n"); @@ -37100,7 +37104,7 @@ int main(int ac, char **av) s->security_group_id = aa; // string string } else - if ((aret = strcmp(next_a, "SecurityGroupNameToUnlink")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SecurityGroupNameToUnlink")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupNameToUnlink argument missing\n"); @@ -37111,7 +37115,7 @@ int main(int ac, char **av) s->security_group_name_to_unlink = aa; // string string } else - if ((aret = strcmp(next_a, "ToPortRange")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ToPortRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ToPortRange argument missing\n"); @@ -37201,7 +37205,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -37217,7 +37221,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "SecurityGroupId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SecurityGroupId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupId argument missing\n"); @@ -37228,7 +37232,7 @@ int main(int ac, char **av) s->security_group_id = aa; // string string } else - if ((aret = strcmp(next_a, "SecurityGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SecurityGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupName argument missing\n"); @@ -37318,7 +37322,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -37334,7 +37338,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "RouteTableId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "RouteTableId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "RouteTableId argument missing\n"); @@ -37424,7 +37428,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DestinationIpRange")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DestinationIpRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DestinationIpRange argument missing\n"); @@ -37435,7 +37439,7 @@ int main(int ac, char **av) s->destination_ip_range = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -37451,7 +37455,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "RouteTableId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "RouteTableId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "RouteTableId argument missing\n"); @@ -37541,7 +37545,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -37557,7 +37561,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "PublicIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PublicIp")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PublicIp argument missing\n"); @@ -37568,7 +37572,7 @@ int main(int ac, char **av) s->public_ip = aa; // string string } else - if ((aret = strcmp(next_a, "PublicIpId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PublicIpId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PublicIpId argument missing\n"); @@ -37658,7 +37662,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyOrn argument missing\n"); @@ -37669,7 +37673,7 @@ int main(int ac, char **av) s->policy_orn = aa; // string string } else - if ((aret = strcmp(next_a, "VersionId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VersionId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VersionId argument missing\n"); @@ -37759,7 +37763,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -37775,7 +37779,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyOrn argument missing\n"); @@ -37865,7 +37869,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -37881,7 +37885,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NicId argument missing\n"); @@ -37971,7 +37975,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -37987,7 +37991,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "NetPeeringId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NetPeeringId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetPeeringId argument missing\n"); @@ -38077,7 +38081,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -38093,7 +38097,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "NetAccessPointId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NetAccessPointId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetAccessPointId argument missing\n"); @@ -38183,7 +38187,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -38199,7 +38203,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetId argument missing\n"); @@ -38289,7 +38293,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -38305,7 +38309,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "NatServiceId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NatServiceId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NatServiceId argument missing\n"); @@ -38395,7 +38399,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -38411,7 +38415,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "LoadBalancerNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LoadBalancerNames")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerNames argument missing\n"); @@ -38441,11 +38445,11 @@ int main(int ac, char **av) TRY(!aa, "LoadBalancerNames argument missing\n"); s->load_balancer_names_str = aa; } - } else if (!(aret = strcmp(str, "LoadBalancerNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LoadBalancerNames[]")) || aret == '=') { TRY(!aa, "LoadBalancerNames[] argument missing\n"); SET_NEXT(s->load_balancer_names, (aa), pa); } else - if ((aret = strcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Tags argument missing\n"); @@ -38555,7 +38559,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -38571,7 +38575,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -38582,7 +38586,7 @@ int main(int ac, char **av) s->load_balancer_name = aa; // string string } else - if ((aret = strcmp(next_a, "PolicyName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PolicyName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyName argument missing\n"); @@ -38672,7 +38676,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -38688,7 +38692,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -38699,7 +38703,7 @@ int main(int ac, char **av) s->load_balancer_name = aa; // string string } else - if ((aret = strcmp(next_a, "LoadBalancerPorts")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LoadBalancerPorts")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerPorts argument missing\n"); @@ -38729,7 +38733,7 @@ int main(int ac, char **av) TRY(!aa, "LoadBalancerPorts argument missing\n"); s->load_balancer_ports_str = aa; } - } else if (!(aret = strcmp(str, "LoadBalancerPorts[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LoadBalancerPorts[]")) || aret == '=') { TRY(!aa, "LoadBalancerPorts[] argument missing\n"); SET_NEXT(s->load_balancer_ports, atoi(aa), pa); } else @@ -38812,7 +38816,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -38828,7 +38832,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -38918,7 +38922,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -38934,7 +38938,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "ListenerRuleName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ListenerRuleName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ListenerRuleName argument missing\n"); @@ -39024,7 +39028,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -39040,7 +39044,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "KeypairName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "KeypairName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "KeypairName argument missing\n"); @@ -39130,7 +39134,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -39146,7 +39150,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "InternetServiceId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "InternetServiceId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "InternetServiceId argument missing\n"); @@ -39236,7 +39240,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -39252,7 +39256,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "ImageId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ImageId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ImageId argument missing\n"); @@ -39342,7 +39346,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -39358,7 +39362,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "FlexibleGpuId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "FlexibleGpuId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FlexibleGpuId argument missing\n"); @@ -39448,7 +39452,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -39464,7 +39468,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "ExportTaskId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ExportTaskId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ExportTaskId argument missing\n"); @@ -39554,7 +39558,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DirectLinkInterfaceId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DirectLinkInterfaceId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DirectLinkInterfaceId argument missing\n"); @@ -39565,7 +39569,7 @@ int main(int ac, char **av) s->direct_link_interface_id = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -39660,7 +39664,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DirectLinkId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DirectLinkId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DirectLinkId argument missing\n"); @@ -39671,7 +39675,7 @@ int main(int ac, char **av) s->direct_link_id = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -39766,7 +39770,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DhcpOptionsSetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DhcpOptionsSetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DhcpOptionsSetId argument missing\n"); @@ -39777,7 +39781,7 @@ int main(int ac, char **av) s->dhcp_options_set_id = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -39872,7 +39876,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DedicatedGroupId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DedicatedGroupId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DedicatedGroupId argument missing\n"); @@ -39883,7 +39887,7 @@ int main(int ac, char **av) s->dedicated_group_id = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -39899,7 +39903,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Force")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Force")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Force argument missing\n"); @@ -39994,7 +39998,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "ClientGatewayId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ClientGatewayId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ClientGatewayId argument missing\n"); @@ -40005,7 +40009,7 @@ int main(int ac, char **av) s->client_gateway_id = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -40100,7 +40104,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "CaId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "CaId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CaId argument missing\n"); @@ -40111,7 +40115,7 @@ int main(int ac, char **av) s->ca_id = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -40206,7 +40210,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "ApiAccessRuleId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ApiAccessRuleId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ApiAccessRuleId argument missing\n"); @@ -40217,7 +40221,7 @@ int main(int ac, char **av) s->api_access_rule_id = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -40312,7 +40316,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "AccessKeyId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "AccessKeyId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "AccessKeyId argument missing\n"); @@ -40323,7 +40327,7 @@ int main(int ac, char **av) s->access_key_id = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -40339,7 +40343,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -40429,7 +40433,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DestinationIpRange")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DestinationIpRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DestinationIpRange argument missing\n"); @@ -40440,7 +40444,7 @@ int main(int ac, char **av) s->destination_ip_range = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -40456,7 +40460,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "VpnConnectionId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VpnConnectionId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VpnConnectionId argument missing\n"); @@ -40546,7 +40550,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "ClientGatewayId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ClientGatewayId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ClientGatewayId argument missing\n"); @@ -40557,7 +40561,7 @@ int main(int ac, char **av) s->client_gateway_id = aa; // string string } else - if ((aret = strcmp(next_a, "ConnectionType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ConnectionType")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ConnectionType argument missing\n"); @@ -40568,7 +40572,7 @@ int main(int ac, char **av) s->connection_type = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -40584,7 +40588,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "StaticRoutesOnly")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "StaticRoutesOnly")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "StaticRoutesOnly argument missing\n"); @@ -40600,7 +40604,7 @@ int main(int ac, char **av) BAD_RET("StaticRoutesOnly require true/false\n"); } } else - if ((aret = strcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VirtualGatewayId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VirtualGatewayId argument missing\n"); @@ -40690,7 +40694,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -40706,7 +40710,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Iops")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Iops")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Iops argument missing\n"); @@ -40717,7 +40721,7 @@ int main(int ac, char **av) s->is_set_iops = 1; s->iops = atoi(aa); } else - if ((aret = strcmp(next_a, "Size")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Size")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Size argument missing\n"); @@ -40728,7 +40732,7 @@ int main(int ac, char **av) s->is_set_size = 1; s->size = atoi(aa); } else - if ((aret = strcmp(next_a, "SnapshotId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SnapshotId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SnapshotId argument missing\n"); @@ -40739,7 +40743,7 @@ int main(int ac, char **av) s->snapshot_id = aa; // string string } else - if ((aret = strcmp(next_a, "SubregionName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SubregionName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubregionName argument missing\n"); @@ -40750,7 +40754,7 @@ int main(int ac, char **av) s->subregion_name = aa; // string string } else - if ((aret = strcmp(next_a, "VolumeType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VolumeType")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VolumeType argument missing\n"); @@ -40840,7 +40844,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "BlockDeviceMappings")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "BlockDeviceMappings")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BlockDeviceMappings argument missing\n"); @@ -40871,7 +40875,7 @@ int main(int ac, char **av) s->block_device_mappings_str = aa; // array ref BlockDeviceMappingVmCreation ref } } else - if ((aret = strcmp(next_a, "BootOnCreation")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "BootOnCreation")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BootOnCreation argument missing\n"); @@ -40887,7 +40891,7 @@ int main(int ac, char **av) BAD_RET("BootOnCreation require true/false\n"); } } else - if ((aret = strcmp(next_a, "BsuOptimized")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "BsuOptimized")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BsuOptimized argument missing\n"); @@ -40903,7 +40907,7 @@ int main(int ac, char **av) BAD_RET("BsuOptimized require true/false\n"); } } else - if ((aret = strcmp(next_a, "ClientToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ClientToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ClientToken argument missing\n"); @@ -40914,7 +40918,7 @@ int main(int ac, char **av) s->client_token = aa; // string string } else - if ((aret = strcmp(next_a, "DeletionProtection")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DeletionProtection")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DeletionProtection argument missing\n"); @@ -40930,7 +40934,7 @@ int main(int ac, char **av) BAD_RET("DeletionProtection require true/false\n"); } } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -40946,7 +40950,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "ImageId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ImageId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ImageId argument missing\n"); @@ -40957,7 +40961,7 @@ int main(int ac, char **av) s->image_id = aa; // string string } else - if ((aret = strcmp(next_a, "KeypairName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "KeypairName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "KeypairName argument missing\n"); @@ -40968,7 +40972,7 @@ int main(int ac, char **av) s->keypair_name = aa; // string string } else - if ((aret = strcmp(next_a, "MaxVmsCount")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "MaxVmsCount")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "MaxVmsCount argument missing\n"); @@ -40979,7 +40983,7 @@ int main(int ac, char **av) s->is_set_max_vms_count = 1; s->max_vms_count = atoi(aa); } else - if ((aret = strcmp(next_a, "MinVmsCount")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "MinVmsCount")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "MinVmsCount argument missing\n"); @@ -40990,7 +40994,7 @@ int main(int ac, char **av) s->is_set_min_vms_count = 1; s->min_vms_count = atoi(aa); } else - if ((aret = strcmp(next_a, "NestedVirtualization")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NestedVirtualization")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NestedVirtualization argument missing\n"); @@ -41006,7 +41010,7 @@ int main(int ac, char **av) BAD_RET("NestedVirtualization require true/false\n"); } } else - if ((aret = strcmp(next_a, "Nics")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Nics")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Nics argument missing\n"); @@ -41037,7 +41041,7 @@ int main(int ac, char **av) s->nics_str = aa; // array ref NicForVmCreation ref } } else - if ((aret = strcmp(next_a, "Performance")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Performance")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Performance argument missing\n"); @@ -41048,7 +41052,7 @@ int main(int ac, char **av) s->performance = aa; // string string } else - if ((aret = strcmp(next_a, "Placement")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Placement")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Placement argument missing\n"); @@ -41071,7 +41075,7 @@ int main(int ac, char **av) s->placement_str = aa; } } else - if ((aret = strcmp(next_a, "PrivateIps")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PrivateIps")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PrivateIps argument missing\n"); @@ -41101,11 +41105,11 @@ int main(int ac, char **av) TRY(!aa, "PrivateIps argument missing\n"); s->private_ips_str = aa; } - } else if (!(aret = strcmp(str, "PrivateIps[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "PrivateIps[]")) || aret == '=') { TRY(!aa, "PrivateIps[] argument missing\n"); SET_NEXT(s->private_ips, (aa), pa); } else - if ((aret = strcmp(next_a, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupIds argument missing\n"); @@ -41135,11 +41139,11 @@ int main(int ac, char **av) TRY(!aa, "SecurityGroupIds argument missing\n"); s->security_group_ids_str = aa; } - } else if (!(aret = strcmp(str, "SecurityGroupIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SecurityGroupIds[]")) || aret == '=') { TRY(!aa, "SecurityGroupIds[] argument missing\n"); SET_NEXT(s->security_group_ids, (aa), pa); } else - if ((aret = strcmp(next_a, "SecurityGroups")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SecurityGroups")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroups argument missing\n"); @@ -41169,11 +41173,11 @@ int main(int ac, char **av) TRY(!aa, "SecurityGroups argument missing\n"); s->security_groups_str = aa; } - } else if (!(aret = strcmp(str, "SecurityGroups[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SecurityGroups[]")) || aret == '=') { TRY(!aa, "SecurityGroups[] argument missing\n"); SET_NEXT(s->security_groups, (aa), pa); } else - if ((aret = strcmp(next_a, "SubnetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SubnetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubnetId argument missing\n"); @@ -41184,7 +41188,7 @@ int main(int ac, char **av) s->subnet_id = aa; // string string } else - if ((aret = strcmp(next_a, "UserData")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserData")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserData argument missing\n"); @@ -41195,7 +41199,7 @@ int main(int ac, char **av) s->user_data = aa; // string string } else - if ((aret = strcmp(next_a, "VmInitiatedShutdownBehavior")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmInitiatedShutdownBehavior")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmInitiatedShutdownBehavior argument missing\n"); @@ -41206,7 +41210,7 @@ int main(int ac, char **av) s->vm_initiated_shutdown_behavior = aa; // string string } else - if ((aret = strcmp(next_a, "VmType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmType")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmType argument missing\n"); @@ -41296,7 +41300,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "CpuCores")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "CpuCores")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CpuCores argument missing\n"); @@ -41307,7 +41311,7 @@ int main(int ac, char **av) s->is_set_cpu_cores = 1; s->cpu_cores = atoi(aa); } else - if ((aret = strcmp(next_a, "CpuGeneration")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "CpuGeneration")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CpuGeneration argument missing\n"); @@ -41318,7 +41322,7 @@ int main(int ac, char **av) s->cpu_generation = aa; // string string } else - if ((aret = strcmp(next_a, "CpuPerformance")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "CpuPerformance")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CpuPerformance argument missing\n"); @@ -41329,7 +41333,7 @@ int main(int ac, char **av) s->cpu_performance = aa; // string string } else - if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -41340,7 +41344,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -41356,7 +41360,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "ImageId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ImageId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ImageId argument missing\n"); @@ -41367,7 +41371,7 @@ int main(int ac, char **av) s->image_id = aa; // string string } else - if ((aret = strcmp(next_a, "KeypairName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "KeypairName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "KeypairName argument missing\n"); @@ -41378,7 +41382,7 @@ int main(int ac, char **av) s->keypair_name = aa; // string string } else - if ((aret = strcmp(next_a, "Ram")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Ram")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Ram argument missing\n"); @@ -41389,7 +41393,7 @@ int main(int ac, char **av) s->is_set_ram = 1; s->ram = atoi(aa); } else - if ((aret = strcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Tags argument missing\n"); @@ -41420,7 +41424,7 @@ int main(int ac, char **av) s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = strcmp(next_a, "VmTemplateName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmTemplateName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmTemplateName argument missing\n"); @@ -41510,7 +41514,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -41521,7 +41525,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -41537,7 +41541,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "PositioningStrategy")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PositioningStrategy")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PositioningStrategy argument missing\n"); @@ -41548,7 +41552,7 @@ int main(int ac, char **av) s->positioning_strategy = aa; // string string } else - if ((aret = strcmp(next_a, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupIds argument missing\n"); @@ -41578,11 +41582,11 @@ int main(int ac, char **av) TRY(!aa, "SecurityGroupIds argument missing\n"); s->security_group_ids_str = aa; } - } else if (!(aret = strcmp(str, "SecurityGroupIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SecurityGroupIds[]")) || aret == '=') { TRY(!aa, "SecurityGroupIds[] argument missing\n"); SET_NEXT(s->security_group_ids, (aa), pa); } else - if ((aret = strcmp(next_a, "SubnetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SubnetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubnetId argument missing\n"); @@ -41593,7 +41597,7 @@ int main(int ac, char **av) s->subnet_id = aa; // string string } else - if ((aret = strcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Tags argument missing\n"); @@ -41624,7 +41628,7 @@ int main(int ac, char **av) s->tags_str = aa; // array ref ResourceTag ref } } else - if ((aret = strcmp(next_a, "VmCount")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmCount")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmCount argument missing\n"); @@ -41635,7 +41639,7 @@ int main(int ac, char **av) s->is_set_vm_count = 1; s->vm_count = atoi(aa); } else - if ((aret = strcmp(next_a, "VmGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmGroupName argument missing\n"); @@ -41646,7 +41650,7 @@ int main(int ac, char **av) s->vm_group_name = aa; // string string } else - if ((aret = strcmp(next_a, "VmTemplateId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmTemplateId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmTemplateId argument missing\n"); @@ -41736,7 +41740,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "ConnectionType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ConnectionType")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ConnectionType argument missing\n"); @@ -41747,7 +41751,7 @@ int main(int ac, char **av) s->connection_type = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -41842,7 +41846,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -41858,7 +41862,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Path")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Path")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Path argument missing\n"); @@ -41869,7 +41873,7 @@ int main(int ac, char **av) s->path = aa; // string string } else - if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -41959,7 +41963,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -41975,7 +41979,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Path")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Path")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Path argument missing\n"); @@ -41986,7 +41990,7 @@ int main(int ac, char **av) s->path = aa; // string string } else - if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -42076,7 +42080,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -42092,7 +42096,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "ResourceIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ResourceIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ResourceIds argument missing\n"); @@ -42122,11 +42126,11 @@ int main(int ac, char **av) TRY(!aa, "ResourceIds argument missing\n"); s->resource_ids_str = aa; } - } else if (!(aret = strcmp(str, "ResourceIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ResourceIds[]")) || aret == '=') { TRY(!aa, "ResourceIds[] argument missing\n"); SET_NEXT(s->resource_ids, (aa), pa); } else - if ((aret = strcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Tags argument missing\n"); @@ -42236,7 +42240,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -42252,7 +42256,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "IpRange")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "IpRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "IpRange argument missing\n"); @@ -42263,7 +42267,7 @@ int main(int ac, char **av) s->ip_range = aa; // string string } else - if ((aret = strcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetId argument missing\n"); @@ -42274,7 +42278,7 @@ int main(int ac, char **av) s->net_id = aa; // string string } else - if ((aret = strcmp(next_a, "SubregionName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SubregionName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubregionName argument missing\n"); @@ -42364,7 +42368,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -42380,7 +42384,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "OsuExport")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "OsuExport")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "OsuExport argument missing\n"); @@ -42403,7 +42407,7 @@ int main(int ac, char **av) s->osu_export_str = aa; } } else - if ((aret = strcmp(next_a, "SnapshotId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SnapshotId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SnapshotId argument missing\n"); @@ -42493,7 +42497,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -42504,7 +42508,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -42520,7 +42524,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "FileLocation")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "FileLocation")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FileLocation argument missing\n"); @@ -42531,7 +42535,7 @@ int main(int ac, char **av) s->file_location = aa; // string string } else - if ((aret = strcmp(next_a, "SnapshotSize")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SnapshotSize")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SnapshotSize argument missing\n"); @@ -42542,7 +42546,7 @@ int main(int ac, char **av) s->is_set_snapshot_size = 1; s->snapshot_size = atoi(aa); } else - if ((aret = strcmp(next_a, "SourceRegionName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SourceRegionName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SourceRegionName argument missing\n"); @@ -42553,7 +42557,7 @@ int main(int ac, char **av) s->source_region_name = aa; // string string } else - if ((aret = strcmp(next_a, "SourceSnapshotId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SourceSnapshotId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SourceSnapshotId argument missing\n"); @@ -42564,7 +42568,7 @@ int main(int ac, char **av) s->source_snapshot_id = aa; // string string } else - if ((aret = strcmp(next_a, "VolumeId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VolumeId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VolumeId argument missing\n"); @@ -42654,7 +42658,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "Body")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Body")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Body argument missing\n"); @@ -42665,7 +42669,7 @@ int main(int ac, char **av) s->body = aa; // string string } else - if ((aret = strcmp(next_a, "Chain")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Chain")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Chain argument missing\n"); @@ -42676,7 +42680,7 @@ int main(int ac, char **av) s->chain = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -42692,7 +42696,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Name")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Name")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Name argument missing\n"); @@ -42703,7 +42707,7 @@ int main(int ac, char **av) s->name = aa; // string string } else - if ((aret = strcmp(next_a, "Path")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Path")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Path argument missing\n"); @@ -42714,7 +42718,7 @@ int main(int ac, char **av) s->path = aa; // string string } else - if ((aret = strcmp(next_a, "PrivateKey")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PrivateKey")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PrivateKey argument missing\n"); @@ -42804,7 +42808,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -42820,7 +42824,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Flow")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Flow")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Flow argument missing\n"); @@ -42831,7 +42835,7 @@ int main(int ac, char **av) s->flow = aa; // string string } else - if ((aret = strcmp(next_a, "FromPortRange")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "FromPortRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FromPortRange argument missing\n"); @@ -42842,7 +42846,7 @@ int main(int ac, char **av) s->is_set_from_port_range = 1; s->from_port_range = atoi(aa); } else - if ((aret = strcmp(next_a, "IpProtocol")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "IpProtocol")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "IpProtocol argument missing\n"); @@ -42853,7 +42857,7 @@ int main(int ac, char **av) s->ip_protocol = aa; // string string } else - if ((aret = strcmp(next_a, "IpRange")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "IpRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "IpRange argument missing\n"); @@ -42864,7 +42868,7 @@ int main(int ac, char **av) s->ip_range = aa; // string string } else - if ((aret = strcmp(next_a, "Rules")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Rules")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Rules argument missing\n"); @@ -42895,7 +42899,7 @@ int main(int ac, char **av) s->rules_str = aa; // array ref SecurityGroupRule ref } } else - if ((aret = strcmp(next_a, "SecurityGroupAccountIdToLink")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SecurityGroupAccountIdToLink")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupAccountIdToLink argument missing\n"); @@ -42906,7 +42910,7 @@ int main(int ac, char **av) s->security_group_account_id_to_link = aa; // string string } else - if ((aret = strcmp(next_a, "SecurityGroupId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SecurityGroupId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupId argument missing\n"); @@ -42917,7 +42921,7 @@ int main(int ac, char **av) s->security_group_id = aa; // string string } else - if ((aret = strcmp(next_a, "SecurityGroupNameToLink")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SecurityGroupNameToLink")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupNameToLink argument missing\n"); @@ -42928,7 +42932,7 @@ int main(int ac, char **av) s->security_group_name_to_link = aa; // string string } else - if ((aret = strcmp(next_a, "ToPortRange")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ToPortRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ToPortRange argument missing\n"); @@ -43018,7 +43022,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -43029,7 +43033,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -43045,7 +43049,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetId argument missing\n"); @@ -43056,7 +43060,7 @@ int main(int ac, char **av) s->net_id = aa; // string string } else - if ((aret = strcmp(next_a, "SecurityGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SecurityGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupName argument missing\n"); @@ -43146,7 +43150,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -43162,7 +43166,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetId argument missing\n"); @@ -43252,7 +43256,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DestinationIpRange")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DestinationIpRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DestinationIpRange argument missing\n"); @@ -43263,7 +43267,7 @@ int main(int ac, char **av) s->destination_ip_range = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -43279,7 +43283,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "GatewayId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "GatewayId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "GatewayId argument missing\n"); @@ -43290,7 +43294,7 @@ int main(int ac, char **av) s->gateway_id = aa; // string string } else - if ((aret = strcmp(next_a, "NatServiceId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NatServiceId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NatServiceId argument missing\n"); @@ -43301,7 +43305,7 @@ int main(int ac, char **av) s->nat_service_id = aa; // string string } else - if ((aret = strcmp(next_a, "NetPeeringId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NetPeeringId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetPeeringId argument missing\n"); @@ -43312,7 +43316,7 @@ int main(int ac, char **av) s->net_peering_id = aa; // string string } else - if ((aret = strcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NicId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NicId argument missing\n"); @@ -43323,7 +43327,7 @@ int main(int ac, char **av) s->nic_id = aa; // string string } else - if ((aret = strcmp(next_a, "RouteTableId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "RouteTableId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "RouteTableId argument missing\n"); @@ -43334,7 +43338,7 @@ int main(int ac, char **av) s->route_table_id = aa; // string string } else - if ((aret = strcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmId argument missing\n"); @@ -43424,7 +43428,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -43519,7 +43523,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -43530,7 +43534,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -43546,7 +43550,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Vendor")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Vendor")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Vendor argument missing\n"); @@ -43636,7 +43640,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "Document")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Document")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Document argument missing\n"); @@ -43647,7 +43651,7 @@ int main(int ac, char **av) s->document = aa; // string string } else - if ((aret = strcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PolicyOrn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyOrn argument missing\n"); @@ -43658,7 +43662,7 @@ int main(int ac, char **av) s->policy_orn = aa; // string string } else - if ((aret = strcmp(next_a, "SetAsDefault")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SetAsDefault")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SetAsDefault argument missing\n"); @@ -43753,7 +43757,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -43764,7 +43768,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = strcmp(next_a, "Document")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Document")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Document argument missing\n"); @@ -43775,7 +43779,7 @@ int main(int ac, char **av) s->document = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -43791,7 +43795,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Path")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Path")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Path argument missing\n"); @@ -43802,7 +43806,7 @@ int main(int ac, char **av) s->path = aa; // string string } else - if ((aret = strcmp(next_a, "PolicyName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PolicyName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyName argument missing\n"); @@ -43892,7 +43896,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -43903,7 +43907,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -43919,7 +43923,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "PrivateIps")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PrivateIps")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PrivateIps argument missing\n"); @@ -43950,7 +43954,7 @@ int main(int ac, char **av) s->private_ips_str = aa; // array ref PrivateIpLight ref } } else - if ((aret = strcmp(next_a, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SecurityGroupIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroupIds argument missing\n"); @@ -43980,11 +43984,11 @@ int main(int ac, char **av) TRY(!aa, "SecurityGroupIds argument missing\n"); s->security_group_ids_str = aa; } - } else if (!(aret = strcmp(str, "SecurityGroupIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SecurityGroupIds[]")) || aret == '=') { TRY(!aa, "SecurityGroupIds[] argument missing\n"); SET_NEXT(s->security_group_ids, (aa), pa); } else - if ((aret = strcmp(next_a, "SubnetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SubnetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubnetId argument missing\n"); @@ -44074,7 +44078,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "AccepterNetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "AccepterNetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "AccepterNetId argument missing\n"); @@ -44085,7 +44089,7 @@ int main(int ac, char **av) s->accepter_net_id = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -44101,7 +44105,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "SourceNetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SourceNetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SourceNetId argument missing\n"); @@ -44191,7 +44195,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -44207,7 +44211,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetId argument missing\n"); @@ -44218,7 +44222,7 @@ int main(int ac, char **av) s->net_id = aa; // string string } else - if ((aret = strcmp(next_a, "RouteTableIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "RouteTableIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "RouteTableIds argument missing\n"); @@ -44248,11 +44252,11 @@ int main(int ac, char **av) TRY(!aa, "RouteTableIds argument missing\n"); s->route_table_ids_str = aa; } - } else if (!(aret = strcmp(str, "RouteTableIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "RouteTableIds[]")) || aret == '=') { TRY(!aa, "RouteTableIds[] argument missing\n"); SET_NEXT(s->route_table_ids, (aa), pa); } else - if ((aret = strcmp(next_a, "ServiceName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ServiceName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ServiceName argument missing\n"); @@ -44342,7 +44346,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -44358,7 +44362,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "IpRange")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "IpRange")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "IpRange argument missing\n"); @@ -44369,7 +44373,7 @@ int main(int ac, char **av) s->ip_range = aa; // string string } else - if ((aret = strcmp(next_a, "Tenancy")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Tenancy")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Tenancy argument missing\n"); @@ -44459,7 +44463,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "ClientToken")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ClientToken")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ClientToken argument missing\n"); @@ -44470,7 +44474,7 @@ int main(int ac, char **av) s->client_token = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -44486,7 +44490,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "PublicIpId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PublicIpId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PublicIpId argument missing\n"); @@ -44497,7 +44501,7 @@ int main(int ac, char **av) s->public_ip_id = aa; // string string } else - if ((aret = strcmp(next_a, "SubnetId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SubnetId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubnetId argument missing\n"); @@ -44587,7 +44591,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -44603,7 +44607,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "LoadBalancerNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LoadBalancerNames")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerNames argument missing\n"); @@ -44633,11 +44637,11 @@ int main(int ac, char **av) TRY(!aa, "LoadBalancerNames argument missing\n"); s->load_balancer_names_str = aa; } - } else if (!(aret = strcmp(str, "LoadBalancerNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LoadBalancerNames[]")) || aret == '=') { TRY(!aa, "LoadBalancerNames[] argument missing\n"); SET_NEXT(s->load_balancer_names, (aa), pa); } else - if ((aret = strcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Tags argument missing\n"); @@ -44747,7 +44751,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "CookieExpirationPeriod")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "CookieExpirationPeriod")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CookieExpirationPeriod argument missing\n"); @@ -44758,7 +44762,7 @@ int main(int ac, char **av) s->is_set_cookie_expiration_period = 1; s->cookie_expiration_period = atoi(aa); } else - if ((aret = strcmp(next_a, "CookieName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "CookieName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CookieName argument missing\n"); @@ -44769,7 +44773,7 @@ int main(int ac, char **av) s->cookie_name = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -44785,7 +44789,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -44796,7 +44800,7 @@ int main(int ac, char **av) s->load_balancer_name = aa; // string string } else - if ((aret = strcmp(next_a, "PolicyName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PolicyName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyName argument missing\n"); @@ -44807,7 +44811,7 @@ int main(int ac, char **av) s->policy_name = aa; // string string } else - if ((aret = strcmp(next_a, "PolicyType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PolicyType")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PolicyType argument missing\n"); @@ -44897,7 +44901,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -44913,7 +44917,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Listeners")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Listeners")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Listeners argument missing\n"); @@ -44944,7 +44948,7 @@ int main(int ac, char **av) s->listeners_str = aa; // array ref ListenerForCreation ref } } else - if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -45034,7 +45038,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -45050,7 +45054,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Listeners")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Listeners")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Listeners argument missing\n"); @@ -45081,7 +45085,7 @@ int main(int ac, char **av) s->listeners_str = aa; // array ref ListenerForCreation ref } } else - if ((aret = strcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LoadBalancerName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerName argument missing\n"); @@ -45092,7 +45096,7 @@ int main(int ac, char **av) s->load_balancer_name = aa; // string string } else - if ((aret = strcmp(next_a, "LoadBalancerType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LoadBalancerType")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LoadBalancerType argument missing\n"); @@ -45103,7 +45107,7 @@ int main(int ac, char **av) s->load_balancer_type = aa; // string string } else - if ((aret = strcmp(next_a, "PublicIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PublicIp")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PublicIp argument missing\n"); @@ -45114,7 +45118,7 @@ int main(int ac, char **av) s->public_ip = aa; // string string } else - if ((aret = strcmp(next_a, "SecurityGroups")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SecurityGroups")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SecurityGroups argument missing\n"); @@ -45144,11 +45148,11 @@ int main(int ac, char **av) TRY(!aa, "SecurityGroups argument missing\n"); s->security_groups_str = aa; } - } else if (!(aret = strcmp(str, "SecurityGroups[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SecurityGroups[]")) || aret == '=') { TRY(!aa, "SecurityGroups[] argument missing\n"); SET_NEXT(s->security_groups, (aa), pa); } else - if ((aret = strcmp(next_a, "Subnets")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Subnets")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Subnets argument missing\n"); @@ -45178,11 +45182,11 @@ int main(int ac, char **av) TRY(!aa, "Subnets argument missing\n"); s->subnets_str = aa; } - } else if (!(aret = strcmp(str, "Subnets[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Subnets[]")) || aret == '=') { TRY(!aa, "Subnets[] argument missing\n"); SET_NEXT(s->subnets, (aa), pa); } else - if ((aret = strcmp(next_a, "SubregionNames")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SubregionNames")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubregionNames argument missing\n"); @@ -45212,11 +45216,11 @@ int main(int ac, char **av) TRY(!aa, "SubregionNames argument missing\n"); s->subregion_names_str = aa; } - } else if (!(aret = strcmp(str, "SubregionNames[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "SubregionNames[]")) || aret == '=') { TRY(!aa, "SubregionNames[] argument missing\n"); SET_NEXT(s->subregion_names, (aa), pa); } else - if ((aret = strcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Tags")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Tags argument missing\n"); @@ -45326,7 +45330,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -45342,7 +45346,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Listener")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Listener")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Listener argument missing\n"); @@ -45365,7 +45369,7 @@ int main(int ac, char **av) s->listener_str = aa; } } else - if ((aret = strcmp(next_a, "ListenerRule")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ListenerRule")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ListenerRule argument missing\n"); @@ -45388,7 +45392,7 @@ int main(int ac, char **av) s->listener_rule_str = aa; } } else - if ((aret = strcmp(next_a, "VmIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmIds argument missing\n"); @@ -45418,7 +45422,7 @@ int main(int ac, char **av) TRY(!aa, "VmIds argument missing\n"); s->vm_ids_str = aa; } - } else if (!(aret = strcmp(str, "VmIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "VmIds[]")) || aret == '=') { TRY(!aa, "VmIds[] argument missing\n"); SET_NEXT(s->vm_ids, (aa), pa); } else @@ -45501,7 +45505,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -45517,7 +45521,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "KeypairName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "KeypairName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "KeypairName argument missing\n"); @@ -45528,7 +45532,7 @@ int main(int ac, char **av) s->keypair_name = aa; // string string } else - if ((aret = strcmp(next_a, "PublicKey")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PublicKey")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PublicKey argument missing\n"); @@ -45618,7 +45622,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -45713,7 +45717,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -45729,7 +45733,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "ImageId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ImageId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ImageId argument missing\n"); @@ -45740,7 +45744,7 @@ int main(int ac, char **av) s->image_id = aa; // string string } else - if ((aret = strcmp(next_a, "OsuExport")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "OsuExport")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "OsuExport argument missing\n"); @@ -45842,7 +45846,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "Architecture")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Architecture")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Architecture argument missing\n"); @@ -45853,7 +45857,7 @@ int main(int ac, char **av) s->architecture = aa; // string string } else - if ((aret = strcmp(next_a, "BlockDeviceMappings")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "BlockDeviceMappings")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BlockDeviceMappings argument missing\n"); @@ -45884,7 +45888,7 @@ int main(int ac, char **av) s->block_device_mappings_str = aa; // array ref BlockDeviceMappingImage ref } } else - if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -45895,7 +45899,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -45911,7 +45915,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "FileLocation")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "FileLocation")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FileLocation argument missing\n"); @@ -45922,7 +45926,7 @@ int main(int ac, char **av) s->file_location = aa; // string string } else - if ((aret = strcmp(next_a, "ImageName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ImageName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ImageName argument missing\n"); @@ -45933,7 +45937,7 @@ int main(int ac, char **av) s->image_name = aa; // string string } else - if ((aret = strcmp(next_a, "NoReboot")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NoReboot")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NoReboot argument missing\n"); @@ -45949,7 +45953,7 @@ int main(int ac, char **av) BAD_RET("NoReboot require true/false\n"); } } else - if ((aret = strcmp(next_a, "ProductCodes")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ProductCodes")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ProductCodes argument missing\n"); @@ -45979,11 +45983,11 @@ int main(int ac, char **av) TRY(!aa, "ProductCodes argument missing\n"); s->product_codes_str = aa; } - } else if (!(aret = strcmp(str, "ProductCodes[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "ProductCodes[]")) || aret == '=') { TRY(!aa, "ProductCodes[] argument missing\n"); SET_NEXT(s->product_codes, (aa), pa); } else - if ((aret = strcmp(next_a, "RootDeviceName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "RootDeviceName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "RootDeviceName argument missing\n"); @@ -45994,7 +45998,7 @@ int main(int ac, char **av) s->root_device_name = aa; // string string } else - if ((aret = strcmp(next_a, "SourceImageId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SourceImageId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SourceImageId argument missing\n"); @@ -46005,7 +46009,7 @@ int main(int ac, char **av) s->source_image_id = aa; // string string } else - if ((aret = strcmp(next_a, "SourceRegionName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SourceRegionName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SourceRegionName argument missing\n"); @@ -46016,7 +46020,7 @@ int main(int ac, char **av) s->source_region_name = aa; // string string } else - if ((aret = strcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VmId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VmId argument missing\n"); @@ -46106,7 +46110,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DeleteOnVmDeletion")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DeleteOnVmDeletion argument missing\n"); @@ -46122,7 +46126,7 @@ int main(int ac, char **av) BAD_RET("DeleteOnVmDeletion require true/false\n"); } } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -46138,7 +46142,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Generation")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Generation")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Generation argument missing\n"); @@ -46149,7 +46153,7 @@ int main(int ac, char **av) s->generation = aa; // string string } else - if ((aret = strcmp(next_a, "ModelName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ModelName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ModelName argument missing\n"); @@ -46160,7 +46164,7 @@ int main(int ac, char **av) s->model_name = aa; // string string } else - if ((aret = strcmp(next_a, "SubregionName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SubregionName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubregionName argument missing\n"); @@ -46250,7 +46254,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DirectLinkId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DirectLinkId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DirectLinkId argument missing\n"); @@ -46261,7 +46265,7 @@ int main(int ac, char **av) s->direct_link_id = aa; // string string } else - if ((aret = strcmp(next_a, "DirectLinkInterface")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DirectLinkInterface")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DirectLinkInterface argument missing\n"); @@ -46284,7 +46288,7 @@ int main(int ac, char **av) s->direct_link_interface_str = aa; } } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -46379,7 +46383,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "Bandwidth")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Bandwidth")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Bandwidth argument missing\n"); @@ -46390,7 +46394,7 @@ int main(int ac, char **av) s->bandwidth = aa; // string string } else - if ((aret = strcmp(next_a, "DirectLinkName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DirectLinkName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DirectLinkName argument missing\n"); @@ -46401,7 +46405,7 @@ int main(int ac, char **av) s->direct_link_name = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -46417,7 +46421,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Location")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Location")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Location argument missing\n"); @@ -46507,7 +46511,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DomainName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DomainName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DomainName argument missing\n"); @@ -46518,7 +46522,7 @@ int main(int ac, char **av) s->domain_name = aa; // string string } else - if ((aret = strcmp(next_a, "DomainNameServers")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DomainNameServers")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DomainNameServers argument missing\n"); @@ -46548,11 +46552,11 @@ int main(int ac, char **av) TRY(!aa, "DomainNameServers argument missing\n"); s->domain_name_servers_str = aa; } - } else if (!(aret = strcmp(str, "DomainNameServers[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "DomainNameServers[]")) || aret == '=') { TRY(!aa, "DomainNameServers[] argument missing\n"); SET_NEXT(s->domain_name_servers, (aa), pa); } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -46568,7 +46572,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "LogServers")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LogServers")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LogServers argument missing\n"); @@ -46598,11 +46602,11 @@ int main(int ac, char **av) TRY(!aa, "LogServers argument missing\n"); s->log_servers_str = aa; } - } else if (!(aret = strcmp(str, "LogServers[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "LogServers[]")) || aret == '=') { TRY(!aa, "LogServers[] argument missing\n"); SET_NEXT(s->log_servers, (aa), pa); } else - if ((aret = strcmp(next_a, "NtpServers")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NtpServers")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NtpServers argument missing\n"); @@ -46632,7 +46636,7 @@ int main(int ac, char **av) TRY(!aa, "NtpServers argument missing\n"); s->ntp_servers_str = aa; } - } else if (!(aret = strcmp(str, "NtpServers[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "NtpServers[]")) || aret == '=') { TRY(!aa, "NtpServers[] argument missing\n"); SET_NEXT(s->ntp_servers, (aa), pa); } else @@ -46715,7 +46719,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "CpuGeneration")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "CpuGeneration")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CpuGeneration argument missing\n"); @@ -46726,7 +46730,7 @@ int main(int ac, char **av) s->is_set_cpu_generation = 1; s->cpu_generation = atoi(aa); } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -46742,7 +46746,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Name")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Name")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Name argument missing\n"); @@ -46753,7 +46757,7 @@ int main(int ac, char **av) s->name = aa; // string string } else - if ((aret = strcmp(next_a, "SubregionName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "SubregionName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "SubregionName argument missing\n"); @@ -46843,7 +46847,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "BgpAsn")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "BgpAsn")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "BgpAsn argument missing\n"); @@ -46854,7 +46858,7 @@ int main(int ac, char **av) s->is_set_bgp_asn = 1; s->bgp_asn = atoi(aa); } else - if ((aret = strcmp(next_a, "ConnectionType")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ConnectionType")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ConnectionType argument missing\n"); @@ -46865,7 +46869,7 @@ int main(int ac, char **av) s->connection_type = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -46881,7 +46885,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "PublicIp")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PublicIp")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PublicIp argument missing\n"); @@ -46971,7 +46975,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "CaPem")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "CaPem")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CaPem argument missing\n"); @@ -46982,7 +46986,7 @@ int main(int ac, char **av) s->ca_pem = aa; // string string } else - if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -46993,7 +46997,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -47088,7 +47092,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "CaIds")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "CaIds")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CaIds argument missing\n"); @@ -47118,11 +47122,11 @@ int main(int ac, char **av) TRY(!aa, "CaIds argument missing\n"); s->ca_ids_str = aa; } - } else if (!(aret = strcmp(str, "CaIds[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "CaIds[]")) || aret == '=') { TRY(!aa, "CaIds[] argument missing\n"); SET_NEXT(s->ca_ids, (aa), pa); } else - if ((aret = strcmp(next_a, "Cns")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Cns")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Cns argument missing\n"); @@ -47152,11 +47156,11 @@ int main(int ac, char **av) TRY(!aa, "Cns argument missing\n"); s->cns_str = aa; } - } else if (!(aret = strcmp(str, "Cns[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "Cns[]")) || aret == '=') { TRY(!aa, "Cns[] argument missing\n"); SET_NEXT(s->cns, (aa), pa); } else - if ((aret = strcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Description")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Description argument missing\n"); @@ -47167,7 +47171,7 @@ int main(int ac, char **av) s->description = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -47183,7 +47187,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "IpRanges")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "IpRanges")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "IpRanges argument missing\n"); @@ -47213,7 +47217,7 @@ int main(int ac, char **av) TRY(!aa, "IpRanges argument missing\n"); s->ip_ranges_str = aa; } - } else if (!(aret = strcmp(str, "IpRanges[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "IpRanges[]")) || aret == '=') { TRY(!aa, "IpRanges[] argument missing\n"); SET_NEXT(s->ip_ranges, (aa), pa); } else @@ -47296,7 +47300,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "AdditionalEmails")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "AdditionalEmails")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "AdditionalEmails argument missing\n"); @@ -47326,11 +47330,11 @@ int main(int ac, char **av) TRY(!aa, "AdditionalEmails argument missing\n"); s->additional_emails_str = aa; } - } else if (!(aret = strcmp(str, "AdditionalEmails[]")) || aret == '=') { + } else if (!(aret = argcmp(str, "AdditionalEmails[]")) || aret == '=') { TRY(!aa, "AdditionalEmails[] argument missing\n"); SET_NEXT(s->additional_emails, (aa), pa); } else - if ((aret = strcmp(next_a, "City")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "City")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "City argument missing\n"); @@ -47341,7 +47345,7 @@ int main(int ac, char **av) s->city = aa; // string string } else - if ((aret = strcmp(next_a, "CompanyName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "CompanyName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CompanyName argument missing\n"); @@ -47352,7 +47356,7 @@ int main(int ac, char **av) s->company_name = aa; // string string } else - if ((aret = strcmp(next_a, "Country")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Country")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Country argument missing\n"); @@ -47363,7 +47367,7 @@ int main(int ac, char **av) s->country = aa; // string string } else - if ((aret = strcmp(next_a, "CustomerId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "CustomerId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "CustomerId argument missing\n"); @@ -47374,7 +47378,7 @@ int main(int ac, char **av) s->customer_id = aa; // string string } else - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -47390,7 +47394,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Email")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Email")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Email argument missing\n"); @@ -47401,7 +47405,7 @@ int main(int ac, char **av) s->email = aa; // string string } else - if ((aret = strcmp(next_a, "FirstName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "FirstName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "FirstName argument missing\n"); @@ -47412,7 +47416,7 @@ int main(int ac, char **av) s->first_name = aa; // string string } else - if ((aret = strcmp(next_a, "JobTitle")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "JobTitle")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "JobTitle argument missing\n"); @@ -47423,7 +47427,7 @@ int main(int ac, char **av) s->job_title = aa; // string string } else - if ((aret = strcmp(next_a, "LastName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "LastName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "LastName argument missing\n"); @@ -47434,7 +47438,7 @@ int main(int ac, char **av) s->last_name = aa; // string string } else - if ((aret = strcmp(next_a, "MobileNumber")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "MobileNumber")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "MobileNumber argument missing\n"); @@ -47445,7 +47449,7 @@ int main(int ac, char **av) s->mobile_number = aa; // string string } else - if ((aret = strcmp(next_a, "PhoneNumber")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "PhoneNumber")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "PhoneNumber argument missing\n"); @@ -47456,7 +47460,7 @@ int main(int ac, char **av) s->phone_number = aa; // string string } else - if ((aret = strcmp(next_a, "StateProvince")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "StateProvince")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "StateProvince argument missing\n"); @@ -47467,7 +47471,7 @@ int main(int ac, char **av) s->state_province = aa; // string string } else - if ((aret = strcmp(next_a, "VatNumber")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "VatNumber")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "VatNumber argument missing\n"); @@ -47478,7 +47482,7 @@ int main(int ac, char **av) s->vat_number = aa; // string string } else - if ((aret = strcmp(next_a, "ZipCode")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ZipCode")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ZipCode argument missing\n"); @@ -47568,7 +47572,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -47584,7 +47588,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "ExpirationDate")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "ExpirationDate")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "ExpirationDate argument missing\n"); @@ -47595,7 +47599,7 @@ int main(int ac, char **av) s->expiration_date = aa; // string string } else - if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -47685,7 +47689,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -47701,7 +47705,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "Login")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Login")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Login argument missing\n"); @@ -47712,7 +47716,7 @@ int main(int ac, char **av) s->login = aa; // string string } else - if ((aret = strcmp(next_a, "Password")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "Password")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "Password argument missing\n"); @@ -47802,7 +47806,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -47818,7 +47822,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserGroupName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupName argument missing\n"); @@ -47829,7 +47833,7 @@ int main(int ac, char **av) s->user_group_name = aa; // string string } else - if ((aret = strcmp(next_a, "UserGroupPath")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserGroupPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserGroupPath argument missing\n"); @@ -47840,7 +47844,7 @@ int main(int ac, char **av) s->user_group_path = aa; // string string } else - if ((aret = strcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserName")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserName argument missing\n"); @@ -47851,7 +47855,7 @@ int main(int ac, char **av) s->user_name = aa; // string string } else - if ((aret = strcmp(next_a, "UserPath")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "UserPath")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "UserPath argument missing\n"); @@ -47941,7 +47945,7 @@ int main(int ac, char **av) if (aa && aa[0] == '-' && aa[1] == '-' && aa[2] != '-') { META_ARGS({ aa = 0; incr = 1; }); } - if ((aret = strcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "DryRun")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "DryRun argument missing\n"); @@ -47957,7 +47961,7 @@ int main(int ac, char **av) BAD_RET("DryRun require true/false\n"); } } else - if ((aret = strcmp(next_a, "NetPeeringId")) == 0 || aret == '=' || aret == '.') { + if ((aret = argcmp(next_a, "NetPeeringId")) == 0 || aret == '=' || aret == '.') { char *eq_ptr = strchr(next_a, '='); if (eq_ptr) { TRY((!*eq_ptr), "NetPeeringId argument missing\n"); From 71fa7d559f36b037b64a4af87a8ca4a9c7609f44 Mon Sep 17 00:00:00 2001 From: Matthias Gatto Date: Mon, 29 Jul 2024 12:24:34 +0200 Subject: [PATCH 4/4] try fix docker Signed-off-by: Matthias Gatto --- .github/workflows/linux-pkg-build.yaml | 2 +- docker/Dockerfile | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/linux-pkg-build.yaml b/.github/workflows/linux-pkg-build.yaml index 6c7a76a..faca5ea 100644 --- a/.github/workflows/linux-pkg-build.yaml +++ b/.github/workflows/linux-pkg-build.yaml @@ -19,7 +19,7 @@ jobs: sudo apt-get update --fix-missing sudo apt-get install -y -f -o Acquire::Retries=3 cargo libfuse2 docker build -t oapi-build ./docker - docker run --device /dev/fuse --cap-add SYS_ADMIN --privileged=True -v $PWD:/oapi-cli oapi-build scl enable devtoolset-11 -- /oapi-cli/docker/make.sh cp + docker run --device /dev/fuse --cap-add SYS_ADMIN --privileged=True -v $PWD:/oapi-cli oapi-build /oapi-cli/docker/make.sh cp sudo chown $(whoami) -R ./docker-package/ ./docker-package/oapi-cli-x86_64.AppImage --appimage-extract-and-run --help ./docker-package/oapi-cli-x86_64.AppImage --help diff --git a/docker/Dockerfile b/docker/Dockerfile index c06b122..e6ee226 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,12 +1,12 @@ -FROM centos:7 +FROM rockylinux:8 + +RUN echo "assumeyes=1" >> /etc/yum.conf RUN yum search epel-release RUN yum info epel-release RUN yum install -y epel-release wget RUN yum update -y -RUN yum install -y git autoconf automake make cmake3 json-c-devel centos-release-scl-rh libnghttp2 libpsl libtool pkgconfig fuse-devel file cargo libcurl-devel -RUN yum install -y devtoolset-11-gcc-c++ -RUN ln -s /usr/bin/cmake3 /usr/bin/cmake +RUN yum install -y git autoconf automake make cmake json-c-devel libnghttp2 libpsl libtool pkgconfig fuse-devel file cargo libcurl-devel RUN yum clean all \ No newline at end of file