From 4e7a43239591ecdf2fe3daed0d8b8f70eb4a6868 Mon Sep 17 00:00:00 2001 From: Outscale Bot Date: Tue, 23 Apr 2024 13:31:46 +0000 Subject: [PATCH] osc-sdk-c v0.10.0 Signed-off-by: Outscale Bot --- osc_sdk.c | 1816 +++++++++++++++++++++++++++++++++++++++++++++++---- osc_sdk.h | 1134 ++++++++++++++++++++++++++------ sdk_version | 2 +- 3 files changed, 2629 insertions(+), 323 deletions(-) diff --git a/osc_sdk.c b/osc_sdk.c index 85e3e17..0fd0c61 100644 --- a/osc_sdk.c +++ b/osc_sdk.c @@ -84,6 +84,7 @@ static const char *calls_name[] = { "UpdateVmTemplate", "UpdateVmGroup", "UpdateVm", + "UpdateUserGroup", "UpdateUser", "UpdateSubnet", "UpdateSnapshot", @@ -112,6 +113,7 @@ static const char *calls_name[] = { "UnlinkPrivateIps", "UnlinkPolicy", "UnlinkNic", + "UnlinkManagedPolicyFromUserGroup", "UnlinkLoadBalancerBackendMachines", "UnlinkInternetService", "UnlinkFlexibleGpu", @@ -120,6 +122,7 @@ static const char *calls_name[] = { "SetDefaultPolicyVersion", "ScaleUpVmGroup", "ScaleDownVmGroup", + "RemoveUserFromUserGroup", "RejectNetPeering", "RegisterVmsInLoadBalancer", "RebootVms", @@ -133,6 +136,11 @@ static const char *calls_name[] = { "ReadVmGroups", "ReadVirtualGateways", "ReadUsers", + "ReadUserGroupsPerUser", + "ReadUserGroups", + "ReadUserGroupPolicy", + "ReadUserGroupPolicies", + "ReadUserGroup", "ReadTags", "ReadSubregions", "ReadSubnets", @@ -158,6 +166,7 @@ static const char *calls_name[] = { "ReadNetAccessPoints", "ReadNetAccessPointServices", "ReadNatServices", + "ReadManagedPoliciesLinkedToUserGroup", "ReadLocations", "ReadLoadBalancers", "ReadLoadBalancerTags", @@ -185,6 +194,7 @@ static const char *calls_name[] = { "ReadAdminPassword", "ReadAccounts", "ReadAccessKeys", + "PutUserGroupPolicy", "LinkVolume", "LinkVirtualGateway", "LinkRouteTable", @@ -192,6 +202,7 @@ static const char *calls_name[] = { "LinkPrivateIps", "LinkPolicy", "LinkNic", + "LinkManagedPolicyToUserGroup", "LinkLoadBalancerBackendMachines", "LinkInternetService", "LinkFlexibleGpu", @@ -203,6 +214,8 @@ static const char *calls_name[] = { "DeleteVmTemplate", "DeleteVmGroup", "DeleteVirtualGateway", + "DeleteUserGroupPolicy", + "DeleteUserGroup", "DeleteUser", "DeleteTags", "DeleteSubnet", @@ -245,6 +258,7 @@ static const char *calls_name[] = { "CreateVmTemplate", "CreateVmGroup", "CreateVirtualGateway", + "CreateUserGroup", "CreateUser", "CreateTags", "CreateSubnet", @@ -284,6 +298,7 @@ static const char *calls_name[] = { "CreateAccount", "CreateAccessKey", "CheckAuthentication", + "AddUserToUserGroup", "AcceptNetPeering", NULL }; @@ -298,6 +313,8 @@ static const char *calls_descriptions[] = { "Usage: oapi-cli UpdateVmGroup --VmGroupId=vmgroupid [OPTIONS]\n" "> [WARNING]\n> This feature is currently under development and may not function \n" "properly.\n\nModifies the specified attributes of a group of virtual machines \n" "(VMs).\n" "\nRequired Argument: VmGroupId \n" , "Usage: oapi-cli UpdateVm --VmId=vmid [OPTIONS]\n" "Modifies the specified attributes of a virtual machine (VM).\nYou must stop the \n" "VM before modifying the following attributes:\n* `NestedVirtualization`\n* \n" "`Performance`\n* `UserData`\n* `VmType`\n" "\nRequired Argument: VmId \n" +, + "Usage: oapi-cli UpdateUserGroup --UserGroupName=usergroupname [OPTIONS]\n" "Modifies the name and/or the path of a specified group.\n" "\nRequired Argument: UserGroupName \n" , "Usage: oapi-cli UpdateUser --UserName=username [OPTIONS]\n" "Modifies the name and/or the path of a specified EIM user.\n" "\nRequired Argument: UserName \n" , @@ -323,7 +340,7 @@ static const char *calls_descriptions[] = { , "Usage: oapi-cli UpdateListenerRule --ListenerRuleName=listenerrulename [OPTIONS]\n" "Updates the pattern of the listener rule.\nThis call updates the pattern \n" "matching algorithm for incoming traffic.\n" "\nRequired Argument: ListenerRuleName \n" , - "Usage: oapi-cli UpdateImage --ImageId=imageid --PermissionsToLaunch=permissionstolaunch [OPTIONS]\n" "Modifies the access permissions for an OUTSCALE machine image (OMI).\nYou must \n" "specify either the `Additions` or the `Removals` parameter.\nAfter sharing an \n" "OMI with an account, the other account can create a copy of it that they own. \n" "For more information about copying OMIs, see [CreateImage](#createimage).\n" "\nRequired Argument: ImageId, PermissionsToLaunch \n" + "Usage: oapi-cli UpdateImage --ImageId=imageid [OPTIONS]\n" "Modifies the access permissions for an OUTSCALE machine image (OMI).\nYou must \n" "specify either the `Additions` or the `Removals` parameter.\nAfter sharing an \n" "OMI with an account, the other account can create a copy of it that they own. \n" "For more information about copying OMIs, see [CreateImage](#createimage).\n" "\nRequired Argument: ImageId \n" , "Usage: oapi-cli UpdateFlexibleGpu --FlexibleGpuId=flexiblegpuid [OPTIONS]\n" "Modifies a flexible GPU (fGPU) behavior.\n" "\nRequired Argument: FlexibleGpuId \n" , @@ -355,11 +372,13 @@ static const char *calls_descriptions[] = { , "Usage: oapi-cli UnlinkNic --LinkNicId=linknicid [OPTIONS]\n" "Detaches a network interface card (NIC) from a virtual machine (VM).\nThe \n" "primary NIC cannot be detached.\n" "\nRequired Argument: LinkNicId \n" , - "Usage: oapi-cli UnlinkLoadBalancerBackendMachines --LoadBalancerName=loadbalancername [OPTIONS]\n" "Detaches one or more back-end virtual machines (VMs) from a load balancer. You \n" "need to specify at least the `BackendIps` or the `BackendVmIds` parameter.\n" "\nRequired Argument: LoadBalancerName \n" + "Usage: oapi-cli UnlinkManagedPolicyFromUserGroup --PolicyOrn=policyorn --UserGroupName=usergroupname [OPTIONS]\n" "Unlinks a managed policy from a specific group.\n" "\nRequired Argument: PolicyOrn, UserGroupName \n" +, + "Usage: oapi-cli UnlinkLoadBalancerBackendMachines --LoadBalancerName=loadbalancername [OPTIONS]\n" "Detaches one or more backend virtual machines (VMs) from a load balancer. You \n" "need to specify at least the `BackendIps` or the `BackendVmIds` parameter.\n" "\nRequired Argument: LoadBalancerName \n" , "Usage: oapi-cli UnlinkInternetService --InternetServiceId=internetserviceid --NetId=netid [OPTIONS]\n" "Detaches an Internet service from a Net.\nThis action disables and detaches an \n" "Internet service from a Net. The Net must not contain virtual machines (VMs) \n" "using public IPs nor internet-facing load balancers.\n" "\nRequired Argument: InternetServiceId, NetId \n" , - "Usage: oapi-cli UnlinkFlexibleGpu --FlexibleGpuId=flexiblegpuid [OPTIONS]\n" "Detaches a flexible GPU (fGPU) from a virtual machine (VM).\nThe fGPU is in the \n" "`detaching` state until the VM is stopped, after which it becomes available for \n" "allocation again.\n" "\nRequired Argument: FlexibleGpuId \n" + "Usage: oapi-cli UnlinkFlexibleGpu --FlexibleGpuId=flexiblegpuid [OPTIONS]\n" "Detaches a flexible GPU (fGPU) from a virtual machine (VM).\nThe fGPU is in the \n" "`detaching` state until the VM is stopped, after which it becomes `allocated`. \n" "It is then available again for attachment to a VM.\n" "\nRequired Argument: FlexibleGpuId \n" , "Usage: oapi-cli StopVms --VmIds=vmids [OPTIONS]\n" "Stops one or more running virtual machines (VMs).\nYou can stop only VMs that \n" "are valid and that belong to you. Data stored in the VM RAM is lost.\n" "\nRequired Argument: VmIds \n" , @@ -370,10 +389,12 @@ static const char *calls_descriptions[] = { "Usage: oapi-cli ScaleUpVmGroup --VmGroupId=vmgroupid --VmAddition=vmaddition [OPTIONS]\n" "> [WARNING]\n> This feature is currently under development and may not function \n" "properly.\n\nCreates additional virtual machines (VMs) in a VM group.\nThe new \n" "VMs use the current version of the VM template.\n" "\nRequired Argument: VmGroupId, VmAddition \n" , "Usage: oapi-cli ScaleDownVmGroup --VmGroupId=vmgroupid --VmSubtraction=vmsubtraction [OPTIONS]\n" "> [WARNING]\n> This feature is currently under development and may not function \n" "properly.\n\nDeletes virtual machines (VMs) from a VM group.\nThe oldest VMs \n" "are the first to be deleted.\n" "\nRequired Argument: VmGroupId, VmSubtraction \n" +, + "Usage: oapi-cli RemoveUserFromUserGroup --UserGroupName=usergroupname --UserName=username [OPTIONS]\n" "Removes a specified user from a specified group.\n" "\nRequired Argument: UserGroupName, UserName \n" , "Usage: oapi-cli RejectNetPeering --NetPeeringId=netpeeringid [OPTIONS]\n" "Rejects a Net peering request.\nThe Net peering must be in the \n" "`pending-acceptance` state to be rejected. The rejected Net peering is then in \n" "the `rejected` state.\n" "\nRequired Argument: NetPeeringId \n" , - "Usage: oapi-cli RegisterVmsInLoadBalancer --BackendVmIds=backendvmids --LoadBalancerName=loadbalancername [OPTIONS]\n" "Registers one or more virtual machines (VMs) with a specified load \n" "balancer.\nThe VMs can be in different Subnets and different Subregions than \n" "the load balancer, as long as the VMs and load balancers are all in the public \n" "Cloud or all in the same Net. It may take a little time for a VM to be \n" "registered with the load balancer. Once the VM is registered with a load \n" "balancer, it receives traffic and requests from this load balancer and is \n" "called a back-end VM.\n" "\nRequired Argument: BackendVmIds, LoadBalancerName \n" + "Usage: oapi-cli RegisterVmsInLoadBalancer --BackendVmIds=backendvmids --LoadBalancerName=loadbalancername [OPTIONS]\n" "Registers one or more virtual machines (VMs) with a specified load \n" "balancer.\nThe VMs can be in different Subnets and different Subregions than \n" "the load balancer, as long as the VMs and load balancers are all in the public \n" "Cloud or all in the same Net. It may take a little time for a VM to be \n" "registered with the load balancer. Once the VM is registered with a load \n" "balancer, it receives traffic and requests from this load balancer and is \n" "called a backend VM.\n" "\nRequired Argument: BackendVmIds, LoadBalancerName \n" , "Usage: oapi-cli RebootVms --VmIds=vmids [OPTIONS]\n" "Reboots one or more virtual machines (VMs).\nThis operation sends a reboot \n" "request to one or more specified VMs. This is an asynchronous action that \n" "queues this reboot request. This action only reboots VMs that are valid and \n" "that belong to you.\n" "\nRequired Argument: VmIds \n" , @@ -383,7 +404,7 @@ static const char *calls_descriptions[] = { , "Usage: oapi-cli ReadVmsState [OPTIONS]\n" "Lists the status of one or more virtual machines (VMs).\n" "\nRequired Argument: \n" , - "Usage: oapi-cli ReadVmsHealth --LoadBalancerName=loadbalancername [OPTIONS]\n" "Lists the state of one or more back-end virtual machines (VMs) registered with \n" "a specified load balancer.\n" "\nRequired Argument: LoadBalancerName \n" + "Usage: oapi-cli ReadVmsHealth --LoadBalancerName=loadbalancername [OPTIONS]\n" "Lists the state of one or more backend virtual machines (VMs) registered with a \n" "specified load balancer.\n" "\nRequired Argument: LoadBalancerName \n" , "Usage: oapi-cli ReadVms [OPTIONS]\n" "Lists one or more of your virtual machines (VMs).\nIf you provide one or more \n" "VM IDs, this action returns a description for all of these VMs. If you do not \n" "provide any VM ID, this action returns a description for all of the VMs that \n" "belong to you. If you provide an invalid VM ID, an error is returned. If you \n" "provide the ID of a VM that does not belong to you, the description of this VM \n" "is not included in the response. The refresh interval for data returned by this \n" "action is one hour, meaning that a terminated VM may appear in the response.\n" "\nRequired Argument: \n" , @@ -396,6 +417,16 @@ static const char *calls_descriptions[] = { "Usage: oapi-cli ReadVirtualGateways [OPTIONS]\n" "Lists one or more virtual gateways.\n" "\nRequired Argument: \n" , "Usage: oapi-cli ReadUsers [OPTIONS]\n" "Lists all EIM users that have a specified path.\nIf you do not specify a path, \n" "this action returns a list of all users in the account (or an empty list if \n" "there are none).\n" "\nRequired Argument: \n" +, + "Usage: oapi-cli ReadUserGroupsPerUser --UserName=username [OPTIONS]\n" "Lists the groups a specified user belongs to.\n" "\nRequired Argument: UserName \n" +, + "Usage: oapi-cli ReadUserGroups [OPTIONS]\n" "Lists the groups with the specified path prefix.\nIf you do not specify any \n" "path prefix, this action returns all the groups (or an empty list if there are \n" "none).\n" "\nRequired Argument: \n" +, + "Usage: oapi-cli ReadUserGroupPolicy --PolicyName=policyname --UserGroupName=usergroupname [OPTIONS]\n" "Returns information about an inline policy included in a specified group.\n" "\nRequired Argument: PolicyName, UserGroupName \n" +, + "Usage: oapi-cli ReadUserGroupPolicies --UserGroupName=usergroupname [OPTIONS]\n" "Lists the names of the inline policies embedded in a specific group.\n" "\nRequired Argument: UserGroupName \n" +, + "Usage: oapi-cli ReadUserGroup --UserGroupName=usergroupname [OPTIONS]\n" "Lists information about a specified user group, including its users.\n" "\nRequired Argument: UserGroupName \n" , "Usage: oapi-cli ReadTags [OPTIONS]\n" "Lists one or more tags for your resources.\n" "\nRequired Argument: \n" , @@ -446,6 +477,8 @@ static const char *calls_descriptions[] = { "Usage: oapi-cli ReadNetAccessPointServices [OPTIONS]\n" "Lists OUTSCALE services available to create Net access points.\nFor more \n" "information, see [CreateNetAccessPoint](#createnetaccesspoint).\n" "\nRequired Argument: \n" , "Usage: oapi-cli ReadNatServices [OPTIONS]\n" "Lists one or more network address translation (NAT) services.\n" "\nRequired Argument: \n" +, + "Usage: oapi-cli ReadManagedPoliciesLinkedToUserGroup --UserGroupName=usergroupname [OPTIONS]\n" "Lists the managed policies linked to a specified group.\n" "\nRequired Argument: UserGroupName \n" , "Usage: oapi-cli ReadLocations [OPTIONS]\n" "Lists the locations, corresponding to datacenters, where you can set up a \n" "DirectLink.\nFor more information, see [About \n" "DirectLink](https://docs.outscale.com/en/userguide/About-DirectLink.html).\n" "\nRequired Argument: \n" , @@ -455,7 +488,7 @@ static const char *calls_descriptions[] = { , "Usage: oapi-cli ReadListenerRules [OPTIONS]\n" "Lists one or more listener rules. By default, this action returns the full list \n" "of listener rules for the account.\n" "\nRequired Argument: \n" , - "Usage: oapi-cli ReadLinkedPolicies [OPTIONS]\n" "Lists the managed policies linked to a specified user.\n" "\nRequired Argument: \n" + "Usage: oapi-cli ReadLinkedPolicies --UserName=username [OPTIONS]\n" "Lists the managed policies linked to a specified user.\n" "\nRequired Argument: UserName \n" , "Usage: oapi-cli ReadKeypairs [OPTIONS]\n" "Lists one or more of your keypairs.\n" "\nRequired Argument: \n" , @@ -489,7 +522,7 @@ static const char *calls_descriptions[] = { , "Usage: oapi-cli ReadCas [OPTIONS]\n" "Gets information about one or more of your Client Certificate Authorities (CAs).\n" "\nRequired Argument: \n" , - "Usage: oapi-cli ReadApiLogs [OPTIONS]\n" "Lists the logs of the API calls you have performed with this \n" "account.\n\n**[IMPORTANT]**\nPast logs are accessible for up to 32 days.\nBy \n" "default, the retrieved interval is 48 hours. If neither of the \n" "`QueryDateBefore` nor `QueryDateAfter` parameters are specified, logs from the \n" "past 48 hours are retrieved. If you only specify one of two, logs are retrieved \n" "from a 2-day interval based on the date you provided. To retrieve logs beyond a \n" "2-day interval, specify both parameters.\nFor more information, see [About \n" "OUTSCALE Monitoring Services \n" "(OMS)](https://docs.outscale.com/en/userguide/About-OUTSCALE-Monitoring-Services\n" "-OMS.html).\n" "\nRequired Argument: \n" + "Usage: oapi-cli ReadApiLogs [OPTIONS]\n" "Lists the logs of the API calls you have performed with this \n" "account.\n\n**[IMPORTANT]**\nPast logs are accessible for up to 32 days.\nBy \n" "default, the retrieved interval is 48 hours. If neither of the \n" "`QueryDateBefore` nor `QueryDateAfter` parameters are specified, logs from the \n" "past 48 hours are retrieved. If you only specify one of two, logs are retrieved \n" "from a 2-day interval based on the date you provided. To retrieve logs beyond a \n" "2-day interval, specify both parameters.\nFor more information, see [About \n" "OMS](https://docs.outscale.com/en/userguide/About-OMS.html).\n" "\nRequired Argument: \n" , "Usage: oapi-cli ReadApiAccessRules [OPTIONS]\n" "Lists one or more API access rules.\n" "\nRequired Argument: \n" , @@ -500,6 +533,8 @@ static const char *calls_descriptions[] = { "Usage: oapi-cli ReadAccounts [OPTIONS]\n" "Gets information about the account that sent the request.\n" "\nRequired Argument: \n" , "Usage: oapi-cli ReadAccessKeys [OPTIONS]\n" "Lists the access key IDs of either your root account or an EIM user.\n" "\nRequired Argument: \n" +, + "Usage: oapi-cli PutUserGroupPolicy --PolicyName=policyname --PolicyDocument=policydocument --UserGroupName=usergroupname [OPTIONS]\n" "Creates or updates an inline policy included in a specified group.\nThe policy \n" "is automatically applied to all the users of the group after its creation.\n" "\nRequired Argument: PolicyName, PolicyDocument, UserGroupName \n" , "Usage: oapi-cli LinkVolume --DeviceName=devicename --VmId=vmid --VolumeId=volumeid [OPTIONS]\n" "Attaches a Block Storage Unit (BSU) volume to a virtual machine (VM).\nThe \n" "volume and the VM must be in the same Subregion. The VM can be running or \n" "stopped. The volume is attached to the specified VM device.\n" "\nRequired Argument: DeviceName, VmId, VolumeId \n" , @@ -515,11 +550,13 @@ static const char *calls_descriptions[] = { , "Usage: oapi-cli LinkNic --DeviceNumber=devicenumber --VmId=vmid --NicId=nicid [OPTIONS]\n" "Attaches a network interface card (NIC) to a virtual machine (VM).\nThe \n" "interface and the VM must be in the same Subregion. The VM can be either \n" "`running` or `stopped`. The NIC must be in the `available` state. For more \n" "information, see [Attaching a NIC to a \n" "VM](https://docs.outscale.com/en/userguide/Attaching-a-NIC-to-a-VM.html).\n" "\nRequired Argument: DeviceNumber, VmId, NicId \n" , - "Usage: oapi-cli LinkLoadBalancerBackendMachines --LoadBalancerName=loadbalancername [OPTIONS]\n" "Attaches one or more virtual machines (VMs) to a specified load balancer. You \n" "need to specify at least the `BackendIps` or the `BackendVmIds` parameter.\nThe \n" "VMs can be in different Subnets and different Subregions than the load \n" "balancer, as long as the VMs and load balancers are all in the public Cloud or \n" "all in the same Net. It may take a little time for a VM to be registered with \n" "the load balancer. Once the VM is registered with a load balancer, it receives \n" "traffic and requests from this load balancer and is called a back-end VM.\n" "\nRequired Argument: LoadBalancerName \n" + "Usage: oapi-cli LinkManagedPolicyToUserGroup --PolicyOrn=policyorn --UserGroupName=usergroupname [OPTIONS]\n" "Links a managed policy to a specific group. This policy applies to all the \n" "users contained in this group.\n" "\nRequired Argument: PolicyOrn, UserGroupName \n" +, + "Usage: oapi-cli LinkLoadBalancerBackendMachines --LoadBalancerName=loadbalancername [OPTIONS]\n" "Attaches one or more virtual machines (VMs) to a specified load balancer. You \n" "need to specify at least the `BackendIps` or the `BackendVmIds` parameter.\nThe \n" "VMs can be in different Subnets and different Subregions than the load \n" "balancer, as long as the VMs and load balancers are all in the public Cloud or \n" "all in the same Net. It may take a little time for a VM to be registered with \n" "the load balancer. Once the VM is registered with a load balancer, it receives \n" "traffic and requests from this load balancer and is called a backend VM.\n" "\nRequired Argument: LoadBalancerName \n" , "Usage: oapi-cli LinkInternetService --InternetServiceId=internetserviceid --NetId=netid [OPTIONS]\n" "Attaches an Internet service to a Net.\nTo enable the connection between the \n" "Internet and a Net, you must attach an Internet service to this Net.\n" "\nRequired Argument: InternetServiceId, NetId \n" , - "Usage: oapi-cli LinkFlexibleGpu --FlexibleGpuId=flexiblegpuid --VmId=vmid [OPTIONS]\n" "Attaches one of your allocated flexible GPUs (fGPUs) to one of your virtual \n" "machines (VMs).\nThe fGPU is in the `attaching` state until the VM is stopped, \n" "after which it becomes `attached`.\n" "\nRequired Argument: FlexibleGpuId, VmId \n" + "Usage: oapi-cli LinkFlexibleGpu --FlexibleGpuId=flexiblegpuid --VmId=vmid [OPTIONS]\n" "Attaches one of your allocated flexible GPUs (fGPUs) to one of your virtual \n" "machines (VMs).\nThe fGPU is in the `attaching` state until the VM is stopped, \n" "after which it becomes `attached`. \n\n**[NOTE]**\nYou can attach fGPUs only to \n" "VMs with the `highest` (1) performance flag. For more information see [About \n" "Flexible GPUs](https://docs.outscale.com/en/userguide/About-Flexible-GPUs.html) \n" "and [VM Types](https://docs.outscale.com/en/userguide/VM-Types.html).\n" "\nRequired Argument: FlexibleGpuId, VmId \n" , "Usage: oapi-cli DeregisterVmsInLoadBalancer --BackendVmIds=backendvmids --LoadBalancerName=loadbalancername [OPTIONS]\n" "Deregisters a specified virtual machine (VM) from a load balancer.\n" "\nRequired Argument: BackendVmIds, LoadBalancerName \n" , @@ -537,7 +574,11 @@ static const char *calls_descriptions[] = { , "Usage: oapi-cli DeleteVirtualGateway --VirtualGatewayId=virtualgatewayid [OPTIONS]\n" "Deletes a specified virtual gateway.\nBefore deleting a virtual gateway, we \n" "recommend to detach it from the Net and delete the VPN connection.\n" "\nRequired Argument: VirtualGatewayId \n" , - "Usage: oapi-cli DeleteUser --UserName=username [OPTIONS]\n" "Deletes a specified EIM user. The EIM user must not belong to any group, nor \n" "have any key or attached policy.\n" "\nRequired Argument: UserName \n" + "Usage: oapi-cli DeleteUserGroupPolicy --UserGroupName=usergroupname --PolicyName=policyname [OPTIONS]\n" "Deletes a specified inline policy from a specific group.\n" "\nRequired Argument: UserGroupName, PolicyName \n" +, + "Usage: oapi-cli DeleteUserGroup --UserGroupName=usergroupname [OPTIONS]\n" "Deletes a specified user group.\n\n**[WARNING]**\nThe user group must be empty \n" "of any user and must not have any linked policy. Otherwise, you need to force \n" "the deletion.\nIf you force the deletion, all inline policies will be deleted \n" "with the user group.\n" "\nRequired Argument: UserGroupName \n" +, + "Usage: oapi-cli DeleteUser --UserName=username [OPTIONS]\n" "Deletes a specified EIM user. The EIM user must not belong to any group, nor \n" "have any key or linked policy.\n" "\nRequired Argument: UserName \n" , "Usage: oapi-cli DeleteTags --ResourceIds=resourceids --Tags=tags [OPTIONS]\n" "Deletes one or more tags from the specified resources.\n" "\nRequired Argument: ResourceIds, Tags \n" , @@ -620,6 +661,8 @@ static const char *calls_descriptions[] = { "Usage: oapi-cli CreateVmGroup --SecurityGroupIds=securitygroupids --SubnetId=subnetid --VmGroupName=vmgroupname --VmTemplateId=vmtemplateid --VmCount=vmcount [OPTIONS]\n" "> [WARNING]\n> This feature is currently under development and may not function \n" "properly.\n\nCreates a group of virtual machines (VMs) containing the same \n" "characteristics as a specified VM template, and then launches them.\nYou can \n" "create up to 100 VM groups in your account.\n" "\nRequired Argument: SecurityGroupIds, SubnetId, VmGroupName, VmTemplateId, VmCount \n" , "Usage: oapi-cli CreateVirtualGateway --ConnectionType=connectiontype [OPTIONS]\n" "Creates a virtual gateway.\nA virtual gateway is the access point on the Net \n" "side of a VPN connection.\nFor more information, see [About Virtual \n" "Gateways](https://docs.outscale.com/en/userguide/About-Virtual-Gateways.html).\n" "\nRequired Argument: ConnectionType \n" +, + "Usage: oapi-cli CreateUserGroup --UserGroupName=usergroupname [OPTIONS]\n" "Creates a group to which you can add users.\nYou can also add an inline policy \n" "or link a managed policy to the group, which is applied to all its users.\n" "\nRequired Argument: UserGroupName \n" , "Usage: oapi-cli CreateUser --UserName=username [OPTIONS]\n" "Creates an EIM user for your account.\nFor more information, see [About EIM \n" "Users](https://docs.outscale.com/en/userguide/About-EIM-Users.html).\n" "\nRequired Argument: UserName \n" , @@ -629,9 +672,9 @@ static const char *calls_descriptions[] = { , "Usage: oapi-cli CreateSnapshotExportTask --OsuExport=osuexport --SnapshotId=snapshotid [OPTIONS]\n" "Exports a snapshot to an OUTSCALE Object Storage (OOS) bucket.\nThis action \n" "enables you to create a backup of your snapshot or to copy it to another \n" "account. You, or other accounts you send a pre-signed URL to, can then download \n" "this snapshot from the bucket using the [CreateSnapshot](#createsnapshot) \n" "method.\nThis procedure enables you to copy a snapshot between accounts within \n" "the same Region or in different Regions. To copy a snapshot within the same \n" "Region, you can also use the [CreateSnapshot](#createsnapshot) direct method. \n" "The copy of the source snapshot is independent and belongs to you.\nFor more \n" "information, see [About \n" "Snapshots](https://docs.outscale.com/en/userguide/About-Snapshots.html).\n" "\nRequired Argument: OsuExport, SnapshotId \n" , - "Usage: oapi-cli CreateSnapshot [OPTIONS]\n" "Creates a snapshot. Snapshots are point-in-time images of a volume that you can \n" "use to back up your data or to create replicas of this volume.\nYou can use \n" "this method in three different ways:\n* **Creating from a volume**: You create \n" "a snapshot from one of your volumes.\n* **Copying a snapshot**: You copy an \n" "existing snapshot. The source snapshot can be one of your own snapshots, or a \n" "snapshot owned by another account that has granted you permission via the \n" "[UpdateSnapshot](#updatesnapshot) method.\n* **Importing from a bucket**: You \n" "import a snapshot located in an OUTSCALE Object Storage (OOS) bucket. First, \n" "the owner of the source snapshot must export it to the bucket by using the \n" "[CreateSnapshotExportTask](#createsnapshotexporttask) method. Then, they must \n" "grant you permission to read the snapshot via a pre-signed URL or Access \n" "Control Lists. For more information, see [Managing Access to Your Buckets and \n" "Objects](https://docs.outscale.com/en/userguide/Managing-Access-to-Your-Buckets-\n" "and-Objects.html).\n\nFor more information, see [About \n" "Snapshots](https://docs.outscale.com/en/userguide/About-Snapshots.html).\n" "\nRequired Argument: \n" + "Usage: oapi-cli CreateSnapshot [OPTIONS]\n" "Creates a snapshot. Snapshots are point-in-time images of a volume that you can \n" "use to back up your data or to create replicas of this volume.\nYou can use \n" "this method in three different ways:\n* **Creating from a volume**: You create \n" "a snapshot from one of your volumes.\n* **Copying a snapshot**: You copy an \n" "existing snapshot. The source snapshot can be one of your own snapshots, or a \n" "snapshot owned by another account that has granted you permission via the \n" "[UpdateSnapshot](#updatesnapshot) method.\n* **Importing from a bucket**: You \n" "import a snapshot located in an OUTSCALE Object Storage (OOS) bucket. First, \n" "the owner of the source snapshot must export it to the bucket by using the \n" "[CreateSnapshotExportTask](#createsnapshotexporttask) method. Then, they must \n" "grant you permission to read the snapshot via a pre-signed URL or Access \n" "Control Lists. For more information, see [Managing Access to Your Buckets and \n" "Objects](https://docs.outscale.com/en/userguide/Managing-Access-to-Your-Buckets-\n" "and-Objects.html).\n\n**[NOTE]**\nIn case of excessive use of the snapshot \n" "creation feature on the same volume over a short period of time, 3DS OUTSCALE \n" "reserves the right to temporarily block the feature.\n\nFor more information, \n" "see [About \n" "Snapshots](https://docs.outscale.com/en/userguide/About-Snapshots.html).\n" "\nRequired Argument: \n" , - "Usage: oapi-cli CreateServerCertificate --Body=body --PrivateKey=privatekey --Name=name [OPTIONS]\n" "Creates a server certificate and its matching private key.\nThese elements can \n" "be used with other services (for example, to configure SSL termination on load \n" "balancers).\nYou can also specify the chain of intermediate certification \n" "authorities if your certificate is not directly signed by a root one. You can \n" "specify multiple intermediate certification authorities in the \n" "`CertificateChain` parameter. To do so, concatenate all certificates in the \n" "correct order (the first certificate must be the authority of your certificate, \n" "the second must the the authority of the first one, and so on).\nThe private \n" "key must be a RSA key in PKCS1 form. To check this, open the PEM file and \n" "ensure its header reads as follows: BEGIN RSA PRIVATE KEY.\n[IMPORTANT]\nThis \n" "private key must not be protected by a password or a passphrase.\nFor more \n" "information, see [About Server Certificates in \n" "EIM](https://docs.outscale.com/en/userguide/About-Server-Certificates-in-EIM.htm\n" "l).\n" "\nRequired Argument: Body, PrivateKey, Name \n" + "Usage: oapi-cli CreateServerCertificate --Body=body --PrivateKey=privatekey --Name=name [OPTIONS]\n" "Creates a server certificate and its matching private key.\nThese elements can \n" "be used with other services (for example, to configure SSL termination on load \n" "balancers).\nYou can also specify the chain of intermediate certification \n" "authorities if your certificate is not directly signed by a root one. You can \n" "specify multiple intermediate certification authorities in the \n" "`CertificateChain` parameter. To do so, concatenate all certificates in the \n" "correct order (the first certificate must be the authority of your certificate, \n" "the second must be the authority of the first one, and so on).\nThe private key \n" "must be a RSA key in PKCS1 form. To check this, open the PEM file and ensure \n" "its header reads as follows: BEGIN RSA PRIVATE KEY.\n[IMPORTANT]\nThis private \n" "key must not be protected by a password or a passphrase.\nFor more information, \n" "see [About Server Certificates in \n" "EIM](https://docs.outscale.com/en/userguide/About-Server-Certificates-in-EIM.htm\n" "l).\n" "\nRequired Argument: Body, PrivateKey, Name \n" , "Usage: oapi-cli CreateSecurityGroupRule --SecurityGroupId=securitygroupid --Flow=flow [OPTIONS]\n" "Adds one or more rules to a security group.\nUse the `SecurityGroupId` \n" "parameter to specify the security group for which you want to create a \n" "rule.\nUse the `Flow` parameter to specify if you want an inbound rule or an \n" "outbound rule.\nAn inbound rule allows the security group to receive \n" "traffic:\n* Either from a specific IP range (`IpRange` parameter) on a specific \n" "port range (`FromPortRange` and `ToPortRange` parameters) and specific protocol \n" "(`IpProtocol` parameter).\n* Or from another specific security group \n" "(`SecurityGroupAccountIdToLink` and `SecurityGroupNameToLink` \n" "parameters).\n\n(Net only) An outbound rule works similarly but allows the \n" "security group to send traffic rather than receive traffic.\n\nAlternatively, \n" "you can use the `Rules` parameter to add several rules at the same \n" "time.\n\n**[NOTE]**\n* The modifications are effective as quickly as possible, \n" "but a small delay may occur.\n* By default, traffic between two security groups \n" "is allowed through both public and private IPs. To restrict traffic to private \n" "IPs only, contact our Support team at support@outscale.com.\n\nFor more \n" "information, see [About Security Group \n" "Rules](https://docs.outscale.com/en/userguide/About-Security-Group-Rules.html).\n" "\nRequired Argument: SecurityGroupId, Flow \n" , @@ -661,7 +704,7 @@ static const char *calls_descriptions[] = { , "Usage: oapi-cli CreateLoadBalancerTags --LoadBalancerNames=loadbalancernames --Tags=tags [OPTIONS]\n" "Adds one or more tags to the specified load balancers.\nIf a tag with the same \n" "key already exists for the load balancer, the tag value is replaced.\nFor more \n" "information, see [About \n" "Tags](https://docs.outscale.com/en/userguide/About-Tags.html).\n" "\nRequired Argument: LoadBalancerNames, Tags \n" , - "Usage: oapi-cli CreateLoadBalancerPolicy --PolicyType=policytype --LoadBalancerName=loadbalancername --PolicyName=policyname [OPTIONS]\n" "Creates a stickiness policy with sticky session lifetimes defined by the \n" "browser lifetime.\nThe created policy can be used with HTTP or HTTPS listeners \n" "only.\nIf this policy is implemented by a load balancer, this load balancer \n" "uses this cookie in all incoming requests to direct them to the specified \n" "back-end server virtual machine (VM). If this cookie is not present, the load \n" "balancer sends the request to any other server according to its load-balancing \n" "algorithm.\n\nYou can also create a stickiness policy with sticky session \n" "lifetimes following the lifetime of an application-generated cookie.\nUnlike \n" "the other type of stickiness policy, the lifetime of the special Load Balancer \n" "Unit (LBU) cookie follows the lifetime of the application-generated cookie \n" "specified in the policy configuration. The load balancer inserts a new \n" "stickiness cookie only when the application response includes a new application \n" "cookie.\nThe session stops being sticky if the application cookie is removed or \n" "expires, until a new application cookie is issued.\nFor more information, see \n" "[About Load \n" "Balancers](https://docs.outscale.com/en/userguide/About-Load-Balancers.html).\n" "\nRequired Argument: PolicyType, LoadBalancerName, PolicyName \n" + "Usage: oapi-cli CreateLoadBalancerPolicy --PolicyType=policytype --LoadBalancerName=loadbalancername --PolicyName=policyname [OPTIONS]\n" "Creates a stickiness policy with sticky session lifetimes defined by the \n" "browser lifetime.\nThe created policy can be used with HTTP or HTTPS listeners \n" "only.\nIf this policy is implemented by a load balancer, this load balancer \n" "uses this cookie in all incoming requests to direct them to the specified \n" "backend server virtual machine (VM). If this cookie is not present, the load \n" "balancer sends the request to any other server according to its load-balancing \n" "algorithm.\n\nYou can also create a stickiness policy with sticky session \n" "lifetimes following the lifetime of an application-generated cookie.\nUnlike \n" "the other type of stickiness policy, the lifetime of the special Load Balancer \n" "Unit (LBU) cookie follows the lifetime of the application-generated cookie \n" "specified in the policy configuration. The load balancer inserts a new \n" "stickiness cookie only when the application response includes a new application \n" "cookie.\nThe session stops being sticky if the application cookie is removed or \n" "expires, until a new application cookie is issued.\nFor more information, see \n" "[About Load \n" "Balancers](https://docs.outscale.com/en/userguide/About-Load-Balancers.html).\n" "\nRequired Argument: PolicyType, LoadBalancerName, PolicyName \n" , "Usage: oapi-cli CreateLoadBalancerListeners --Listeners=listeners --LoadBalancerName=loadbalancername [OPTIONS]\n" "Creates one or more listeners for a specified load balancer.\nFor more \n" "information, see [About Load \n" "Balancers](https://docs.outscale.com/en/userguide/About-Load-Balancers.html).\n" "\nRequired Argument: Listeners, LoadBalancerName \n" , @@ -673,7 +716,7 @@ static const char *calls_descriptions[] = { , "Usage: oapi-cli CreateInternetService [OPTIONS]\n" "Creates an Internet service you can use with a Net.\nAn Internet service \n" "enables your virtual machines (VMs) launched in a Net to connect to the \n" "Internet. By default, a Net includes an Internet service, and each Subnet is \n" "public. Every VM launched within a default Subnet has a private IP and a public \n" "IP.\nFor more information, see [About Internet \n" "Services](https://docs.outscale.com/en/userguide/About-Internet-Services.html).\n" "\nRequired Argument: \n" , - "Usage: oapi-cli CreateImageExportTask --OsuExport=osuexport --ImageId=imageid [OPTIONS]\n" "Exports an Outscale machine image (OMI) to an OUTSCALE Object Storage (OOS) \n" "bucket.\nThis action enables you to copy an OMI between accounts in different \n" "Regions. To copy an OMI in the same Region, you can also use the \n" "[CreateImage](#createimage) method.\nThe copy of the OMI belongs to you and is \n" "independent from the source OMI.\n\n**[IMPORTANT]**\nYou cannot export a shared \n" "or public OMI, as they do not belong to you. To do so, you must first copy it \n" "to your account. The copy then belongs to you and you can export it.\nFor more \n" "information, see [About \n" "OMIs](https://docs.outscale.com/en/userguide/About-OMIs.html).\n" "\nRequired Argument: OsuExport, ImageId \n" + "Usage: oapi-cli CreateImageExportTask --OsuExport=osuexport --ImageId=imageid [OPTIONS]\n" "Exports an OUTSCALE machine image (OMI) to an OUTSCALE Object Storage (OOS) \n" "bucket.\nThis action enables you to copy an OMI between accounts in different \n" "Regions. To copy an OMI in the same Region, you can also use the \n" "[CreateImage](#createimage) method.\nThe copy of the OMI belongs to you and is \n" "independent from the source OMI.\n\n**[IMPORTANT]**\nYou cannot export a shared \n" "or public OMI, as they do not belong to you. To do so, you must first copy it \n" "to your account. The copy then belongs to you and you can export it.\nFor more \n" "information, see [About \n" "OMIs](https://docs.outscale.com/en/userguide/About-OMIs.html).\n" "\nRequired Argument: OsuExport, ImageId \n" , "Usage: oapi-cli CreateImage [OPTIONS]\n" "Creates an OUTSCALE machine image (OMI).\nYou can use this method in different \n" "ways:\n* **Creating from a VM**: You create an OMI from one of your virtual \n" "machines (VMs).
\n* **Copying an OMI**: You copy an existing OMI. The source \n" "OMI can be one of your own OMIs, or an OMI owned by another account that has \n" "granted you permission via the [UpdateImage](#updateimage) method.
\n* \n" "**Registering from a snapshot**: You register an OMI from an existing snapshot. \n" "The source snapshot can be one of your own snapshots, or a snapshot owned by \n" "another account that has granted you permission via the \n" "[UpdateSnapshot](#updatesnapshot) method.
\n* **Registering from a bucket by \n" "using a manifest file**: You register an OMI from the manifest file of an OMI \n" "that was exported to an OUTSCALE Object Storage (OOS) bucket. First, the owner \n" "of the source OMI must export it to the bucket by using the \n" "[CreateImageExportTask](#createimageexporttask) method. Then, they must grant \n" "you permission to read the manifest file via a pre-signed URL or Access Control \n" "Lists. For more information, see [Managing Access to Your Buckets and \n" "Objects](https://docs.outscale.com/en/userguide/Managing-Access-to-Your-Buckets-\n" "and-Objects.html).\n* **Registering from a bucket without using a manifest \n" "file**: This is similar to the previous case but you manually specify all the \n" "information that would be in a manifest file instead of using a manifest \n" "file.\n\n**[TIP]**\nRegistering from a bucket enables you to copy an OMI across \n" "Regions.\n\nFor more information, see [About \n" "OMIs](https://docs.outscale.com/en/userguide/About-OMIs.html).\n" "\nRequired Argument: \n" , @@ -698,6 +741,8 @@ static const char *calls_descriptions[] = { "Usage: oapi-cli CreateAccessKey [OPTIONS]\n" "Creates an access key for either your root account or an EIM user. The new key \n" "is automatically set to `ACTIVE`.\nFor more information, see [About Access \n" "Keys](https://docs.outscale.com/en/userguide/About-Access-Keys.html).\n" "\nRequired Argument: \n" , "Usage: oapi-cli CheckAuthentication --Login=login --Password=password [OPTIONS]\n" "Validates the authenticity of the account.\n" "\nRequired Argument: Login, Password \n" +, + "Usage: oapi-cli AddUserToUserGroup --UserGroupName=usergroupname --UserName=username [OPTIONS]\n" "Adds a user to a specified group.\n" "\nRequired Argument: UserGroupName, UserName \n" , "Usage: oapi-cli AcceptNetPeering --NetPeeringId=netpeeringid [OPTIONS]\n" "Accepts a Net peering request.\nTo accept this request, you must be the owner \n" "of the peer Net. If you do not accept the request within 7 days, the state of \n" "the Net peering becomes `expired`.\n\n**[NOTE]**\nA peering connection between \n" "two Nets works both ways. Therefore, when an A-to-B peering connection is \n" "accepted, any pending B-to-A peering connection is automatically rejected as \n" "redundant.\n" "\nRequired Argument: NetPeeringId \n" , @@ -714,11 +759,53 @@ static const char *calls_args_descriptions[] = { " The ID of the virtual gateway.\n" "VpnConnectionId: string\n" " The ID of the VPN connection you want to modify.\n" -"VpnOptions: ref VpnOptionsToUpdate\n" +"VpnOptions: ref VpnOptions\n" " Information about the VPN options.\n" - " -Phase2Options: ref Phase2OptionsToUpdate\n" + " -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" + " 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" " Information about Phase 2 of the Internet Key Exchange (IKE) \n" - " negotiation. \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" @@ -856,6 +943,18 @@ static const char *calls_args_descriptions[] = { "DryRun: bool\n" " If true, checks whether you have the required permissions to perform \n" " 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" + " A new name for the user group.\n" +"Path: string\n" + " The path to the group. If not specified, it is set to a slash (`/`).\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" " A new path for the EIM user.\n" "NewUserName: string\n" @@ -1058,8 +1157,8 @@ static const char *calls_args_descriptions[] = { " 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" + " 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" @@ -1078,7 +1177,9 @@ static const char *calls_args_descriptions[] = { " This path pattern supports maximum three wildcards, and must not \n" " contain any special characters except [_-.$/~\"'@:+?].\n" , - "DryRun: bool\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" @@ -1156,7 +1257,7 @@ static const char *calls_args_descriptions[] = { " If true, checks whether you have the required permissions to perform \n" " the action.\n" "IpRanges: array string\n" - " One or more IP addresses or CIDR blocks (for example, `192.0.2.0/16`).\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" @@ -1287,16 +1388,27 @@ static const char *calls_args_descriptions[] = { " 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" + " The name of the group you want to unlink the policy from.\n" , "BackendIps: array string\n" - " One or more public IPs of back-end VMs.\n" + " One or more public IPs of backend VMs.\n" "BackendVmIds: array string\n" - " One or more IDs of back-end VMs.\n" + " One or more IDs of backend VMs.\n" "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" + " If true, checks whether you have the required permissions to perform \n" " the action.\n" "LoadBalancerName: string\n" - " The name of the load balancer.\n" + " The name of the load balancer.\n" , "DryRun: bool\n" " If true, checks whether you have the required permissions to perform \n" @@ -1353,12 +1465,24 @@ static const char *calls_args_descriptions[] = { "DryRun: bool\n" " If true, checks whether you have the required permissions to perform \n" " the action.\n" +"UserGroupName: string\n" + " The name of the group you want to remove the user from.\n" +"UserGroupPath: string\n" + " The path to the group. If not specified, it is set to a slash (`/`).\n" +"UserName: string\n" + " The name of the user you want to remove from the group.\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" " The ID of the Net peering you want to reject.\n" , "BackendVmIds: array string\n" - " One or more IDs of back-end VMs.\nSpecifying the same ID several times \n" - " has no effect as each back-end VM has equal weight.\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" @@ -1480,9 +1604,9 @@ static const char *calls_args_descriptions[] = { " -MaintenanceEventDescriptions: array string\n" " The description of the scheduled event.\n" " -MaintenanceEventsNotAfter: array string\n" - " The latest time the event can end.\n" + " The latest date and time (UTC) the event can end.\n" " -MaintenanceEventsNotBefore: array string\n" - " The earliest time the event can start.\n" + " The earliest date and time (UTC) the event can start.\n" " -SubregionNames: array string\n" " The names of the Subregions of the VMs.\n" " -VmIds: array string\n" @@ -1491,9 +1615,15 @@ static const char *calls_args_descriptions[] = { " 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" - " One or more IDs of back-end VMs.\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" @@ -1551,7 +1681,8 @@ static const char *calls_args_descriptions[] = { " -NicLinkNicDeviceNumbers: array integer\n" " The device numbers the NICs are attached to.\n" " -NicLinkNicLinkNicDates: array string\n" - " The dates and time when the NICs were attached to the VMs.\n" + " The dates and times (UTC) when the NICs were attached to the \n" + " VMs.\n" " -NicLinkNicLinkNicIds: array string\n" " The IDs of the NIC attachments.\n" " -NicLinkNicStates: array string\n" @@ -1697,12 +1828,18 @@ static const char *calls_args_descriptions[] = { " The maximum number of ephemeral storage disks.\n" " -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" - " One or more filters.\n" + " null\n" " -CpuCores: array integer\n" " The number of vCores.\n" " -CpuGenerations: array string\n" @@ -1802,6 +1939,61 @@ static const char *calls_args_descriptions[] = { "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 user.\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" + " 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" + " The IDs of the user groups.\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" + " The name of the policy.\n" +"UserGroupName: string\n" + " The name of the group.\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" + " 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" + " The name of the group.\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" + " The path to the group. If not specified, it is set to a slash (`/`).\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" " One or more filters.\n" " -Keys: array string\n" @@ -1823,6 +2015,12 @@ static const char *calls_args_descriptions[] = { " 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" @@ -1835,6 +2033,12 @@ static const char *calls_args_descriptions[] = { " The states of the Subregions.\n" " -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" @@ -1864,6 +2068,12 @@ static const char *calls_args_descriptions[] = { " 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" @@ -1889,8 +2099,8 @@ static const char *calls_args_descriptions[] = { " -SnapshotIds: array string\n" " The IDs of the snapshots.\n" " -States: array string\n" - " The states of the snapshots (`in-queue` \\| `completed` \\| \n" - " `error`).\n" + " The states of the snapshots (`in-queue` \\| `pending` \\| \n" + " `completed` \\| `error` \\| `deleting`).\n" " -TagKeys: array string\n" " The keys of the tags associated with the snapshots.\n" " -TagValues: array string\n" @@ -1908,6 +2118,12 @@ static const char *calls_args_descriptions[] = { " -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" @@ -1916,6 +2132,12 @@ static const char *calls_args_descriptions[] = { " One or more filters.\n" " -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" @@ -1988,6 +2210,12 @@ static const char *calls_args_descriptions[] = { " 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" " The ID of the access key.\n" @@ -2063,6 +2291,12 @@ static const char *calls_args_descriptions[] = { " `global` if they are not.\n" " -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" @@ -2106,6 +2340,12 @@ static const char *calls_args_descriptions[] = { "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" @@ -2118,6 +2358,12 @@ static const char *calls_args_descriptions[] = { " One or more filters.\n" " -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" " The item starting the list of policies requested.\n" @@ -2128,7 +2374,7 @@ static const char *calls_args_descriptions[] = { " .html).\n" "ResultsPerPage: int\n" " The maximum number of items that can be returned in a single response \n" - " (by default, 100).\n" + " (by default, `100`).\n" , "PolicyOrn: string\n" " The OUTSCALE Resource Name (ORN) of the policy. For more information, \n" @@ -2152,15 +2398,15 @@ static const char *calls_args_descriptions[] = { " -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, set to a \n" - " slash (`/`) by default.\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" " The scope to filter policies (`OWS` \\| `LOCAL`).\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" + " (by default, `100`).\n" , "DryRun: bool\n" " If true, checks whether you have the required permissions to perform \n" @@ -2192,6 +2438,8 @@ static const char *calls_args_descriptions[] = { " -LinkPublicIpLinkPublicIpIds: array string\n" " The association IDs returned when the public IPs were \n" " associated with the NICs.\n" + " -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" @@ -2261,6 +2509,12 @@ static const char *calls_args_descriptions[] = { " 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" @@ -2348,12 +2602,21 @@ static const char *calls_args_descriptions[] = { " The IDs of the services.\n" " -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" " One or more filters.\n" + " -ClientTokens: array string\n" + " The idempotency tokens provided when creating the NAT \n" + " services.\n" " -NatServiceIds: array string\n" " The IDs of the NAT services.\n" " -NetIds: array string\n" @@ -2382,6 +2645,30 @@ static const char *calls_args_descriptions[] = { "DryRun: bool\n" " If true, checks whether you have the required permissions to perform \n" " 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" + " The IDs of the user groups.\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" + " 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" @@ -2411,13 +2698,13 @@ static const char *calls_args_descriptions[] = { "Filters: ref ReadLinkedPoliciesFilters\n" " One or more filters.\n" " -PathPrefix: string\n" - " The path prefix of the policies, set to a slash (`/`) by \n" - " default.\n" + " The path prefix of the policies. If not specified, it is set \n" + " to a slash (`/`).\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" + " (by default, `100`).\n" "UserName: string\n" " The name of the user the policies are linked to.\n" , @@ -2434,6 +2721,12 @@ static const char *calls_args_descriptions[] = { " 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" @@ -2457,6 +2750,12 @@ static const char *calls_args_descriptions[] = { " 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" @@ -2532,6 +2831,12 @@ static const char *calls_args_descriptions[] = { " One or more filters.\n" " -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" @@ -2568,6 +2873,12 @@ static const char *calls_args_descriptions[] = { " One or more filters.\n" " -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" @@ -2578,6 +2889,12 @@ static const char *calls_args_descriptions[] = { " The IDs of the DirectLinks.\n" " -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" @@ -2630,6 +2947,12 @@ static const char *calls_args_descriptions[] = { " -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" @@ -2637,7 +2960,8 @@ static const char *calls_args_descriptions[] = { "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`).\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" @@ -2647,12 +2971,14 @@ static const char *calls_args_descriptions[] = { "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 the \n" - " Region's catalog.\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`).\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" @@ -2687,6 +3013,12 @@ static const char *calls_args_descriptions[] = { " 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" @@ -2822,8 +3154,7 @@ static const char *calls_args_descriptions[] = { " -Descriptions: array string\n" " One or more descriptions of API access rules.\n" " -IpRanges: array string\n" - " One or more IP addresses or CIDR blocks (for example, \n" - " `192.0.2.0/16`).\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" @@ -2851,6 +3182,21 @@ static const char *calls_args_descriptions[] = { "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" + " The name of the policy.\n" +"UserGroupName: string\n" + " The name of the group.\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" @@ -2945,16 +3291,27 @@ static const char *calls_args_descriptions[] = { " The ID of the NIC you want to attach.\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" + " The name of the group you want to link the policy to.\n" , "BackendIps: array string\n" - " One or more public IPs of back-end VMs.\n" + " One or more public IPs of backend VMs.\n" "BackendVmIds: array string\n" - " One or more IDs of back-end VMs.\n" + " One or more IDs of backend VMs.\n" "DryRun: bool\n" - " If true, checks whether you have the required permissions to perform \n" + " If true, checks whether you have the required permissions to perform \n" " the action.\n" "LoadBalancerName: string\n" - " The name of the load balancer. \n" + " The name of the load balancer.\n" , "DryRun: bool\n" " If true, checks whether you have the required permissions to perform \n" @@ -2973,7 +3330,7 @@ static const char *calls_args_descriptions[] = { " The ID of the VM you want to attach the fGPU to.\n" , "BackendVmIds: array string\n" - " One or more IDs of back-end VMs.\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" @@ -3011,7 +3368,7 @@ static const char *calls_args_descriptions[] = { " If true, checks whether you have the required permissions to perform \n" " the action.\n" "VmTemplateId: string\n" - " The ID of the VM template you want to delete. \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" @@ -3028,6 +3385,26 @@ static const char *calls_args_descriptions[] = { "DryRun: bool\n" " If true, checks whether you have the required permissions to perform \n" " the action.\n" +"PolicyName: string\n" + " The name of the policy document you want to delete.\n" +"UserGroupName: string\n" + " The name of the group.\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" + " If true, forces the deletion of the user group even if it is not empty.\n" +"Path: string\n" + " The path to the group. If not specified, it is set to a slash (`/`).\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" " The name of the EIM user you want to delete.\n" , @@ -3368,7 +3745,7 @@ static const char *calls_args_descriptions[] = { "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" + " not created from a snapshot (`SnapshotId` unspecified).\n" "SnapshotId: string\n" " The ID of the snapshot from which you want to create the volume.\n" "SubregionName: string\n" @@ -3535,7 +3912,7 @@ static const char *calls_args_descriptions[] = { "CpuGeneration: string\n" " The processor generation to use for each VM (for example, `v4`).\n" "CpuPerformance: string\n" - " The performance of the VMs (`medium` \\| `high` \\| `highest`). \n" + " The performance of the VMs (`medium` \\| `high` \\| `highest`).\n" "Description: string\n" " A description for the VM template.\n" "DryRun: bool\n" @@ -3598,15 +3975,23 @@ static const char *calls_args_descriptions[] = { "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 group. If not specified, it is set to a slash (`/`).\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" + " 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 you want to create. This user name must \n" - " contain between 1 and 64 alphanumeric characters and/or pluses (+), \n" - " equals (=), commas (,), periods (.), at signs (@), dashes (-), or \n" - " underscores (_).\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" @@ -3691,12 +4076,12 @@ static const char *calls_args_descriptions[] = { , "Body: string\n" " The PEM-encoded X509 certificate.With OSC CLI, use the following syntax \n" - " to make sure your CA file is correctly parsed: `--CaPem=\"$(cat \n" - " FILENAME)\"`.\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 CA file is correctly parsed: \n" - " `--CaPem=\"$(cat FILENAME)\"`.\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" @@ -3708,8 +4093,8 @@ static const char *calls_args_descriptions[] = { " 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 CA file is correctly parsed: \n" - " `--CaPem=\"$(cat FILENAME)\"`.\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" @@ -3915,7 +4300,9 @@ static const char *calls_args_descriptions[] = { " `dedicated group ID`: if it can be launched in a dedicated group on \n" " single-tenant hardware.\n" , - "DryRun: bool\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" @@ -3965,10 +4352,10 @@ static const char *calls_args_descriptions[] = { " One or more listeners for the load balancer.\n" " Information about the listener to create.\n" " -BackendPort: int\n" - " The port on which the back-end VM is listening (between `1` \n" - " and `65535`, both included).\n" + " The port on which the backend VM is listening (between `1` and \n" + " `65535`, both included).\n" " -BackendProtocol: string\n" - " The protocol for routing traffic to back-end VMs (`HTTP` \\| \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" @@ -3991,10 +4378,10 @@ static const char *calls_args_descriptions[] = { " One or more listeners to create.\n" " Information about the listener to create.\n" " -BackendPort: int\n" - " The port on which the back-end VM is listening (between `1` \n" - " and `65535`, both included).\n" + " The port on which the backend VM is listening (between `1` and \n" + " `65535`, both included).\n" " -BackendProtocol: string\n" - " The protocol for routing traffic to back-end VMs (`HTTP` \\| \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" @@ -4057,7 +4444,7 @@ static const char *calls_args_descriptions[] = { " 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" + " [-.?].\n" " -ListenerRuleName: string\n" " A human-readable name for the listener rule.\n" " -PathPattern: string\n" @@ -4305,7 +4692,7 @@ static const char *calls_args_descriptions[] = { " the action.\n" , "CaIds: array string\n" - " One or more IDs of Client Certificate Authorities (CAs).\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" @@ -4315,7 +4702,7 @@ static const char *calls_args_descriptions[] = { " If true, checks whether you have the required permissions to perform \n" " the action.\n" "IpRanges: array string\n" - " One or more IP addresses or CIDR blocks (for example, `192.0.2.0/16`).\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" @@ -4377,6 +4764,18 @@ static const char *calls_args_descriptions[] = { "DryRun: bool\n" " If true, checks whether you have the required permissions to perform \n" " the action.\n" +"UserGroupName: string\n" + " The name of the group you want to add a user to.\n" +"UserGroupPath: string\n" + " The path to the group. If not specified, it is set to a slash (`/`).\n" +"UserName: string\n" + " The name of the user you want to add to the group.\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" " The ID of the Net peering you want to accept.\n" , @@ -4803,6 +5202,7 @@ static int filters_snapshot_setter(struct filters_snapshot *args, struct osc_str static int filters_subnet_setter(struct filters_subnet *args, struct osc_str *data); static int filters_subregion_setter(struct filters_subregion *args, struct osc_str *data); static int filters_tag_setter(struct filters_tag *args, struct osc_str *data); +static int filters_user_group_setter(struct filters_user_group *args, struct osc_str *data); static int filters_virtual_gateway_setter(struct filters_virtual_gateway *args, struct osc_str *data); static int filters_vm_setter(struct filters_vm *args, struct osc_str *data); static int filters_vm_group_setter(struct filters_vm_group *args, struct osc_str *data); @@ -4816,6 +5216,7 @@ static int flexible_gpu_catalog_setter(struct flexible_gpu_catalog *args, struct static int health_check_setter(struct health_check *args, struct osc_str *data); static int image_setter(struct image *args, struct osc_str *data); static int image_export_task_setter(struct image_export_task *args, struct osc_str *data); +static int inline_policy_setter(struct inline_policy *args, struct osc_str *data); static int internet_service_setter(struct internet_service *args, struct osc_str *data); static int keypair_setter(struct keypair *args, struct osc_str *data); static int keypair_created_setter(struct keypair_created *args, struct osc_str *data); @@ -4855,7 +5256,6 @@ static int permissions_on_resource_setter(struct permissions_on_resource *args, static int permissions_on_resource_creation_setter(struct permissions_on_resource_creation *args, struct osc_str *data); static int phase1_options_setter(struct phase1_options *args, struct osc_str *data); static int phase2_options_setter(struct phase2_options *args, struct osc_str *data); -static int phase2_options_to_update_setter(struct phase2_options_to_update *args, struct osc_str *data); static int placement_setter(struct placement *args, struct osc_str *data); static int policy_setter(struct policy *args, struct osc_str *data); static int policy_version_setter(struct policy_version *args, struct osc_str *data); @@ -4891,6 +5291,7 @@ static int subnet_setter(struct subnet *args, struct osc_str *data); static int subregion_setter(struct subregion *args, struct osc_str *data); static int tag_setter(struct tag *args, struct osc_str *data); static int user_setter(struct user *args, struct osc_str *data); +static int user_group_setter(struct user_group *args, struct osc_str *data); static int vgw_telemetry_setter(struct vgw_telemetry *args, struct osc_str *data); static int virtual_gateway_setter(struct virtual_gateway *args, struct osc_str *data); static int vm_setter(struct vm *args, struct osc_str *data); @@ -4902,7 +5303,6 @@ static int vm_type_setter(struct vm_type *args, struct osc_str *data); static int volume_setter(struct volume *args, struct osc_str *data); static int vpn_connection_setter(struct vpn_connection *args, struct osc_str *data); static int vpn_options_setter(struct vpn_options *args, struct osc_str *data); -static int vpn_options_to_update_setter(struct vpn_options_to_update *args, struct osc_str *data); static int with_setter(struct with *args, struct osc_str *data); static int accepter_net_setter(struct accepter_net *args, struct osc_str *data) { int count_args = 0; @@ -7352,6 +7752,22 @@ static int filters_load_balancer_setter(struct filters_load_balancer *args, stru static int filters_nat_service_setter(struct filters_nat_service *args, struct osc_str *data) { int count_args = 0; int ret = 0; + if (args->client_tokens) { + char **as; + + TRY_APPEND_COL(count_args, data); + STRY(osc_str_append_string(data, "\"ClientTokens\":[" )); + for (as = args->client_tokens; *as; ++as) { + if (as != args->client_tokens) + STRY(osc_str_append_string(data, "," )); + ARG_TO_JSON_STR("", *as); + } + STRY(osc_str_append_string(data, "]" )); + ret += 1; + } else if (args->client_tokens_str) { + ARG_TO_JSON(ClientTokens, string, args->client_tokens_str); + ret += 1; + } if (args->nat_service_ids) { char **as; @@ -8056,6 +8472,22 @@ static int filters_nic_setter(struct filters_nic *args, struct osc_str *data) { ARG_TO_JSON(LinkPublicIpLinkPublicIpIds, string, args->link_public_ip_link_public_ip_ids_str); ret += 1; } + if (args->link_public_ip_public_dns_names) { + char **as; + + TRY_APPEND_COL(count_args, data); + STRY(osc_str_append_string(data, "\"LinkPublicIpPublicDnsNames\":[" )); + for (as = args->link_public_ip_public_dns_names; *as; ++as) { + if (as != args->link_public_ip_public_dns_names) + STRY(osc_str_append_string(data, "," )); + ARG_TO_JSON_STR("", *as); + } + STRY(osc_str_append_string(data, "]" )); + ret += 1; + } else if (args->link_public_ip_public_dns_names_str) { + ARG_TO_JSON(LinkPublicIpPublicDnsNames, string, args->link_public_ip_public_dns_names_str); + ret += 1; + } if (args->link_public_ip_public_ip_ids) { char **as; @@ -9751,6 +10183,32 @@ static int filters_tag_setter(struct filters_tag *args, struct osc_str *data) { } return !!ret; } +static int filters_user_group_setter(struct filters_user_group *args, struct osc_str *data) { + int count_args = 0; + int ret = 0; + if (args->path_prefix) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"PathPrefix\":", args->path_prefix); + ret += 1; + } + if (args->user_group_ids) { + char **as; + + TRY_APPEND_COL(count_args, data); + STRY(osc_str_append_string(data, "\"UserGroupIds\":[" )); + for (as = args->user_group_ids; *as; ++as) { + if (as != args->user_group_ids) + STRY(osc_str_append_string(data, "," )); + ARG_TO_JSON_STR("", *as); + } + STRY(osc_str_append_string(data, "]" )); + ret += 1; + } else if (args->user_group_ids_str) { + 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) { int count_args = 0; int ret = 0; @@ -12177,6 +12635,21 @@ static int image_export_task_setter(struct image_export_task *args, struct osc_s } return !!ret; } +static int inline_policy_setter(struct inline_policy *args, struct osc_str *data) { + int count_args = 0; + int ret = 0; + if (args->body) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"Body\":", args->body); + ret += 1; + } + if (args->name) { + TRY_APPEND_COL(count_args, 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) { int count_args = 0; int ret = 0; @@ -13009,6 +13482,11 @@ static int maintenance_event_setter(struct maintenance_event *args, struct osc_s static int nat_service_setter(struct nat_service *args, struct osc_str *data) { int count_args = 0; int ret = 0; + if (args->client_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"ClientToken\":", args->client_token); + ret += 1; + } if (args->nat_service_id) { TRY_APPEND_COL(count_args, data); ARG_TO_JSON_STR("\"NatServiceId\":", args->nat_service_id); @@ -13864,16 +14342,6 @@ static int phase2_options_setter(struct phase2_options *args, struct osc_str *da } return !!ret; } -static int phase2_options_to_update_setter(struct phase2_options_to_update *args, struct osc_str *data) { - int count_args = 0; - int ret = 0; - if (args->pre_shared_key) { - TRY_APPEND_COL(count_args, data); - ARG_TO_JSON_STR("\"PreSharedKey\":", args->pre_shared_key); - ret += 1; - } - return !!ret; -} static int placement_setter(struct placement *args, struct osc_str *data) { int count_args = 0; int ret = 0; @@ -14988,6 +15456,16 @@ static int tag_setter(struct tag *args, struct osc_str *data) { static int user_setter(struct user *args, struct osc_str *data) { int count_args = 0; int ret = 0; + if (args->creation_date) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"CreationDate\":", args->creation_date); + ret += 1; + } + if (args->last_modification_date) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"LastModificationDate\":", args->last_modification_date); + ret += 1; + } if (args->path) { TRY_APPEND_COL(count_args, data); ARG_TO_JSON_STR("\"Path\":", args->path); @@ -15005,6 +15483,41 @@ static int user_setter(struct user *args, struct osc_str *data) { } return !!ret; } +static int user_group_setter(struct user_group *args, struct osc_str *data) { + int count_args = 0; + int ret = 0; + if (args->creation_date) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"CreationDate\":", args->creation_date); + ret += 1; + } + if (args->last_modification_date) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"LastModificationDate\":", args->last_modification_date); + ret += 1; + } + if (args->name) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"Name\":", args->name); + ret += 1; + } + if (args->orn) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"Orn\":", args->orn); + ret += 1; + } + if (args->path) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"Path\":", args->path); + ret += 1; + } + if (args->user_group_id) { + TRY_APPEND_COL(count_args, 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) { int count_args = 0; int ret = 0; @@ -15815,26 +16328,6 @@ static int vpn_options_setter(struct vpn_options *args, struct osc_str *data) { } return !!ret; } -static int vpn_options_to_update_setter(struct vpn_options_to_update *args, struct osc_str *data) { - int count_args = 0; - int ret = 0; - if (args->phase2_options_str) { - ARG_TO_JSON(Phase2Options, string, args->phase2_options_str); - ret += 1; - } else if (args->is_set_phase2_options) { - TRY_APPEND_COL(count_args, data); - STRY(osc_str_append_string(data, "\"Phase2Options\": { " )); - STRY(phase2_options_to_update_setter(&args->phase2_options, data) < 0); - STRY(osc_str_append_string(data, "}" )); - ret += 1; - } - if (args->tunnel_inside_ip_range) { - TRY_APPEND_COL(count_args, 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) { int count_args = 0; int ret = 0; @@ -15938,7 +16431,7 @@ static int update_vpn_connection_data(struct osc_update_vpn_connection_arg *arg } else if (args->is_set_vpn_options) { TRY_APPEND_COL(count_args, data); STRY(osc_str_append_string(data, "\"VpnOptions\": { " )); - STRY(vpn_options_to_update_setter(&args->vpn_options, data) < 0); + STRY(vpn_options_setter(&args->vpn_options, data) < 0); STRY(osc_str_append_string(data, "}" )); ret += 1; } @@ -16314,6 +16807,69 @@ int osc_update_vm(struct osc_env *e, struct osc_str *out, struct osc_update_vm_a osc_deinit_str(&data); return res; } +static int update_user_group_data(struct osc_update_user_group_arg *args, struct osc_str *data) +{ + int ret = 0; + int count_args = 0; + + if (!args) + return 0; + osc_str_append_string(data, "{"); + if (args->is_set_dry_run) { + ARG_TO_JSON(DryRun, bool, args->dry_run); + ret += 1; + } + if (args->new_path) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NewPath\":", args->new_path); + ret += 1; + } + if (args->new_user_group_name) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NewUserGroupName\":", args->new_user_group_name); + ret += 1; + } + if (args->path) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"Path\":", args->path); + ret += 1; + } + if (args->user_group_name) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserGroupName\":", args->user_group_name); + ret += 1; + } + osc_str_append_string(data, "}"); + return !!ret; +} + +int osc_update_user_group(struct osc_env *e, struct osc_str *out, struct osc_update_user_group_arg *args) +{ + CURLcode res = CURLE_OUT_OF_MEMORY; + struct osc_str data; + struct osc_str end_call; + int r; + + osc_init_str(&data); + osc_init_str(&end_call); + r = update_user_group_data(args, &data); + if (r < 0) + goto out; + + osc_str_append_string(&end_call, e->endpoint.buf); + osc_str_append_string(&end_call, "/api/v1/UpdateUserGroup"); + curl_easy_setopt(e->c, CURLOPT_URL, end_call.buf); + curl_easy_setopt(e->c, CURLOPT_POSTFIELDS, r ? data.buf : ""); + curl_easy_setopt(e->c, CURLOPT_WRITEDATA, out); + if (e->flag & OSC_VERBOSE_MODE) { + printf("\n%s\n\n", data.buf); + } + res = curl_easy_perform(e->c); +out: + osc_deinit_str(&end_call); + osc_deinit_str(&data); + return res; +} static int update_user_data(struct osc_update_user_arg *args, struct osc_str *data) { int ret = 0; @@ -17124,6 +17680,11 @@ static int update_image_data(struct osc_update_image_arg *args, struct osc_str if (!args) return 0; osc_str_append_string(data, "{"); + if (args->description) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"Description\":", args->description); + ret += 1; + } if (args->is_set_dry_run) { ARG_TO_JSON(DryRun, bool, args->dry_run); ret += 1; @@ -18089,6 +18650,59 @@ int osc_unlink_nic(struct osc_env *e, struct osc_str *out, struct osc_unlink_nic osc_deinit_str(&data); return res; } +static int unlink_managed_policy_from_user_group_data(struct osc_unlink_managed_policy_from_user_group_arg *args, struct osc_str *data) +{ + int ret = 0; + int count_args = 0; + + if (!args) + return 0; + osc_str_append_string(data, "{"); + if (args->is_set_dry_run) { + ARG_TO_JSON(DryRun, bool, args->dry_run); + ret += 1; + } + if (args->policy_orn) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"PolicyOrn\":", args->policy_orn); + ret += 1; + } + if (args->user_group_name) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserGroupName\":", args->user_group_name); + ret += 1; + } + osc_str_append_string(data, "}"); + return !!ret; +} + +int osc_unlink_managed_policy_from_user_group(struct osc_env *e, struct osc_str *out, struct osc_unlink_managed_policy_from_user_group_arg *args) +{ + CURLcode res = CURLE_OUT_OF_MEMORY; + struct osc_str data; + struct osc_str end_call; + int r; + + osc_init_str(&data); + osc_init_str(&end_call); + r = unlink_managed_policy_from_user_group_data(args, &data); + if (r < 0) + goto out; + + osc_str_append_string(&end_call, e->endpoint.buf); + osc_str_append_string(&end_call, "/api/v1/UnlinkManagedPolicyFromUserGroup"); + curl_easy_setopt(e->c, CURLOPT_URL, end_call.buf); + curl_easy_setopt(e->c, CURLOPT_POSTFIELDS, r ? data.buf : ""); + curl_easy_setopt(e->c, CURLOPT_WRITEDATA, out); + if (e->flag & OSC_VERBOSE_MODE) { + printf("\n%s\n\n", data.buf); + } + res = curl_easy_perform(e->c); +out: + osc_deinit_str(&end_call); + osc_deinit_str(&data); + return res; +} static int unlink_load_balancer_backend_machines_data(struct osc_unlink_load_balancer_backend_machines_arg *args, struct osc_str *data) { int ret = 0; @@ -18545,7 +19159,7 @@ int osc_scale_down_vm_group(struct osc_env *e, struct osc_str *out, struct osc_s osc_deinit_str(&data); return res; } -static int reject_net_peering_data(struct osc_reject_net_peering_arg *args, struct osc_str *data) +static int remove_user_from_user_group_data(struct osc_remove_user_from_user_group_arg *args, struct osc_str *data) { int ret = 0; int count_args = 0; @@ -18557,18 +19171,81 @@ static int reject_net_peering_data(struct osc_reject_net_peering_arg *args, str ARG_TO_JSON(DryRun, bool, args->dry_run); ret += 1; } - if (args->net_peering_id) { + if (args->user_group_name) { TRY_APPEND_COL(count_args, data); - ARG_TO_JSON_STR("\"NetPeeringId\":", args->net_peering_id); + ARG_TO_JSON_STR("\"UserGroupName\":", args->user_group_name); ret += 1; } - osc_str_append_string(data, "}"); - return !!ret; -} - -int osc_reject_net_peering(struct osc_env *e, struct osc_str *out, struct osc_reject_net_peering_arg *args) -{ - CURLcode res = CURLE_OUT_OF_MEMORY; + if (args->user_group_path) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserGroupPath\":", args->user_group_path); + ret += 1; + } + if (args->user_name) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserName\":", args->user_name); + ret += 1; + } + if (args->user_path) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserPath\":", args->user_path); + ret += 1; + } + osc_str_append_string(data, "}"); + return !!ret; +} + +int osc_remove_user_from_user_group(struct osc_env *e, struct osc_str *out, struct osc_remove_user_from_user_group_arg *args) +{ + CURLcode res = CURLE_OUT_OF_MEMORY; + struct osc_str data; + struct osc_str end_call; + int r; + + osc_init_str(&data); + osc_init_str(&end_call); + r = remove_user_from_user_group_data(args, &data); + if (r < 0) + goto out; + + osc_str_append_string(&end_call, e->endpoint.buf); + osc_str_append_string(&end_call, "/api/v1/RemoveUserFromUserGroup"); + curl_easy_setopt(e->c, CURLOPT_URL, end_call.buf); + curl_easy_setopt(e->c, CURLOPT_POSTFIELDS, r ? data.buf : ""); + curl_easy_setopt(e->c, CURLOPT_WRITEDATA, out); + if (e->flag & OSC_VERBOSE_MODE) { + printf("\n%s\n\n", data.buf); + } + res = curl_easy_perform(e->c); +out: + osc_deinit_str(&end_call); + osc_deinit_str(&data); + return res; +} +static int reject_net_peering_data(struct osc_reject_net_peering_arg *args, struct osc_str *data) +{ + int ret = 0; + int count_args = 0; + + if (!args) + return 0; + osc_str_append_string(data, "{"); + if (args->is_set_dry_run) { + ARG_TO_JSON(DryRun, bool, args->dry_run); + ret += 1; + } + if (args->net_peering_id) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NetPeeringId\":", args->net_peering_id); + ret += 1; + } + osc_str_append_string(data, "}"); + return !!ret; +} + +int osc_reject_net_peering(struct osc_env *e, struct osc_str *out, struct osc_reject_net_peering_arg *args) +{ + CURLcode res = CURLE_OUT_OF_MEMORY; struct osc_str data; struct osc_str end_call; int r; @@ -18866,6 +19543,15 @@ static int read_vms_state_data(struct osc_read_vms_state_arg *args, struct osc_ STRY(osc_str_append_string(data, "}" )); ret += 1; } + if (args->next_page_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NextPageToken\":", args->next_page_token); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } osc_str_append_string(data, "}"); return !!ret; } @@ -19045,6 +19731,15 @@ static int read_vm_types_data(struct osc_read_vm_types_arg *args, struct osc_st STRY(osc_str_append_string(data, "}" )); ret += 1; } + if (args->next_page_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NextPageToken\":", args->next_page_token); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } osc_str_append_string(data, "}"); return !!ret; } @@ -19287,6 +19982,292 @@ int osc_read_users(struct osc_env *e, struct osc_str *out, struct osc_read_users osc_deinit_str(&data); return res; } +static int read_user_groups_per_user_data(struct osc_read_user_groups_per_user_arg *args, struct osc_str *data) +{ + int ret = 0; + int count_args = 0; + + if (!args) + return 0; + osc_str_append_string(data, "{"); + if (args->is_set_dry_run) { + ARG_TO_JSON(DryRun, bool, args->dry_run); + ret += 1; + } + if (args->user_name) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserName\":", args->user_name); + ret += 1; + } + if (args->user_path) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserPath\":", args->user_path); + ret += 1; + } + osc_str_append_string(data, "}"); + return !!ret; +} + +int osc_read_user_groups_per_user(struct osc_env *e, struct osc_str *out, struct osc_read_user_groups_per_user_arg *args) +{ + CURLcode res = CURLE_OUT_OF_MEMORY; + struct osc_str data; + struct osc_str end_call; + int r; + + osc_init_str(&data); + osc_init_str(&end_call); + r = read_user_groups_per_user_data(args, &data); + if (r < 0) + goto out; + + osc_str_append_string(&end_call, e->endpoint.buf); + osc_str_append_string(&end_call, "/api/v1/ReadUserGroupsPerUser"); + curl_easy_setopt(e->c, CURLOPT_URL, end_call.buf); + curl_easy_setopt(e->c, CURLOPT_POSTFIELDS, r ? data.buf : ""); + curl_easy_setopt(e->c, CURLOPT_WRITEDATA, out); + if (e->flag & OSC_VERBOSE_MODE) { + printf("\n%s\n\n", data.buf); + } + res = curl_easy_perform(e->c); +out: + osc_deinit_str(&end_call); + osc_deinit_str(&data); + return res; +} +static int read_user_groups_data(struct osc_read_user_groups_arg *args, struct osc_str *data) +{ + int ret = 0; + int count_args = 0; + + if (!args) + return 0; + osc_str_append_string(data, "{"); + if (args->is_set_dry_run) { + ARG_TO_JSON(DryRun, bool, args->dry_run); + ret += 1; + } + if (args->filters_str) { + ARG_TO_JSON(Filters, string, args->filters_str); + ret += 1; + } else if (args->is_set_filters) { + TRY_APPEND_COL(count_args, data); + STRY(osc_str_append_string(data, "\"Filters\": { " )); + STRY(filters_user_group_setter(&args->filters, data) < 0); + STRY(osc_str_append_string(data, "}" )); + ret += 1; + } + if (args->is_set_first_item || args->first_item) { + ARG_TO_JSON(FirstItem, int, args->first_item); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } + osc_str_append_string(data, "}"); + return !!ret; +} + +int osc_read_user_groups(struct osc_env *e, struct osc_str *out, struct osc_read_user_groups_arg *args) +{ + CURLcode res = CURLE_OUT_OF_MEMORY; + struct osc_str data; + struct osc_str end_call; + int r; + + osc_init_str(&data); + osc_init_str(&end_call); + r = read_user_groups_data(args, &data); + if (r < 0) + goto out; + + osc_str_append_string(&end_call, e->endpoint.buf); + osc_str_append_string(&end_call, "/api/v1/ReadUserGroups"); + curl_easy_setopt(e->c, CURLOPT_URL, end_call.buf); + curl_easy_setopt(e->c, CURLOPT_POSTFIELDS, r ? data.buf : ""); + curl_easy_setopt(e->c, CURLOPT_WRITEDATA, out); + if (e->flag & OSC_VERBOSE_MODE) { + printf("\n%s\n\n", data.buf); + } + res = curl_easy_perform(e->c); +out: + osc_deinit_str(&end_call); + osc_deinit_str(&data); + return res; +} +static int read_user_group_policy_data(struct osc_read_user_group_policy_arg *args, struct osc_str *data) +{ + int ret = 0; + int count_args = 0; + + if (!args) + return 0; + osc_str_append_string(data, "{"); + if (args->is_set_dry_run) { + ARG_TO_JSON(DryRun, bool, args->dry_run); + ret += 1; + } + if (args->policy_name) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"PolicyName\":", args->policy_name); + ret += 1; + } + if (args->user_group_name) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserGroupName\":", args->user_group_name); + ret += 1; + } + if (args->user_group_path) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserGroupPath\":", args->user_group_path); + ret += 1; + } + osc_str_append_string(data, "}"); + return !!ret; +} + +int osc_read_user_group_policy(struct osc_env *e, struct osc_str *out, struct osc_read_user_group_policy_arg *args) +{ + CURLcode res = CURLE_OUT_OF_MEMORY; + struct osc_str data; + struct osc_str end_call; + int r; + + osc_init_str(&data); + osc_init_str(&end_call); + r = read_user_group_policy_data(args, &data); + if (r < 0) + goto out; + + osc_str_append_string(&end_call, e->endpoint.buf); + osc_str_append_string(&end_call, "/api/v1/ReadUserGroupPolicy"); + curl_easy_setopt(e->c, CURLOPT_URL, end_call.buf); + curl_easy_setopt(e->c, CURLOPT_POSTFIELDS, r ? data.buf : ""); + curl_easy_setopt(e->c, CURLOPT_WRITEDATA, out); + if (e->flag & OSC_VERBOSE_MODE) { + printf("\n%s\n\n", data.buf); + } + res = curl_easy_perform(e->c); +out: + osc_deinit_str(&end_call); + osc_deinit_str(&data); + return res; +} +static int read_user_group_policies_data(struct osc_read_user_group_policies_arg *args, struct osc_str *data) +{ + int ret = 0; + int count_args = 0; + + if (!args) + return 0; + osc_str_append_string(data, "{"); + if (args->is_set_dry_run) { + ARG_TO_JSON(DryRun, bool, args->dry_run); + ret += 1; + } + if (args->is_set_first_item || args->first_item) { + ARG_TO_JSON(FirstItem, int, args->first_item); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } + if (args->user_group_name) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserGroupName\":", args->user_group_name); + ret += 1; + } + if (args->user_group_path) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserGroupPath\":", args->user_group_path); + ret += 1; + } + osc_str_append_string(data, "}"); + return !!ret; +} + +int osc_read_user_group_policies(struct osc_env *e, struct osc_str *out, struct osc_read_user_group_policies_arg *args) +{ + CURLcode res = CURLE_OUT_OF_MEMORY; + struct osc_str data; + struct osc_str end_call; + int r; + + osc_init_str(&data); + osc_init_str(&end_call); + r = read_user_group_policies_data(args, &data); + if (r < 0) + goto out; + + osc_str_append_string(&end_call, e->endpoint.buf); + osc_str_append_string(&end_call, "/api/v1/ReadUserGroupPolicies"); + curl_easy_setopt(e->c, CURLOPT_URL, end_call.buf); + curl_easy_setopt(e->c, CURLOPT_POSTFIELDS, r ? data.buf : ""); + curl_easy_setopt(e->c, CURLOPT_WRITEDATA, out); + if (e->flag & OSC_VERBOSE_MODE) { + printf("\n%s\n\n", data.buf); + } + res = curl_easy_perform(e->c); +out: + osc_deinit_str(&end_call); + osc_deinit_str(&data); + return res; +} +static int read_user_group_data(struct osc_read_user_group_arg *args, struct osc_str *data) +{ + int ret = 0; + int count_args = 0; + + if (!args) + return 0; + osc_str_append_string(data, "{"); + if (args->is_set_dry_run) { + ARG_TO_JSON(DryRun, bool, args->dry_run); + ret += 1; + } + if (args->path) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"Path\":", args->path); + ret += 1; + } + if (args->user_group_name) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserGroupName\":", args->user_group_name); + ret += 1; + } + osc_str_append_string(data, "}"); + return !!ret; +} + +int osc_read_user_group(struct osc_env *e, struct osc_str *out, struct osc_read_user_group_arg *args) +{ + CURLcode res = CURLE_OUT_OF_MEMORY; + struct osc_str data; + struct osc_str end_call; + int r; + + osc_init_str(&data); + osc_init_str(&end_call); + r = read_user_group_data(args, &data); + if (r < 0) + goto out; + + osc_str_append_string(&end_call, e->endpoint.buf); + osc_str_append_string(&end_call, "/api/v1/ReadUserGroup"); + curl_easy_setopt(e->c, CURLOPT_URL, end_call.buf); + curl_easy_setopt(e->c, CURLOPT_POSTFIELDS, r ? data.buf : ""); + curl_easy_setopt(e->c, CURLOPT_WRITEDATA, out); + if (e->flag & OSC_VERBOSE_MODE) { + printf("\n%s\n\n", data.buf); + } + res = curl_easy_perform(e->c); +out: + osc_deinit_str(&end_call); + osc_deinit_str(&data); + return res; +} static int read_tags_data(struct osc_read_tags_arg *args, struct osc_str *data) { int ret = 0; @@ -19309,6 +20290,15 @@ static int read_tags_data(struct osc_read_tags_arg *args, struct osc_str *data) STRY(osc_str_append_string(data, "}" )); ret += 1; } + if (args->next_page_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NextPageToken\":", args->next_page_token); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } osc_str_append_string(data, "}"); return !!ret; } @@ -19362,6 +20352,15 @@ static int read_subregions_data(struct osc_read_subregions_arg *args, struct os STRY(osc_str_append_string(data, "}" )); ret += 1; } + if (args->next_page_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NextPageToken\":", args->next_page_token); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } osc_str_append_string(data, "}"); return !!ret; } @@ -19415,6 +20414,15 @@ static int read_subnets_data(struct osc_read_subnets_arg *args, struct osc_str STRY(osc_str_append_string(data, "}" )); ret += 1; } + if (args->next_page_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NextPageToken\":", args->next_page_token); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } osc_str_append_string(data, "}"); return !!ret; } @@ -19468,6 +20476,15 @@ static int read_snapshots_data(struct osc_read_snapshots_arg *args, struct osc_ STRY(osc_str_append_string(data, "}" )); ret += 1; } + if (args->next_page_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NextPageToken\":", args->next_page_token); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } osc_str_append_string(data, "}"); return !!ret; } @@ -19521,6 +20538,15 @@ static int read_snapshot_export_tasks_data(struct osc_read_snapshot_export_task STRY(osc_str_append_string(data, "}" )); ret += 1; } + if (args->next_page_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NextPageToken\":", args->next_page_token); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } osc_str_append_string(data, "}"); return !!ret; } @@ -19627,6 +20653,15 @@ static int read_security_groups_data(struct osc_read_security_groups_arg *args, STRY(osc_str_append_string(data, "}" )); ret += 1; } + if (args->next_page_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NextPageToken\":", args->next_page_token); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } osc_str_append_string(data, "}"); return !!ret; } @@ -19833,6 +20868,15 @@ static int read_quotas_data(struct osc_read_quotas_arg *args, struct osc_str *d STRY(osc_str_append_string(data, "}" )); ret += 1; } + if (args->next_page_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NextPageToken\":", args->next_page_token); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } osc_str_append_string(data, "}"); return !!ret; } @@ -19938,6 +20982,15 @@ static int read_public_ip_ranges_data(struct osc_read_public_ip_ranges_arg *arg ARG_TO_JSON(DryRun, bool, args->dry_run); ret += 1; } + if (args->next_page_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NextPageToken\":", args->next_page_token); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } osc_str_append_string(data, "}"); return !!ret; } @@ -20034,6 +21087,15 @@ static int read_product_types_data(struct osc_read_product_types_arg *args, str STRY(osc_str_append_string(data, "}" )); ret += 1; } + if (args->next_page_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NextPageToken\":", args->next_page_token); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } osc_str_append_string(data, "}"); return !!ret; } @@ -20346,6 +21408,15 @@ static int read_nets_data(struct osc_read_nets_arg *args, struct osc_str *data) STRY(osc_str_append_string(data, "}" )); ret += 1; } + if (args->next_page_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NextPageToken\":", args->next_page_token); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } osc_str_append_string(data, "}"); return !!ret; } @@ -20523,6 +21594,15 @@ static int read_net_access_point_services_data(struct osc_read_net_access_point STRY(osc_str_append_string(data, "}" )); ret += 1; } + if (args->next_page_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NextPageToken\":", args->next_page_token); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } osc_str_append_string(data, "}"); return !!ret; } @@ -20616,6 +21696,72 @@ int osc_read_nat_services(struct osc_env *e, struct osc_str *out, struct osc_rea osc_deinit_str(&data); return res; } +static int read_managed_policies_linked_to_user_group_data(struct osc_read_managed_policies_linked_to_user_group_arg *args, struct osc_str *data) +{ + int ret = 0; + int count_args = 0; + + if (!args) + return 0; + osc_str_append_string(data, "{"); + if (args->is_set_dry_run) { + ARG_TO_JSON(DryRun, bool, args->dry_run); + ret += 1; + } + if (args->filters_str) { + ARG_TO_JSON(Filters, string, args->filters_str); + ret += 1; + } else if (args->is_set_filters) { + TRY_APPEND_COL(count_args, data); + STRY(osc_str_append_string(data, "\"Filters\": { " )); + STRY(filters_user_group_setter(&args->filters, data) < 0); + STRY(osc_str_append_string(data, "}" )); + ret += 1; + } + if (args->is_set_first_item || args->first_item) { + ARG_TO_JSON(FirstItem, int, args->first_item); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } + if (args->user_group_name) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserGroupName\":", args->user_group_name); + ret += 1; + } + osc_str_append_string(data, "}"); + return !!ret; +} + +int osc_read_managed_policies_linked_to_user_group(struct osc_env *e, struct osc_str *out, struct osc_read_managed_policies_linked_to_user_group_arg *args) +{ + CURLcode res = CURLE_OUT_OF_MEMORY; + struct osc_str data; + struct osc_str end_call; + int r; + + osc_init_str(&data); + osc_init_str(&end_call); + r = read_managed_policies_linked_to_user_group_data(args, &data); + if (r < 0) + goto out; + + osc_str_append_string(&end_call, e->endpoint.buf); + osc_str_append_string(&end_call, "/api/v1/ReadManagedPoliciesLinkedToUserGroup"); + curl_easy_setopt(e->c, CURLOPT_URL, end_call.buf); + curl_easy_setopt(e->c, CURLOPT_POSTFIELDS, r ? data.buf : ""); + curl_easy_setopt(e->c, CURLOPT_WRITEDATA, out); + if (e->flag & OSC_VERBOSE_MODE) { + printf("\n%s\n\n", data.buf); + } + res = curl_easy_perform(e->c); +out: + osc_deinit_str(&end_call); + osc_deinit_str(&data); + return res; +} static int read_locations_data(struct osc_read_locations_arg *args, struct osc_str *data) { int ret = 0; @@ -20628,6 +21774,15 @@ static int read_locations_data(struct osc_read_locations_arg *args, struct osc_ ARG_TO_JSON(DryRun, bool, args->dry_run); ret += 1; } + if (args->next_page_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NextPageToken\":", args->next_page_token); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } osc_str_append_string(data, "}"); return !!ret; } @@ -20912,6 +22067,15 @@ static int read_keypairs_data(struct osc_read_keypairs_arg *args, struct osc_st STRY(osc_str_append_string(data, "}" )); ret += 1; } + if (args->next_page_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NextPageToken\":", args->next_page_token); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } osc_str_append_string(data, "}"); return !!ret; } @@ -20965,6 +22129,15 @@ static int read_internet_services_data(struct osc_read_internet_services_arg *a STRY(osc_str_append_string(data, "}" )); ret += 1; } + if (args->next_page_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NextPageToken\":", args->next_page_token); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } osc_str_append_string(data, "}"); return !!ret; } @@ -21080,6 +22253,15 @@ static int read_image_export_tasks_data(struct osc_read_image_export_tasks_arg STRY(osc_str_append_string(data, "}" )); ret += 1; } + if (args->next_page_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NextPageToken\":", args->next_page_token); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } osc_str_append_string(data, "}"); return !!ret; } @@ -21229,6 +22411,15 @@ static int read_direct_links_data(struct osc_read_direct_links_arg *args, struc STRY(osc_str_append_string(data, "}" )); ret += 1; } + if (args->next_page_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NextPageToken\":", args->next_page_token); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } osc_str_append_string(data, "}"); return !!ret; } @@ -21282,6 +22473,15 @@ static int read_direct_link_interfaces_data(struct osc_read_direct_link_interfa STRY(osc_str_append_string(data, "}" )); ret += 1; } + if (args->next_page_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NextPageToken\":", args->next_page_token); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } osc_str_append_string(data, "}"); return !!ret; } @@ -21397,6 +22597,15 @@ static int read_dedicated_groups_data(struct osc_read_dedicated_groups_arg *arg STRY(osc_str_append_string(data, "}" )); ret += 1; } + if (args->next_page_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NextPageToken\":", args->next_page_token); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } osc_str_append_string(data, "}"); return !!ret; } @@ -21559,6 +22768,15 @@ static int read_client_gateways_data(struct osc_read_client_gateways_arg *args, STRY(osc_str_append_string(data, "}" )); ret += 1; } + if (args->next_page_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"NextPageToken\":", args->next_page_token); + ret += 1; + } + if (args->is_set_results_per_page || args->results_per_page) { + ARG_TO_JSON(ResultsPerPage, int, args->results_per_page); + ret += 1; + } osc_str_append_string(data, "}"); return !!ret; } @@ -22029,7 +23247,70 @@ static int read_access_keys_data(struct osc_read_access_keys_arg *args, struct return !!ret; } -int osc_read_access_keys(struct osc_env *e, struct osc_str *out, struct osc_read_access_keys_arg *args) +int osc_read_access_keys(struct osc_env *e, struct osc_str *out, struct osc_read_access_keys_arg *args) +{ + CURLcode res = CURLE_OUT_OF_MEMORY; + struct osc_str data; + struct osc_str end_call; + int r; + + osc_init_str(&data); + osc_init_str(&end_call); + r = read_access_keys_data(args, &data); + if (r < 0) + goto out; + + osc_str_append_string(&end_call, e->endpoint.buf); + osc_str_append_string(&end_call, "/api/v1/ReadAccessKeys"); + curl_easy_setopt(e->c, CURLOPT_URL, end_call.buf); + curl_easy_setopt(e->c, CURLOPT_POSTFIELDS, r ? data.buf : ""); + curl_easy_setopt(e->c, CURLOPT_WRITEDATA, out); + if (e->flag & OSC_VERBOSE_MODE) { + printf("\n%s\n\n", data.buf); + } + res = curl_easy_perform(e->c); +out: + osc_deinit_str(&end_call); + osc_deinit_str(&data); + return res; +} +static int put_user_group_policy_data(struct osc_put_user_group_policy_arg *args, struct osc_str *data) +{ + int ret = 0; + int count_args = 0; + + if (!args) + return 0; + osc_str_append_string(data, "{"); + if (args->is_set_dry_run) { + ARG_TO_JSON(DryRun, bool, args->dry_run); + ret += 1; + } + if (args->policy_document) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"PolicyDocument\":", args->policy_document); + ret += 1; + } + if (args->policy_name) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"PolicyName\":", args->policy_name); + ret += 1; + } + if (args->user_group_name) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserGroupName\":", args->user_group_name); + ret += 1; + } + if (args->user_group_path) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserGroupPath\":", args->user_group_path); + ret += 1; + } + osc_str_append_string(data, "}"); + return !!ret; +} + +int osc_put_user_group_policy(struct osc_env *e, struct osc_str *out, struct osc_put_user_group_policy_arg *args) { CURLcode res = CURLE_OUT_OF_MEMORY; struct osc_str data; @@ -22038,12 +23319,12 @@ int osc_read_access_keys(struct osc_env *e, struct osc_str *out, struct osc_read osc_init_str(&data); osc_init_str(&end_call); - r = read_access_keys_data(args, &data); + r = put_user_group_policy_data(args, &data); if (r < 0) goto out; osc_str_append_string(&end_call, e->endpoint.buf); - osc_str_append_string(&end_call, "/api/v1/ReadAccessKeys"); + osc_str_append_string(&end_call, "/api/v1/PutUserGroupPolicy"); curl_easy_setopt(e->c, CURLOPT_URL, end_call.buf); curl_easy_setopt(e->c, CURLOPT_POSTFIELDS, r ? data.buf : ""); curl_easy_setopt(e->c, CURLOPT_WRITEDATA, out); @@ -22474,6 +23755,59 @@ int osc_link_nic(struct osc_env *e, struct osc_str *out, struct osc_link_nic_arg osc_deinit_str(&data); return res; } +static int link_managed_policy_to_user_group_data(struct osc_link_managed_policy_to_user_group_arg *args, struct osc_str *data) +{ + int ret = 0; + int count_args = 0; + + if (!args) + return 0; + osc_str_append_string(data, "{"); + if (args->is_set_dry_run) { + ARG_TO_JSON(DryRun, bool, args->dry_run); + ret += 1; + } + if (args->policy_orn) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"PolicyOrn\":", args->policy_orn); + ret += 1; + } + if (args->user_group_name) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserGroupName\":", args->user_group_name); + ret += 1; + } + osc_str_append_string(data, "}"); + return !!ret; +} + +int osc_link_managed_policy_to_user_group(struct osc_env *e, struct osc_str *out, struct osc_link_managed_policy_to_user_group_arg *args) +{ + CURLcode res = CURLE_OUT_OF_MEMORY; + struct osc_str data; + struct osc_str end_call; + int r; + + osc_init_str(&data); + osc_init_str(&end_call); + r = link_managed_policy_to_user_group_data(args, &data); + if (r < 0) + goto out; + + osc_str_append_string(&end_call, e->endpoint.buf); + osc_str_append_string(&end_call, "/api/v1/LinkManagedPolicyToUserGroup"); + curl_easy_setopt(e->c, CURLOPT_URL, end_call.buf); + curl_easy_setopt(e->c, CURLOPT_POSTFIELDS, r ? data.buf : ""); + curl_easy_setopt(e->c, CURLOPT_WRITEDATA, out); + if (e->flag & OSC_VERBOSE_MODE) { + printf("\n%s\n\n", data.buf); + } + res = curl_easy_perform(e->c); +out: + osc_deinit_str(&end_call); + osc_deinit_str(&data); + return res; +} static int link_load_balancer_backend_machines_data(struct osc_link_load_balancer_backend_machines_arg *args, struct osc_str *data) { int ret = 0; @@ -23076,6 +24410,121 @@ int osc_delete_virtual_gateway(struct osc_env *e, struct osc_str *out, struct os osc_deinit_str(&data); return res; } +static int delete_user_group_policy_data(struct osc_delete_user_group_policy_arg *args, struct osc_str *data) +{ + int ret = 0; + int count_args = 0; + + if (!args) + return 0; + osc_str_append_string(data, "{"); + if (args->is_set_dry_run) { + ARG_TO_JSON(DryRun, bool, args->dry_run); + ret += 1; + } + if (args->policy_name) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"PolicyName\":", args->policy_name); + ret += 1; + } + if (args->user_group_name) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserGroupName\":", args->user_group_name); + ret += 1; + } + if (args->user_group_path) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserGroupPath\":", args->user_group_path); + ret += 1; + } + osc_str_append_string(data, "}"); + return !!ret; +} + +int osc_delete_user_group_policy(struct osc_env *e, struct osc_str *out, struct osc_delete_user_group_policy_arg *args) +{ + CURLcode res = CURLE_OUT_OF_MEMORY; + struct osc_str data; + struct osc_str end_call; + int r; + + osc_init_str(&data); + osc_init_str(&end_call); + r = delete_user_group_policy_data(args, &data); + if (r < 0) + goto out; + + osc_str_append_string(&end_call, e->endpoint.buf); + osc_str_append_string(&end_call, "/api/v1/DeleteUserGroupPolicy"); + curl_easy_setopt(e->c, CURLOPT_URL, end_call.buf); + curl_easy_setopt(e->c, CURLOPT_POSTFIELDS, r ? data.buf : ""); + curl_easy_setopt(e->c, CURLOPT_WRITEDATA, out); + if (e->flag & OSC_VERBOSE_MODE) { + printf("\n%s\n\n", data.buf); + } + res = curl_easy_perform(e->c); +out: + osc_deinit_str(&end_call); + osc_deinit_str(&data); + return res; +} +static int delete_user_group_data(struct osc_delete_user_group_arg *args, struct osc_str *data) +{ + int ret = 0; + int count_args = 0; + + if (!args) + return 0; + osc_str_append_string(data, "{"); + if (args->is_set_dry_run) { + ARG_TO_JSON(DryRun, bool, args->dry_run); + ret += 1; + } + if (args->is_set_force) { + ARG_TO_JSON(Force, bool, args->force); + ret += 1; + } + if (args->path) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"Path\":", args->path); + ret += 1; + } + if (args->user_group_name) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserGroupName\":", args->user_group_name); + ret += 1; + } + osc_str_append_string(data, "}"); + return !!ret; +} + +int osc_delete_user_group(struct osc_env *e, struct osc_str *out, struct osc_delete_user_group_arg *args) +{ + CURLcode res = CURLE_OUT_OF_MEMORY; + struct osc_str data; + struct osc_str end_call; + int r; + + osc_init_str(&data); + osc_init_str(&end_call); + r = delete_user_group_data(args, &data); + if (r < 0) + goto out; + + osc_str_append_string(&end_call, e->endpoint.buf); + osc_str_append_string(&end_call, "/api/v1/DeleteUserGroup"); + curl_easy_setopt(e->c, CURLOPT_URL, end_call.buf); + curl_easy_setopt(e->c, CURLOPT_POSTFIELDS, r ? data.buf : ""); + curl_easy_setopt(e->c, CURLOPT_WRITEDATA, out); + if (e->flag & OSC_VERBOSE_MODE) { + printf("\n%s\n\n", data.buf); + } + res = curl_easy_perform(e->c); +out: + osc_deinit_str(&end_call); + osc_deinit_str(&data); + return res; +} static int delete_user_data(struct osc_delete_user_arg *args, struct osc_str *data) { int ret = 0; @@ -25546,6 +26995,59 @@ int osc_create_virtual_gateway(struct osc_env *e, struct osc_str *out, struct os osc_deinit_str(&data); return res; } +static int create_user_group_data(struct osc_create_user_group_arg *args, struct osc_str *data) +{ + int ret = 0; + int count_args = 0; + + if (!args) + return 0; + osc_str_append_string(data, "{"); + if (args->is_set_dry_run) { + ARG_TO_JSON(DryRun, bool, args->dry_run); + ret += 1; + } + if (args->path) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"Path\":", args->path); + ret += 1; + } + if (args->user_group_name) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserGroupName\":", args->user_group_name); + ret += 1; + } + osc_str_append_string(data, "}"); + return !!ret; +} + +int osc_create_user_group(struct osc_env *e, struct osc_str *out, struct osc_create_user_group_arg *args) +{ + CURLcode res = CURLE_OUT_OF_MEMORY; + struct osc_str data; + struct osc_str end_call; + int r; + + osc_init_str(&data); + osc_init_str(&end_call); + r = create_user_group_data(args, &data); + if (r < 0) + goto out; + + osc_str_append_string(&end_call, e->endpoint.buf); + osc_str_append_string(&end_call, "/api/v1/CreateUserGroup"); + curl_easy_setopt(e->c, CURLOPT_URL, end_call.buf); + curl_easy_setopt(e->c, CURLOPT_POSTFIELDS, r ? data.buf : ""); + curl_easy_setopt(e->c, CURLOPT_WRITEDATA, out); + if (e->flag & OSC_VERBOSE_MODE) { + printf("\n%s\n\n", data.buf); + } + res = curl_easy_perform(e->c); +out: + osc_deinit_str(&end_call); + osc_deinit_str(&data); + return res; +} static int create_user_data(struct osc_create_user_arg *args, struct osc_str *data) { int ret = 0; @@ -26697,6 +28199,11 @@ static int create_nat_service_data(struct osc_create_nat_service_arg *args, str if (!args) return 0; osc_str_append_string(data, "{"); + if (args->client_token) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"ClientToken\":", args->client_token); + ret += 1; + } if (args->is_set_dry_run) { ARG_TO_JSON(DryRun, bool, args->dry_run); ret += 1; @@ -28215,6 +29722,69 @@ int osc_check_authentication(struct osc_env *e, struct osc_str *out, struct osc_ osc_deinit_str(&data); return res; } +static int add_user_to_user_group_data(struct osc_add_user_to_user_group_arg *args, struct osc_str *data) +{ + int ret = 0; + int count_args = 0; + + if (!args) + return 0; + osc_str_append_string(data, "{"); + if (args->is_set_dry_run) { + ARG_TO_JSON(DryRun, bool, args->dry_run); + ret += 1; + } + if (args->user_group_name) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserGroupName\":", args->user_group_name); + ret += 1; + } + if (args->user_group_path) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserGroupPath\":", args->user_group_path); + ret += 1; + } + if (args->user_name) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserName\":", args->user_name); + ret += 1; + } + if (args->user_path) { + TRY_APPEND_COL(count_args, data); + ARG_TO_JSON_STR("\"UserPath\":", args->user_path); + ret += 1; + } + osc_str_append_string(data, "}"); + return !!ret; +} + +int osc_add_user_to_user_group(struct osc_env *e, struct osc_str *out, struct osc_add_user_to_user_group_arg *args) +{ + CURLcode res = CURLE_OUT_OF_MEMORY; + struct osc_str data; + struct osc_str end_call; + int r; + + osc_init_str(&data); + osc_init_str(&end_call); + r = add_user_to_user_group_data(args, &data); + if (r < 0) + goto out; + + osc_str_append_string(&end_call, e->endpoint.buf); + osc_str_append_string(&end_call, "/api/v1/AddUserToUserGroup"); + curl_easy_setopt(e->c, CURLOPT_URL, end_call.buf); + curl_easy_setopt(e->c, CURLOPT_POSTFIELDS, r ? data.buf : ""); + curl_easy_setopt(e->c, CURLOPT_WRITEDATA, out); + if (e->flag & OSC_VERBOSE_MODE) { + printf("\n%s\n\n", data.buf); + } + res = curl_easy_perform(e->c); +out: + osc_deinit_str(&end_call); + osc_deinit_str(&data); + return res; +} static int accept_net_peering_data(struct osc_accept_net_peering_arg *args, struct osc_str *data) { int ret = 0; diff --git a/osc_sdk.h b/osc_sdk.h index 22662bb..351222a 100644 --- a/osc_sdk.h +++ b/osc_sdk.h @@ -75,8 +75,8 @@ struct osc_str { #define OSC_ENV_FREE_AK_SK (OSC_ENV_FREE_AK | OSC_ENV_FREE_SK) -#define OSC_API_VERSION "1.28.7" -#define OSC_SDK_VERSION 0X000900 +#define OSC_API_VERSION "1.29.3" +#define OSC_SDK_VERSION 0X001000 enum osc_auth_method { OSC_AKSK_METHOD, @@ -308,7 +308,7 @@ struct api_access_policy { struct api_access_rule { /* - * The ID of the API access rule. + * The ID of the API access rule. */ char *api_access_rule_id; /* string */ /* @@ -348,11 +348,11 @@ struct application_sticky_cookie_policy { struct backend_vm_health { /* - * The description of the state of the back-end VM. + * The description of the state of the backend VM. */ char *description; /* string */ /* - * The state of the back-end VM (`InService` \\| `OutOfService` \\| + * The state of the backend VM (`InService` \\| `OutOfService` \\| * `Unknown`). */ char *state; /* string */ @@ -363,7 +363,7 @@ struct backend_vm_health { */ char *state_reason; /* string */ /* - * The ID of the back-end VM. + * The ID of the backend VM. */ char *vm_id; /* string */ }; @@ -376,8 +376,8 @@ struct bsu_created { int is_set_delete_on_vm_deletion; int delete_on_vm_deletion; /* bool */ /* - * The date and time of attachment of the volume to the VM, in ISO 8601 - * date-time format. + * The date and time (UTC) of attachment of the volume to the VM, in ISO + * 8601 date-time format. */ char *link_date; /* string */ /* @@ -397,8 +397,8 @@ struct block_device_mapping_created { * 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 of attachment of the volume to the VM, in - * ISO 8601 date-time format. + * The date and time (UTC) of attachment of the volume to the VM, + * in ISO 8601 date-time format. * -State: string * The state of the volume. * -VolumeId: string @@ -702,7 +702,7 @@ struct catalogs { int nb_entries; struct catalog_entry *entries; /* array ref CatalogEntry */ /* - * The beginning of the time period, in ISO 8601 date-time format. + * The beginning of the time period (UTC). */ char *from_date; /* string */ /* @@ -710,7 +710,7 @@ struct catalogs { */ char *state; /* string */ /* - * The end of the time period, in ISO 8601 date-time format. + * The end of the time period (UTC). */ char *to_date; /* string */ }; @@ -765,7 +765,7 @@ struct consumption_entry { */ char *category; /* string */ /* - * The beginning of the time period, in ISO 8601 date-time format. + * The beginning of the time period (UTC). */ char *from_date; /* string */ /* @@ -798,7 +798,7 @@ struct consumption_entry { */ char *title; /* string */ /* - * The end of the time period, in ISO 8601 date-time format. + * The end of the time period (UTC). */ char *to_date; /* string */ /* @@ -1036,15 +1036,17 @@ struct direct_link_interfaces { struct errors { /* - * The code of the error. + * The code of the error (for example, `4078`). You can search for this + * returned code in the [errors page](api-errors.html) to find more + * details about the error. */ char *code; /* string */ /* - * The details of the error. + * A description providing more details about the error. */ char *details; /* string */ /* - * The type of the error. + * The type of the error (for example, `InvalidParameterValue`). */ char *type; /* string */ }; @@ -1084,7 +1086,7 @@ struct filters_api_access_rule { char *descriptions_str; char **descriptions; /* array string */ /* - * One or more IP addresses or CIDR blocks (for example, `192.0.2.0/16`). + * One or more IPs or CIDR blocks (for example, `192.0.2.0/16`). */ char *ip_ranges_str; char **ip_ranges; /* array string */ @@ -1577,6 +1579,11 @@ struct filters_load_balancer { }; struct filters_nat_service { + /* + * The idempotency tokens provided when creating the NAT services. + */ + char *client_tokens_str; + char **client_tokens; /* array string */ /* * The IDs of the NAT services. */ @@ -1833,6 +1840,11 @@ struct filters_nic { */ char *link_public_ip_link_public_ip_ids_str; char **link_public_ip_link_public_ip_ids; /* array string */ + /* + * 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 */ /* * The allocation IDs returned when the public IPs were allocated to * their accounts. @@ -2293,7 +2305,8 @@ struct filters_snapshot { char *snapshot_ids_str; char **snapshot_ids; /* array string */ /* - * The states of the snapshots (`in-queue` \\| `completed` \\| `error`). + * The states of the snapshots (`in-queue` \\| `pending` \\| `completed` + * \\| `error` \\| `deleting`). */ char *states_str; char **states; /* array string */ @@ -2434,6 +2447,19 @@ struct filters_tag { char **values; /* array string */ }; +struct filters_user_group { + /* + * The path prefix of the groups. If not specified, it is set to a slash + * (`/`). + */ + char *path_prefix; /* string */ + /* + * The IDs of the user groups. + */ + char *user_group_ids_str; + char **user_group_ids; /* array string */ +}; + struct filters_virtual_gateway { /* * The types of the virtual gateways (only `ipsec.1` is supported). @@ -2586,7 +2612,7 @@ struct filters_vm { char *nic_link_nic_device_numbers_str; int *nic_link_nic_device_numbers; /* array integer */ /* - * The dates and time when the NICs were attached to the VMs. + * 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 */ @@ -3010,12 +3036,12 @@ struct filters_vms_state { char *maintenance_event_descriptions_str; char **maintenance_event_descriptions; /* array string */ /* - * The latest time the event can end. + * The latest date and time (UTC) the event can end. */ char *maintenance_events_not_after_str; char **maintenance_events_not_after; /* array string */ /* - * The earliest time the event can start. + * The earliest date and time (UTC) the event can start. */ char *maintenance_events_not_before_str; char **maintenance_events_not_before; /* array string */ @@ -3376,8 +3402,7 @@ struct image { int nb_block_device_mappings; struct block_device_mapping_image *block_device_mappings; /* array ref BlockDeviceMappingImage */ /* - * The date and time of creation of the OMI, in ISO 8601 date-time - * format. + * The date and time (UTC) of creation of the OMI. */ char *creation_date; /* string */ /* @@ -3526,6 +3551,20 @@ struct image_export_task { char *task_id; /* string */ }; +struct inline_policy { + /* + * 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 *body; /* string */ + /* + * The name of the policy. + */ + char *name; /* string */ +}; + struct internet_service { /* * The ID of the Internet service. @@ -3702,7 +3741,8 @@ struct link_public_ip_light_for_vm { struct link_route_table { /* - * The ID of the association between the route table and the Subnet. + * The ID of the association between the route table and the Net or + * Subnet. */ char *link_route_table_id; /* string */ /* @@ -3711,7 +3751,8 @@ struct link_route_table { int is_set_main; int main; /* bool */ /* - * The ID of the Net. + * The ID of the Net, if the route table is not explicitly linked to a + * Subnet. */ char *net_id; /* string */ /* @@ -3719,22 +3760,23 @@ struct link_route_table { */ char *route_table_id; /* string */ /* - * The ID of the Subnet. + * The ID of the Subnet, if the route table is explicitly linked to a + * Subnet. */ char *subnet_id; /* string */ }; struct linked_policy { /* - * The date and time of creation of the attached policy. + * The date and time (UTC) of creation of the linked policy. */ char *creation_date; /* string */ /* - * The date and time at which the attached policy was last modified. + * The date and time (UTC) at which the linked policy was last modified. */ char *last_modification_date; /* string */ /* - * The Outscale Resource Name (ORN) of the policy. For more information, + * The OUTSCALE Resource Name (ORN) of the policy. For more information, * see [Resource * Identifiers](https://docs.outscale.com/en/userguide/Resource-Identifie * rs.html). @@ -3778,13 +3820,13 @@ struct linked_volume { struct listener { /* - * The port on which the back-end VM is listening (between `1` and + * The port on which the backend VM is listening (between `1` and * `65535`, both included). */ int is_set_backend_port; int backend_port; /* int */ /* - * The protocol for routing traffic to back-end VMs (`HTTP` \\| `HTTPS` + * The protocol for routing traffic to backend VMs (`HTTP` \\| `HTTPS` * \\| `TCP` \\| `SSL`). */ char *backend_protocol; /* string */ @@ -3815,13 +3857,13 @@ struct listener { struct listener_for_creation { /* - * The port on which the back-end VM is listening (between `1` and + * The port on which the backend VM is listening (between `1` and * `65535`, both included). */ int is_set_backend_port; int backend_port; /* int */ /* - * The protocol for routing traffic to back-end VMs (`HTTP` \\| `HTTPS` + * The protocol for routing traffic to backend VMs (`HTTP` \\| `HTTPS` * \\| `TCP` \\| `SSL`). */ char *backend_protocol; /* string */ @@ -3897,7 +3939,7 @@ struct listener_rule_for_creation { /* * 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 [-.?]. + * and must not contain any special characters except [-.?]. */ char *host_name_pattern; /* string */ /* @@ -3963,12 +4005,12 @@ struct load_balancer { int nb_application_sticky_cookie_policies; struct application_sticky_cookie_policy *application_sticky_cookie_policies; /* array ref ApplicationStickyCookiePolicy */ /* - * One or more public IPs of back-end VMs. + * One or more public IPs of backend VMs. */ char *backend_ips_str; char **backend_ips; /* array string */ /* - * One or more IDs of back-end VMs for the load balancer. + * One or more IDs of backend VMs for the load balancer. */ char *backend_vm_ids_str; char **backend_vm_ids; /* array string */ @@ -4007,10 +4049,10 @@ struct load_balancer { * The listeners for the load balancer. * Information about the listener. * -BackendPort: int - * The port on which the back-end VM is listening (between `1` - * and `65535`, both included). + * The port on which the backend VM is listening (between `1` and + * `65535`, both included). * -BackendProtocol: string - * The protocol for routing traffic to back-end VMs (`HTTP` \\| + * 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` @@ -4195,7 +4237,7 @@ struct log { */ char *query_call_name; /* string */ /* - * The date and time of the logged call, in ISO 8601 date-time format. + * The date and time (UTC) of the logged call. */ char *query_date; /* string */ /* @@ -4252,16 +4294,20 @@ struct maintenance_event { */ char *description; /* string */ /* - * The latest scheduled end time for the event. + * The latest scheduled end date and time (UTC) for the event. */ char *not_after; /* string */ /* - * The earliest scheduled start time for the event. + * The earliest scheduled start date and time (UTC) for the event. */ char *not_before; /* string */ }; struct nat_service { + /* + * The idempotency token provided when creating the NAT service. + */ + char *client_token; /* string */ /* * The ID of the NAT service. */ @@ -4420,7 +4466,7 @@ struct net_peering { int is_set_accepter_net; struct accepter_net accepter_net; /* ref AccepterNet */ /* - * The date and time at which the Net peerings expire. + * The date and time (UTC) at which the Net peerings expire. */ char *expiration_date; /* string */ /* @@ -4946,15 +4992,6 @@ struct phase2_options { char *pre_shared_key; /* string */ }; -struct phase2_options_to_update { - /* - * 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 */ -}; - struct placement { /* * The name of the Subregion. If you specify this parameter, you must @@ -4970,7 +5007,7 @@ struct placement { struct policy { /* - * The date and time of creation of the policy. + * The date and time (UTC) of creation of the policy. */ char *creation_date; /* string */ /* @@ -4983,7 +5020,7 @@ struct policy { int is_set_is_linkable; int is_linkable; /* bool */ /* - * The date and time at which the policy was last modified. + * The date and time (UTC) at which the policy was last modified. */ char *last_modification_date; /* string */ /* @@ -5018,11 +5055,14 @@ struct policy { struct policy_version { /* - * The policy document as a json string. + * 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 *body; /* string */ /* - * The date and time of creation of the version. + * The date and time (UTC) of creation of the version. */ char *creation_date; /* string */ /* @@ -5244,7 +5284,8 @@ struct quota_types { struct read_linked_policies_filters { /* - * The path prefix of the policies, set to a slash (`/`) by default. + * The path prefix of the policies. If not specified, it is set to a + * slash (`/`). */ char *path_prefix; /* string */ }; @@ -5256,8 +5297,8 @@ struct read_policies_filters { int is_set_only_linked; int only_linked; /* bool */ /* - * The path prefix you can use to filter the results, set to a slash - * (`/`) by default. + * The path prefix you can use to filter the results. If not specified, + * it is set to a slash (`/`). */ char *path_prefix; /* string */ /* @@ -5330,7 +5371,7 @@ struct route { */ char *nic_id; /* string */ /* - * The state of a route in the route table (always `active`). + * The state of a route in the route table (always `active`). */ char *state; /* string */ /* @@ -5373,16 +5414,18 @@ struct route_table { * One or more associations between the route table and the * Subnets. * -LinkRouteTableId: string - * The ID of the association between the route table and the - * Subnet. + * The ID of the association between the route table and the Net + * or Subnet. * -Main: bool * If true, the route table is the main one. * -NetId: string - * The ID of the Net. + * The ID of the Net, if the route table is not explicitly linked + * to a Subnet. * -RouteTableId: string * The ID of the route table. * -SubnetId: string - * The ID of the Subnet. + * 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; @@ -5426,7 +5469,7 @@ struct route_table { * -NicId: string * The ID of the NIC. * -State: string - * The state of a route in the route table (always `active`). + * The state of a route in the route table (always `active`). * -VmAccountId: string * The account ID of the owner of the VM. * -VmId: string @@ -5659,8 +5702,8 @@ struct server_certificate { */ char *name; /* string */ /* - * The Outscale Resource Name (ORN) of the server certificate. For more - * information, see [Resource Identifiers > Outscale Resource 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). */ @@ -5701,7 +5744,7 @@ struct snapshot { */ char *account_id; /* string */ /* - * The date and time of creation of the snapshot. + * The date and time (UTC) of creation of the snapshot. */ char *creation_date; /* string */ /* @@ -5734,7 +5777,8 @@ struct snapshot { */ char *snapshot_id; /* string */ /* - * The state of the snapshot (`in-queue` \\| `completed` \\| `error`). + * The state of the snapshot (`in-queue` \\| `pending` \\| `completed` + * \\| `error` \\| `deleting`)). */ char *state; /* string */ /* @@ -5894,12 +5938,20 @@ struct tag { }; struct user { + /* + * The date and time (UTC) of creation of the EIM user. + */ + char *creation_date; /* string */ + /* + * The date and time (UTC) of the last modification of the EIM user. + */ + char *last_modification_date; /* string */ /* * The path to the EIM user. */ char *path; /* string */ /* - * The ID of the EIM user. + * The ID of the EIM user. */ char *user_id; /* string */ /* @@ -5908,6 +5960,36 @@ struct user { char *user_name; /* string */ }; +struct user_group { + /* + * The date and time (UTC) of creation of the user group. + */ + char *creation_date; /* string */ + /* + * The date and time (UTC) of the last modification of the user group. + */ + char *last_modification_date; /* string */ + /* + * The name of the user group. + */ + char *name; /* string */ + /* + * 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 */ + /* + * The path to the user group. + */ + char *path; /* string */ + /* + * The ID of the user group. + */ + char *user_group_id; /* string */ +}; + struct vgw_telemetry { /* * The number of routes accepted through BGP (Border Gateway Protocol) @@ -5987,8 +6069,9 @@ struct vm { * 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 of attachment of the volume to the VM, in - * ISO 8601 date-time format. + * The date and time (UTC) of attachment of the volume to the + * VM, + * in ISO 8601 date-time format. * -State: string * The state of the volume. * -VolumeId: string @@ -6010,7 +6093,7 @@ struct vm { */ char *client_token; /* string */ /* - * The date and time of creation of the VM. + * The date and time (UTC) of creation of the VM. */ char *creation_date; /* string */ /* @@ -6236,7 +6319,7 @@ struct vm { struct vm_group { /* - * The date and time of creation of the VM group. + * The date and time (UTC) of creation of the VM group. */ char *creation_date; /* string */ /* @@ -6258,8 +6341,6 @@ struct vm_group { char *security_group_ids_str; char **security_group_ids; /* array string */ /* - * The state of the VM group (`pending` \\| `available` \\| `scaling up` - * \\| `scaling down` \\| `deleting` \\| `deleted`). */ char *state; /* string */ /* @@ -6267,7 +6348,7 @@ struct vm_group { */ char *subnet_id; /* string */ /* - * One or more tags associated with the VM group. + * One or more tags associated with the VM. * Information about the tag. * -Key: string * The key of the tag, with a minimum of 1 character. @@ -6328,9 +6409,10 @@ struct vm_states { * -Description: string * The description of the event. * -NotAfter: string - * The latest scheduled end time for the event. + * The latest scheduled end date and time (UTC) for the event. * -NotBefore: string - * The earliest scheduled start time for the event. + * The earliest scheduled start date and time (UTC) for the + * event. */ char *maintenance_events_str; int nb_maintenance_events; @@ -6365,7 +6447,7 @@ struct vm_template { */ char *cpu_performance; /* string */ /* - * The date and time of creation of the VM template. + * The date and time (UTC) of creation of the VM template. */ char *creation_date; /* string */ /* @@ -6460,7 +6542,7 @@ struct vm_type { struct volume { /* - * The date and time of creation of the volume. + * The date and time (UTC) of creation of the volume. */ char *creation_date; /* string */ /* @@ -6532,7 +6614,7 @@ 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. + * to Phase 2 negotiations. * -DpdTimeoutAction: string * The action to carry out after a Dead Peer Detection (DPD) * timeout occurs. @@ -6565,7 +6647,7 @@ struct vpn_options { struct phase1_options phase1_options; /* ref Phase1Options */ /* * Information about Phase 2 of the Internet Key Exchange (IKE) - * negotiation. + * negotiation. * -Phase2DhGroupNumbers: array integer * The Diffie-Hellman (DH) group numbers allowed for the VPN * tunnel for phase 2. @@ -6680,7 +6762,7 @@ struct vpn_connection { * -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. + * to Phase 2 negotiations. * -DpdTimeoutAction: string * The action to carry out after a Dead Peer Detection (DPD) * timeout occurs. @@ -6710,7 +6792,7 @@ struct vpn_connection { * connection. * -Phase2Options: ref Phase2Options * Information about Phase 2 of the Internet Key Exchange (IKE) - * negotiation. + * negotiation. * -Phase2DhGroupNumbers: array integer * The Diffie-Hellman (DH) group numbers allowed for the VPN * tunnel for phase 2. @@ -6739,26 +6821,6 @@ struct vpn_connection { struct vpn_options vpn_options; /* ref VpnOptions */ }; -struct vpn_options_to_update { - /* - * Information about Phase 2 of the Internet Key Exchange (IKE) - * negotiation. - * -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 - * ("). - */ - char *phase2_options_str; - int is_set_phase2_options; - struct phase2_options_to_update phase2_options; /* ref Phase2OptionsToUpdate */ - /* - * 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 */ -}; - struct with { /* * By default or if set to true, the account ID is displayed. @@ -6870,9 +6932,53 @@ struct osc_update_vpn_connection_arg { char *vpn_connection_id; /* string */ /* * Information about the VPN options. - * -Phase2Options: ref Phase2OptionsToUpdate + * -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 + * 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 + * 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 + * The lifetime for phase 1 of the IKE negotiation process, in + * seconds. + * -ReplayWindowSize: int + * The number of packets in an IKE replay window. + * -StartupAction: string + * The action to carry out when establishing tunnels for a VPN + * connection. + * -Phase2Options: ref Phase2Options * Information about Phase 2 of the Internet Key Exchange (IKE) - * negotiation. + * 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 + * The lifetime for phase 2 of the Internet Key Exchange (IKE) + * negociation process, in seconds. * -PreSharedKey: string * The pre-shared key to establish the initial authentication * between the client gateway and the virtual gateway. This key @@ -6885,7 +6991,7 @@ struct osc_update_vpn_connection_arg { */ char *vpn_options_str; int is_set_vpn_options; - struct vpn_options_to_update vpn_options; /* ref VpnOptionsToUpdate */ + struct vpn_options vpn_options; /* ref VpnOptions */ }; struct osc_update_volume_arg { @@ -7102,6 +7208,33 @@ struct osc_update_vm_arg { char *vm_type; /* string */ }; +struct osc_update_user_group_arg { + /* Required: user_group_name */ + /* + * If true, checks whether you have the required permissions to perform + * the action. + */ + int is_set_dry_run; + int dry_run; /* bool */ + /* + * A new path for the group. If not specified, it is set to a slash + * (`/`). + */ + char *new_path; /* string */ + /* + * A new name for the user group. + */ + char *new_user_group_name; /* string */ + /* + * The path to the group. If not specified, it is set to a slash (`/`). + */ + char *path; /* string */ + /* + * The name of the group you want to update. + */ + char *user_group_name; /* string */ +}; + struct osc_update_user_arg { /* Required: user_name */ /* @@ -7468,8 +7601,8 @@ struct osc_update_load_balancer_arg { char *security_groups_str; char **security_groups; /* array string */ /* - * The Outscale Resource Name (ORN) of the server certificate. For more - * information, see [Resource Identifiers > Outscale Resource 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). If this parameter is specified, * you must also specify the `LoadBalancerPort` parameter. @@ -7504,7 +7637,11 @@ struct osc_update_listener_rule_arg { }; struct osc_update_image_arg { - /* Required: image_id, permissions_to_launch */ + /* Required: image_id */ + /* + * A new description for the image. + */ + char *description; /* string */ /* * If true, checks whether you have the required permissions to perform * the action. @@ -7650,7 +7787,7 @@ struct osc_update_api_access_rule_arg { int is_set_dry_run; int dry_run; /* bool */ /* - * One or more IP addresses or CIDR blocks (for example, `192.0.2.0/16`). + * One or more IPs or CIDR blocks (for example, `192.0.2.0/16`). */ char *ip_ranges_str; char **ip_ranges; /* array string */ @@ -7916,26 +8053,47 @@ struct osc_unlink_nic_arg { char *link_nic_id; /* string */ }; +struct osc_unlink_managed_policy_from_user_group_arg { + /* Required: policy_orn, user_group_name */ + /* + * If true, checks whether you have the required permissions to perform + * the action. + */ + int is_set_dry_run; + int dry_run; /* bool */ + /* + * 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 */ + /* + * The name of the group you want to unlink the policy from. + */ + char *user_group_name; /* string */ +}; + struct osc_unlink_load_balancer_backend_machines_arg { /* Required: load_balancer_name */ /* - * One or more public IPs of back-end VMs. + * One or more public IPs of backend VMs. */ char *backend_ips_str; char **backend_ips; /* array string */ /* - * One or more IDs of back-end VMs. + * One or more IDs of backend VMs. */ char *backend_vm_ids_str; char **backend_vm_ids; /* array string */ /* - * If true, checks whether you have the required permissions to perform + * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; int dry_run; /* bool */ /* - * The name of the load balancer. + * The name of the load balancer. */ char *load_balancer_name; /* string */ }; @@ -8060,6 +8218,32 @@ struct osc_scale_down_vm_group_arg { int vm_subtraction; /* int */ }; +struct osc_remove_user_from_user_group_arg { + /* Required: user_group_name, user_name */ + /* + * If true, checks whether you have the required permissions to perform + * the action. + */ + int is_set_dry_run; + int dry_run; /* bool */ + /* + * The name of the group you want to remove the user from. + */ + char *user_group_name; /* string */ + /* + * The path to the group. If not specified, it is set to a slash (`/`). + */ + char *user_group_path; /* string */ + /* + * The name of the user you want to remove from the group. + */ + char *user_name; /* string */ + /* + * The path to the user (by default, `/`). + */ + char *user_path; /* string */ +}; + struct osc_reject_net_peering_arg { /* Required: net_peering_id */ /* @@ -8077,8 +8261,8 @@ struct osc_reject_net_peering_arg { struct osc_register_vms_in_load_balancer_arg { /* Required: backend_vm_ids, load_balancer_name */ /* - * One or more IDs of back-end VMs.
\nSpecifying the same ID - * several times has no effect as each back-end VM has equal weight. + * One or more IDs of backend VMs.
\nSpecifying the same ID several + * times has no effect as each backend VM has equal weight. */ char *backend_vm_ids_str; char **backend_vm_ids; /* array string */ @@ -8256,9 +8440,9 @@ struct osc_read_vms_state_arg { * -MaintenanceEventDescriptions: array string * The description of the scheduled event. * -MaintenanceEventsNotAfter: array string - * The latest time the event can end. + * The latest date and time (UTC) the event can end. * -MaintenanceEventsNotBefore: array string - * The earliest time the event can start. + * The earliest date and time (UTC) the event can start. * -SubregionNames: array string * The names of the Subregions of the VMs. * -VmIds: array string @@ -8271,12 +8455,23 @@ struct osc_read_vms_state_arg { char *filters_str; int is_set_filters; struct filters_vms_state filters; /* ref FiltersVmsState */ + /* + * The token to request the next page of results. Each token refers to a + * specific page. + */ + char *next_page_token; /* string */ + /* + * 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 */ }; struct osc_read_vms_health_arg { /* Required: load_balancer_name */ /* - * One or more IDs of back-end VMs. + * One or more IDs of backend VMs. */ char *backend_vm_ids_str; char **backend_vm_ids; /* array string */ @@ -8348,7 +8543,8 @@ struct osc_read_vms_arg { * -NicLinkNicDeviceNumbers: array integer * The device numbers the NICs are attached to. * -NicLinkNicLinkNicDates: array string - * The dates and time when the NICs were attached to the VMs. + * The dates and times (UTC) when the NICs were attached to the + * VMs. * -NicLinkNicLinkNicIds: array string * The IDs of the NIC attachments. * -NicLinkNicStates: array string @@ -8513,6 +8709,17 @@ struct osc_read_vm_types_arg { char *filters_str; int is_set_filters; struct filters_vm_type filters; /* ref FiltersVmType */ + /* + * The token to request the next page of results. Each token refers to a + * specific page. + */ + char *next_page_token; /* string */ + /* + * 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 */ }; struct osc_read_vm_templates_arg { @@ -8524,7 +8731,7 @@ struct osc_read_vm_templates_arg { int is_set_dry_run; int dry_run; /* bool */ /* - * One or more filters. + * See 'filters' type documentation * -CpuCores: array integer * The number of vCores. * -CpuGenerations: array string @@ -8657,8 +8864,8 @@ struct osc_read_users_arg { int dry_run; /* bool */ }; -struct osc_read_tags_arg { - /* Required:none */ +struct osc_read_user_groups_per_user_arg { + /* Required: user_name */ /* * If true, checks whether you have the required permissions to perform * the action. @@ -8666,33 +8873,16 @@ struct osc_read_tags_arg { int is_set_dry_run; int dry_run; /* bool */ /* - * 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 - * 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 - * 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. + * The name of the user. */ - char *filters_str; - int is_set_filters; - struct filters_tag filters; /* ref FiltersTag */ + char *user_name; /* string */ + /* + * The path to the user (by default, `/`). + */ + char *user_path; /* string */ }; -struct osc_read_subregions_arg { +struct osc_read_user_groups_arg { /* Required:none */ /* * If true, checks whether you have the required permissions to perform @@ -8702,9 +8892,156 @@ struct osc_read_subregions_arg { int dry_run; /* bool */ /* * One or more filters. - * -RegionNames: array string - * The names of the Regions containing the Subregions. - * -States: array string + * -PathPrefix: string + * The path prefix of the groups. If not specified, it is set to + * a slash (`/`). + * -UserGroupIds: array string + * The IDs of the user groups. + */ + char *filters_str; + int is_set_filters; + struct filters_user_group filters; /* ref FiltersUserGroup */ + /* + * The item starting the list of groups requested. + */ + int is_set_first_item; + int first_item; /* int */ + /* + * 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 */ +}; + +struct osc_read_user_group_policy_arg { + /* Required: policy_name, user_group_name */ + /* + * If true, checks whether you have the required permissions to perform + * the action. + */ + int is_set_dry_run; + int dry_run; /* bool */ + /* + * The name of the policy. + */ + char *policy_name; /* string */ + /* + * The name of the group. + */ + char *user_group_name; /* string */ + /* + * The path to the group. If not specified, it is set to a slash (`/`). + */ + char *user_group_path; /* string */ +}; + +struct osc_read_user_group_policies_arg { + /* Required: user_group_name */ + /* + * If true, checks whether you have the required permissions to perform + * the action. + */ + int is_set_dry_run; + int dry_run; /* bool */ + /* + * The item starting the list of policies requested. + */ + int is_set_first_item; + int first_item; /* int */ + /* + * 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 */ + /* + * The name of the group. + */ + char *user_group_name; /* string */ + /* + * The path to the group. If not specified, it is set to a slash (`/`). + */ + char *user_group_path; /* string */ +}; + +struct osc_read_user_group_arg { + /* Required: user_group_name */ + /* + * If true, checks whether you have the required permissions to perform + * the action. + */ + int is_set_dry_run; + int dry_run; /* bool */ + /* + * The path to the group. If not specified, it is set to a slash (`/`). + */ + char *path; /* string */ + /* + * The name of the group. + */ + char *user_group_name; /* string */ +}; + +struct osc_read_tags_arg { + /* Required:none */ + /* + * If true, checks whether you have the required permissions to perform + * the action. + */ + int is_set_dry_run; + int dry_run; /* bool */ + /* + * 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 + * 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 + * 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. + */ + char *filters_str; + int is_set_filters; + struct filters_tag filters; /* ref FiltersTag */ + /* + * The token to request the next page of results. Each token refers to a + * specific page. + */ + char *next_page_token; /* string */ + /* + * 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 */ +}; + +struct osc_read_subregions_arg { + /* Required:none */ + /* + * If true, checks whether you have the required permissions to perform + * the action. + */ + int is_set_dry_run; + int dry_run; /* bool */ + /* + * One or more filters. + * -RegionNames: array string + * The names of the Regions containing the Subregions. + * -States: array string * The states of the Subregions. * -SubregionNames: array string * The names of the Subregions. @@ -8712,6 +9049,17 @@ struct osc_read_subregions_arg { char *filters_str; int is_set_filters; struct filters_subregion filters; /* ref FiltersSubregion */ + /* + * The token to request the next page of results. Each token refers to a + * specific page. + */ + char *next_page_token; /* string */ + /* + * 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 */ }; struct osc_read_subnets_arg { @@ -8751,6 +9099,17 @@ struct osc_read_subnets_arg { char *filters_str; int is_set_filters; struct filters_subnet filters; /* ref FiltersSubnet */ + /* + * The token to request the next page of results. Each token refers to a + * specific page. + */ + char *next_page_token; /* string */ + /* + * 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 */ }; struct osc_read_snapshots_arg { @@ -8782,8 +9141,8 @@ struct osc_read_snapshots_arg { * -SnapshotIds: array string * The IDs of the snapshots. * -States: array string - * The states of the snapshots (`in-queue` \\| `completed` \\| - * `error`). + * The states of the snapshots (`in-queue` \\| `pending` \\| + * `completed` \\| `error` \\| `deleting`). * -TagKeys: array string * The keys of the tags associated with the snapshots. * -TagValues: array string @@ -8805,6 +9164,17 @@ struct osc_read_snapshots_arg { char *filters_str; int is_set_filters; struct filters_snapshot filters; /* ref FiltersSnapshot */ + /* + * The token to request the next page of results. Each token refers to a + * specific page. + */ + char *next_page_token; /* string */ + /* + * 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 */ }; struct osc_read_snapshot_export_tasks_arg { @@ -8823,6 +9193,17 @@ struct osc_read_snapshot_export_tasks_arg { char *filters_str; int is_set_filters; struct filters_export_task filters; /* ref FiltersExportTask */ + /* + * The token to request the next page of results. Each token refers to a + * specific page. + */ + char *next_page_token; /* string */ + /* + * 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 */ }; struct osc_read_server_certificates_arg { @@ -8915,6 +9296,17 @@ struct osc_read_security_groups_arg { char *filters_str; int is_set_filters; struct filters_security_group filters; /* ref FiltersSecurityGroup */ + /* + * The token to request the next page of results. Each token refers to a + * specific page. + */ + char *next_page_token; /* string */ + /* + * 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 */ }; struct osc_read_secret_access_key_arg { @@ -9029,6 +9421,17 @@ struct osc_read_quotas_arg { char *filters_str; int is_set_filters; struct filters_quota filters; /* ref FiltersQuota */ + /* + * The token to request the next page of results. Each token refers to a + * specific page. + */ + char *next_page_token; /* string */ + /* + * 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 */ }; struct osc_read_public_ips_arg { @@ -9093,6 +9496,17 @@ struct osc_read_public_ip_ranges_arg { */ int is_set_dry_run; int dry_run; /* bool */ + /* + * The token to request the next page of results. Each token refers to a + * specific page. + */ + char *next_page_token; /* string */ + /* + * 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 */ }; struct osc_read_public_catalog_arg { @@ -9121,6 +9535,17 @@ struct osc_read_product_types_arg { char *filters_str; int is_set_filters; struct filters_product_type filters; /* ref FiltersProductType */ + /* + * The token to request the next page of results. Each token refers to a + * specific page. + */ + char *next_page_token; /* string */ + /* + * 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 */ }; struct osc_read_policy_versions_arg { @@ -9139,7 +9564,7 @@ struct osc_read_policy_versions_arg { char *policy_orn; /* string */ /* * The maximum number of items that can be returned in a single response - * (by default, 100). + * (by default, `100`). */ int is_set_results_per_page; int results_per_page; /* int */ @@ -9184,8 +9609,8 @@ struct osc_read_policies_arg { * -OnlyLinked: bool * If set to true, lists only the policies attached to a user. * -PathPrefix: string - * The path prefix you can use to filter the results, set to a - * slash (`/`) by default. + * The path prefix you can use to filter the results. If not + * specified, it is set to a slash (`/`). * -Scope: string * The scope to filter policies (`OWS` \\| `LOCAL`). */ @@ -9199,7 +9624,7 @@ struct osc_read_policies_arg { int first_item; /* int */ /* * The maximum number of items that can be returned in a single response - * (by default, 100). + * (by default, `100`). */ int is_set_results_per_page; int results_per_page; /* int */ @@ -9240,6 +9665,8 @@ struct osc_read_nics_arg { * -LinkPublicIpLinkPublicIpIds: array string * The association IDs returned when the public IPs were * associated with the NICs. + * -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. @@ -9323,6 +9750,17 @@ struct osc_read_nets_arg { char *filters_str; int is_set_filters; struct filters_net filters; /* ref FiltersNet */ + /* + * The token to request the next page of results. Each token refers to a + * specific page. + */ + char *next_page_token; /* string */ + /* + * 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 */ }; struct osc_read_net_peerings_arg { @@ -9450,6 +9888,17 @@ struct osc_read_net_access_point_services_arg { char *filters_str; int is_set_filters; struct filters_service filters; /* ref FiltersService */ + /* + * The token to request the next page of results. Each token refers to a + * specific page. + */ + char *next_page_token; /* string */ + /* + * 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 */ }; struct osc_read_nat_services_arg { @@ -9462,6 +9911,9 @@ struct osc_read_nat_services_arg { int dry_run; /* bool */ /* * One or more filters. + * -ClientTokens: array string + * The idempotency tokens provided when creating the NAT + * services. * -NatServiceIds: array string * The IDs of the NAT services. * -NetIds: array string @@ -9497,6 +9949,42 @@ struct osc_read_nat_services_arg { int results_per_page; /* int */ }; +struct osc_read_managed_policies_linked_to_user_group_arg { + /* Required: user_group_name */ + /* + * If true, checks whether you have the required permissions to perform + * the action. + */ + int is_set_dry_run; + int dry_run; /* bool */ + /* + * One or more filters. + * -PathPrefix: string + * The path prefix of the groups. If not specified, it is set to + * a slash (`/`). + * -UserGroupIds: array string + * The IDs of the user groups. + */ + char *filters_str; + int is_set_filters; + struct filters_user_group filters; /* ref FiltersUserGroup */ + /* + * The item starting the list of policies requested. + */ + int is_set_first_item; + int first_item; /* int */ + /* + * 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 */ + /* + * The name of the group. + */ + char *user_group_name; /* string */ +}; + struct osc_read_locations_arg { /* Required:none */ /* @@ -9505,6 +9993,17 @@ struct osc_read_locations_arg { */ int is_set_dry_run; int dry_run; /* bool */ + /* + * The token to request the next page of results. Each token refers to a + * specific page. + */ + char *next_page_token; /* string */ + /* + * 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 */ }; struct osc_read_load_balancers_arg { @@ -9559,7 +10058,7 @@ struct osc_read_listener_rules_arg { }; struct osc_read_linked_policies_arg { - /* Required:none */ + /* Required: user_name */ /* * If true, checks whether you have the required permissions to perform * the action. @@ -9569,8 +10068,8 @@ struct osc_read_linked_policies_arg { /* * One or more filters. * -PathPrefix: string - * The path prefix of the policies, set to a slash (`/`) by - * default. + * The path prefix of the policies. If not specified, it is set + * to a slash (`/`). */ char *filters_str; int is_set_filters; @@ -9582,7 +10081,7 @@ struct osc_read_linked_policies_arg { int first_item; /* int */ /* * The maximum number of items that can be returned in a single response - * (by default, 100). + * (by default, `100`). */ int is_set_results_per_page; int results_per_page; /* int */ @@ -9614,6 +10113,17 @@ struct osc_read_keypairs_arg { char *filters_str; int is_set_filters; struct filters_keypair filters; /* ref FiltersKeypair */ + /* + * The token to request the next page of results. Each token refers to a + * specific page. + */ + char *next_page_token; /* string */ + /* + * 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 */ }; struct osc_read_internet_services_arg { @@ -9647,6 +10157,17 @@ struct osc_read_internet_services_arg { char *filters_str; int is_set_filters; struct filters_internet_service filters; /* ref FiltersInternetService */ + /* + * The token to request the next page of results. Each token refers to a + * specific page. + */ + char *next_page_token; /* string */ + /* + * 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 */ }; struct osc_read_images_arg { @@ -9747,6 +10268,17 @@ struct osc_read_image_export_tasks_arg { char *filters_str; int is_set_filters; struct filters_export_task filters; /* ref FiltersExportTask */ + /* + * The token to request the next page of results. Each token refers to a + * specific page. + */ + char *next_page_token; /* string */ + /* + * 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 */ }; struct osc_read_flexible_gpus_arg { @@ -9809,6 +10341,17 @@ struct osc_read_direct_links_arg { char *filters_str; int is_set_filters; struct filters_direct_link filters; /* ref FiltersDirectLink */ + /* + * The token to request the next page of results. Each token refers to a + * specific page. + */ + char *next_page_token; /* string */ + /* + * 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 */ }; struct osc_read_direct_link_interfaces_arg { @@ -9829,6 +10372,17 @@ struct osc_read_direct_link_interfaces_arg { char *filters_str; int is_set_filters; struct filters_direct_link_interface filters; /* ref FiltersDirectLinkInterface */ + /* + * The token to request the next page of results. Each token refers to a + * specific page. + */ + char *next_page_token; /* string */ + /* + * 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 */ }; struct osc_read_dhcp_options_arg { @@ -9906,6 +10460,17 @@ struct osc_read_dedicated_groups_arg { char *filters_str; int is_set_filters; struct filters_dedicated_group filters; /* ref FiltersDedicatedGroup */ + /* + * The token to request the next page of results. Each token refers to a + * specific page. + */ + char *next_page_token; /* string */ + /* + * 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 */ }; struct osc_read_consumption_account_arg { @@ -9920,7 +10485,8 @@ struct osc_read_consumption_account_arg { * The beginning of the time period, in ISO 8601 date format (for * example, `2020-06-14`). The date-time format is also accepted, but * only with a time set to midnight (for example, - * `2020-06-14T00:00:00.000Z`). + * `2020-06-14T00:00:00.000Z`). This value is included in the time + * period. */ char *from_date; /* string */ /* @@ -9935,15 +10501,17 @@ struct osc_read_consumption_account_arg { /* * If true, the response also includes the unit price of the consumed * resource (`UnitPrice`) and the total price of the consumed resource - * during the specified time period (`Price`), in the currency of the - * Region's catalog. + * during the specified time period (`Price`), in the currency of your + * account. */ int is_set_show_price; int show_price; /* bool */ /* * 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 - * time set to midnight (for example, `2020-06-30T00:00:00.000Z`). + * time set to midnight (for example, `2020-06-30T00:00:00.000Z`). This + * value is excluded from the time period, and must be set to a later + * date than `FromDate`. */ char *to_date; /* string */ }; @@ -9998,6 +10566,17 @@ struct osc_read_client_gateways_arg { char *filters_str; int is_set_filters; struct filters_client_gateway filters; /* ref FiltersClientGateway */ + /* + * The token to request the next page of results. Each token refers to a + * specific page. + */ + char *next_page_token; /* string */ + /* + * 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 */ }; struct osc_read_catalogs_arg { @@ -10184,8 +10763,7 @@ struct osc_read_api_access_rules_arg { * -Descriptions: array string * One or more descriptions of API access rules. * -IpRanges: array string - * One or more IP addresses or CIDR blocks (for example, - * `192.0.2.0/16`). + * One or more IPs or CIDR blocks (for example, `192.0.2.0/16`). */ char *filters_str; int is_set_filters; @@ -10251,6 +10829,35 @@ struct osc_read_access_keys_arg { char *user_name; /* string */ }; +struct osc_put_user_group_policy_arg { + /* Required: policy_name, policy_document, user_group_name */ + /* + * If true, checks whether you have the required permissions to perform + * the action. + */ + int is_set_dry_run; + int dry_run; /* bool */ + /* + * 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 */ + /* + * The name of the policy. + */ + char *policy_name; /* string */ + /* + * The name of the group. + */ + char *user_group_name; /* string */ + /* + * The path to the group. If not specified, it is set to a slash (`/`). + */ + char *user_group_path; /* string */ +}; + struct osc_link_volume_arg { /* Required: device_name, vm_id, volume_id */ /* @@ -10437,26 +11044,47 @@ struct osc_link_nic_arg { char *vm_id; /* string */ }; +struct osc_link_managed_policy_to_user_group_arg { + /* Required: policy_orn, user_group_name */ + /* + * If true, checks whether you have the required permissions to perform + * the action. + */ + int is_set_dry_run; + int dry_run; /* bool */ + /* + * 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 */ + /* + * The name of the group you want to link the policy to. + */ + char *user_group_name; /* string */ +}; + struct osc_link_load_balancer_backend_machines_arg { /* Required: load_balancer_name */ /* - * One or more public IPs of back-end VMs. + * One or more public IPs of backend VMs. */ char *backend_ips_str; char **backend_ips; /* array string */ /* - * One or more IDs of back-end VMs. + * One or more IDs of backend VMs. */ char *backend_vm_ids_str; char **backend_vm_ids; /* array string */ /* - * If true, checks whether you have the required permissions to perform + * If true, checks whether you have the required permissions to perform * the action. */ int is_set_dry_run; int dry_run; /* bool */ /* - * The name of the load balancer. + * The name of the load balancer. */ char *load_balancer_name; /* string */ }; @@ -10500,7 +11128,7 @@ struct osc_link_flexible_gpu_arg { struct osc_deregister_vms_in_load_balancer_arg { /* Required: backend_vm_ids, load_balancer_name */ /* - * One or more IDs of back-end VMs. + * One or more IDs of backend VMs. */ char *backend_vm_ids_str; char **backend_vm_ids; /* array string */ @@ -10587,7 +11215,7 @@ struct osc_delete_vm_template_arg { int is_set_dry_run; int dry_run; /* bool */ /* - * The ID of the VM template you want to delete. + * The ID of the VM template you want to delete. */ char *vm_template_id; /* string */ }; @@ -10620,6 +11248,52 @@ struct osc_delete_virtual_gateway_arg { char *virtual_gateway_id; /* string */ }; +struct osc_delete_user_group_policy_arg { + /* Required: user_group_name, policy_name */ + /* + * If true, checks whether you have the required permissions to perform + * the action. + */ + int is_set_dry_run; + int dry_run; /* bool */ + /* + * The name of the policy document you want to delete. + */ + char *policy_name; /* string */ + /* + * The name of the group. + */ + char *user_group_name; /* string */ + /* + * The path to the group. If not specified, it is set to a slash (`/`). + */ + char *user_group_path; /* string */ +}; + +struct osc_delete_user_group_arg { + /* Required: user_group_name */ + /* + * If true, checks whether you have the required permissions to perform + * the action. + */ + int is_set_dry_run; + int dry_run; /* bool */ + /* + * If true, forces the deletion of the user group even if it is not + * empty. + */ + int is_set_force; + int force; /* bool */ + /* + * The path to the group. If not specified, it is set to a slash (`/`). + */ + char *path; /* string */ + /* + * The name of the group you want to delete. + */ + char *user_group_name; /* string */ +}; + struct osc_delete_user_arg { /* Required: user_name */ /* @@ -11322,7 +11996,7 @@ struct osc_create_volume_arg { /* * 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). + * is not created from a snapshot (`SnapshotId` unspecified). */ int is_set_size; int size; /* int */ @@ -11570,7 +12244,7 @@ struct osc_create_vm_template_arg { */ char *cpu_generation; /* string */ /* - * The performance of the VMs (`medium` \\| `high` \\| `highest`). + * The performance of the VMs (`medium` \\| `high` \\| `highest`). */ char *cpu_performance; /* string */ /* @@ -11685,6 +12359,24 @@ struct osc_create_virtual_gateway_arg { int dry_run; /* bool */ }; +struct osc_create_user_group_arg { + /* Required: user_group_name */ + /* + * If true, checks whether you have the required permissions to perform + * the action. + */ + int is_set_dry_run; + int dry_run; /* bool */ + /* + * The path to the group. If not specified, it is set to a slash (`/`). + */ + char *path; /* string */ + /* + * The name of the group. + */ + char *user_group_name; /* string */ +}; + struct osc_create_user_arg { /* Required: user_name */ /* @@ -11695,16 +12387,15 @@ struct osc_create_user_arg { int dry_run; /* bool */ /* * 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 - * (_). + * 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 */ /* - * The name of the EIM user you want to create. This user name must - * contain between 1 and 64 alphanumeric characters and/or pluses (+), - * equals (=), commas (,), periods (.), at signs (@), dashes (-), or - * underscores (_). + * 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 */ }; @@ -11850,14 +12541,14 @@ struct osc_create_server_certificate_arg { /* Required: body, private_key, name */ /* * The PEM-encoded X509 certificate.
With OSC CLI, use the - * following syntax to make sure your CA file is correctly parsed: - * `--CaPem="$(cat FILENAME)"`. + * following syntax to make sure your certificate file is correctly + * parsed: `--Body="$(cat FILENAME)"`. */ char *body; /* string */ /* * The PEM-encoded intermediate certification authorities.
With OSC - * CLI, use the following syntax to make sure your CA file is correctly - * parsed: `--CaPem="$(cat FILENAME)"`. + * CLI, use the following syntax to make sure your certificate chain + * file is correctly parsed: `--Chain="$(cat FILENAME)"`. */ char *chain; /* string */ /* @@ -11879,8 +12570,8 @@ struct osc_create_server_certificate_arg { char *path; /* string */ /* * The PEM-encoded private key matching the certificate.
With OSC - * CLI, use the following syntax to make sure your CA file is correctly - * parsed: `--CaPem="$(cat FILENAME)"`. + * CLI, use the following syntax to make sure your key file is correctly + * parsed: `--PrivateKey="$(cat FILENAME)"`. */ char *private_key; /* string */ }; @@ -12251,6 +12942,10 @@ struct osc_create_net_arg { struct osc_create_nat_service_arg { /* Required: public_ip_id, subnet_id */ + /* + * A unique identifier which enables you to manage the idempotency. + */ + char *client_token; /* string */ /* * If true, checks whether you have the required permissions to perform * the action. @@ -12344,10 +13039,10 @@ struct osc_create_load_balancer_listeners_arg { * One or more listeners for the load balancer. * Information about the listener to create. * -BackendPort: int - * The port on which the back-end VM is listening (between `1` - * and `65535`, both included). + * The port on which the backend VM is listening (between `1` and + * `65535`, both included). * -BackendProtocol: string - * The protocol for routing traffic to back-end VMs (`HTTP` \\| + * 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` @@ -12382,10 +13077,10 @@ struct osc_create_load_balancer_arg { * One or more listeners to create. * Information about the listener to create. * -BackendPort: int - * The port on which the back-end VM is listening (between `1` - * and `65535`, both included). + * The port on which the backend VM is listening (between `1` and + * `65535`, both included). * -BackendProtocol: string - * The protocol for routing traffic to back-end VMs (`HTTP` \\| + * 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` @@ -12481,7 +13176,7 @@ struct osc_create_listener_rule_arg { * 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 * A human-readable name for the listener rule. * -PathPattern: string @@ -12894,7 +13589,7 @@ struct osc_create_ca_arg { struct osc_create_api_access_rule_arg { /* Required:none */ /* - * One or more IDs of Client Certificate Authorities (CAs). + * One or more IDs of Client Certificate Authorities (CAs). */ char *ca_ids_str; char **ca_ids; /* array string */ @@ -12915,7 +13610,7 @@ struct osc_create_api_access_rule_arg { int is_set_dry_run; int dry_run; /* bool */ /* - * One or more IP addresses or CIDR blocks (for example, `192.0.2.0/16`). + * One or more IPs or CIDR blocks (for example, `192.0.2.0/16`). */ char *ip_ranges_str; char **ip_ranges; /* array string */ @@ -13033,6 +13728,32 @@ struct osc_check_authentication_arg { char *password; /* string */ }; +struct osc_add_user_to_user_group_arg { + /* Required: user_group_name, user_name */ + /* + * If true, checks whether you have the required permissions to perform + * the action. + */ + int is_set_dry_run; + int dry_run; /* bool */ + /* + * The name of the group you want to add a user to. + */ + char *user_group_name; /* string */ + /* + * The path to the group. If not specified, it is set to a slash (`/`). + */ + char *user_group_path; /* string */ + /* + * The name of the user you want to add to the group. + */ + char *user_name; /* string */ + /* + * The path to the user. If not specified, it is set to a slash (`/`). + */ + char *user_path; /* string */ +}; + struct osc_accept_net_peering_arg { /* Required: net_peering_id */ /* @@ -13139,6 +13860,7 @@ int osc_update_volume(struct osc_env *e, struct osc_str *out, struct osc_update_ int osc_update_vm_template(struct osc_env *e, struct osc_str *out, struct osc_update_vm_template_arg *args); int osc_update_vm_group(struct osc_env *e, struct osc_str *out, struct osc_update_vm_group_arg *args); int osc_update_vm(struct osc_env *e, struct osc_str *out, struct osc_update_vm_arg *args); +int osc_update_user_group(struct osc_env *e, struct osc_str *out, struct osc_update_user_group_arg *args); int osc_update_user(struct osc_env *e, struct osc_str *out, struct osc_update_user_arg *args); int osc_update_subnet(struct osc_env *e, struct osc_str *out, struct osc_update_subnet_arg *args); int osc_update_snapshot(struct osc_env *e, struct osc_str *out, struct osc_update_snapshot_arg *args); @@ -13167,6 +13889,7 @@ int osc_unlink_public_ip(struct osc_env *e, struct osc_str *out, struct osc_unli int osc_unlink_private_ips(struct osc_env *e, struct osc_str *out, struct osc_unlink_private_ips_arg *args); int osc_unlink_policy(struct osc_env *e, struct osc_str *out, struct osc_unlink_policy_arg *args); int osc_unlink_nic(struct osc_env *e, struct osc_str *out, struct osc_unlink_nic_arg *args); +int osc_unlink_managed_policy_from_user_group(struct osc_env *e, struct osc_str *out, struct osc_unlink_managed_policy_from_user_group_arg *args); int osc_unlink_load_balancer_backend_machines(struct osc_env *e, struct osc_str *out, struct osc_unlink_load_balancer_backend_machines_arg *args); int osc_unlink_internet_service(struct osc_env *e, struct osc_str *out, struct osc_unlink_internet_service_arg *args); int osc_unlink_flexible_gpu(struct osc_env *e, struct osc_str *out, struct osc_unlink_flexible_gpu_arg *args); @@ -13175,6 +13898,7 @@ int osc_start_vms(struct osc_env *e, struct osc_str *out, struct osc_start_vms_a int osc_set_default_policy_version(struct osc_env *e, struct osc_str *out, struct osc_set_default_policy_version_arg *args); int osc_scale_up_vm_group(struct osc_env *e, struct osc_str *out, struct osc_scale_up_vm_group_arg *args); int osc_scale_down_vm_group(struct osc_env *e, struct osc_str *out, struct osc_scale_down_vm_group_arg *args); +int osc_remove_user_from_user_group(struct osc_env *e, struct osc_str *out, struct osc_remove_user_from_user_group_arg *args); int osc_reject_net_peering(struct osc_env *e, struct osc_str *out, struct osc_reject_net_peering_arg *args); int osc_register_vms_in_load_balancer(struct osc_env *e, struct osc_str *out, struct osc_register_vms_in_load_balancer_arg *args); int osc_reboot_vms(struct osc_env *e, struct osc_str *out, struct osc_reboot_vms_arg *args); @@ -13188,6 +13912,11 @@ int osc_read_vm_templates(struct osc_env *e, struct osc_str *out, struct osc_rea int osc_read_vm_groups(struct osc_env *e, struct osc_str *out, struct osc_read_vm_groups_arg *args); int osc_read_virtual_gateways(struct osc_env *e, struct osc_str *out, struct osc_read_virtual_gateways_arg *args); int osc_read_users(struct osc_env *e, struct osc_str *out, struct osc_read_users_arg *args); +int osc_read_user_groups_per_user(struct osc_env *e, struct osc_str *out, struct osc_read_user_groups_per_user_arg *args); +int osc_read_user_groups(struct osc_env *e, struct osc_str *out, struct osc_read_user_groups_arg *args); +int osc_read_user_group_policy(struct osc_env *e, struct osc_str *out, struct osc_read_user_group_policy_arg *args); +int osc_read_user_group_policies(struct osc_env *e, struct osc_str *out, struct osc_read_user_group_policies_arg *args); +int osc_read_user_group(struct osc_env *e, struct osc_str *out, struct osc_read_user_group_arg *args); int osc_read_tags(struct osc_env *e, struct osc_str *out, struct osc_read_tags_arg *args); int osc_read_subregions(struct osc_env *e, struct osc_str *out, struct osc_read_subregions_arg *args); int osc_read_subnets(struct osc_env *e, struct osc_str *out, struct osc_read_subnets_arg *args); @@ -13213,6 +13942,7 @@ int osc_read_net_peerings(struct osc_env *e, struct osc_str *out, struct osc_rea int osc_read_net_access_points(struct osc_env *e, struct osc_str *out, struct osc_read_net_access_points_arg *args); int osc_read_net_access_point_services(struct osc_env *e, struct osc_str *out, struct osc_read_net_access_point_services_arg *args); int osc_read_nat_services(struct osc_env *e, struct osc_str *out, struct osc_read_nat_services_arg *args); +int osc_read_managed_policies_linked_to_user_group(struct osc_env *e, struct osc_str *out, struct osc_read_managed_policies_linked_to_user_group_arg *args); int osc_read_locations(struct osc_env *e, struct osc_str *out, struct osc_read_locations_arg *args); int osc_read_load_balancers(struct osc_env *e, struct osc_str *out, struct osc_read_load_balancers_arg *args); int osc_read_load_balancer_tags(struct osc_env *e, struct osc_str *out, struct osc_read_load_balancer_tags_arg *args); @@ -13240,6 +13970,7 @@ int osc_read_api_access_policy(struct osc_env *e, struct osc_str *out, struct os int osc_read_admin_password(struct osc_env *e, struct osc_str *out, struct osc_read_admin_password_arg *args); int osc_read_accounts(struct osc_env *e, struct osc_str *out, struct osc_read_accounts_arg *args); int osc_read_access_keys(struct osc_env *e, struct osc_str *out, struct osc_read_access_keys_arg *args); +int osc_put_user_group_policy(struct osc_env *e, struct osc_str *out, struct osc_put_user_group_policy_arg *args); int osc_link_volume(struct osc_env *e, struct osc_str *out, struct osc_link_volume_arg *args); int osc_link_virtual_gateway(struct osc_env *e, struct osc_str *out, struct osc_link_virtual_gateway_arg *args); int osc_link_route_table(struct osc_env *e, struct osc_str *out, struct osc_link_route_table_arg *args); @@ -13247,6 +13978,7 @@ int osc_link_public_ip(struct osc_env *e, struct osc_str *out, struct osc_link_p int osc_link_private_ips(struct osc_env *e, struct osc_str *out, struct osc_link_private_ips_arg *args); int osc_link_policy(struct osc_env *e, struct osc_str *out, struct osc_link_policy_arg *args); int osc_link_nic(struct osc_env *e, struct osc_str *out, struct osc_link_nic_arg *args); +int osc_link_managed_policy_to_user_group(struct osc_env *e, struct osc_str *out, struct osc_link_managed_policy_to_user_group_arg *args); int osc_link_load_balancer_backend_machines(struct osc_env *e, struct osc_str *out, struct osc_link_load_balancer_backend_machines_arg *args); int osc_link_internet_service(struct osc_env *e, struct osc_str *out, struct osc_link_internet_service_arg *args); int osc_link_flexible_gpu(struct osc_env *e, struct osc_str *out, struct osc_link_flexible_gpu_arg *args); @@ -13258,6 +13990,8 @@ int osc_delete_vms(struct osc_env *e, struct osc_str *out, struct osc_delete_vms int osc_delete_vm_template(struct osc_env *e, struct osc_str *out, struct osc_delete_vm_template_arg *args); int osc_delete_vm_group(struct osc_env *e, struct osc_str *out, struct osc_delete_vm_group_arg *args); int osc_delete_virtual_gateway(struct osc_env *e, struct osc_str *out, struct osc_delete_virtual_gateway_arg *args); +int osc_delete_user_group_policy(struct osc_env *e, struct osc_str *out, struct osc_delete_user_group_policy_arg *args); +int osc_delete_user_group(struct osc_env *e, struct osc_str *out, struct osc_delete_user_group_arg *args); int osc_delete_user(struct osc_env *e, struct osc_str *out, struct osc_delete_user_arg *args); int osc_delete_tags(struct osc_env *e, struct osc_str *out, struct osc_delete_tags_arg *args); int osc_delete_subnet(struct osc_env *e, struct osc_str *out, struct osc_delete_subnet_arg *args); @@ -13300,6 +14034,7 @@ int osc_create_vms(struct osc_env *e, struct osc_str *out, struct osc_create_vms int osc_create_vm_template(struct osc_env *e, struct osc_str *out, struct osc_create_vm_template_arg *args); int osc_create_vm_group(struct osc_env *e, struct osc_str *out, struct osc_create_vm_group_arg *args); int osc_create_virtual_gateway(struct osc_env *e, struct osc_str *out, struct osc_create_virtual_gateway_arg *args); +int osc_create_user_group(struct osc_env *e, struct osc_str *out, struct osc_create_user_group_arg *args); int osc_create_user(struct osc_env *e, struct osc_str *out, struct osc_create_user_arg *args); int osc_create_tags(struct osc_env *e, struct osc_str *out, struct osc_create_tags_arg *args); int osc_create_subnet(struct osc_env *e, struct osc_str *out, struct osc_create_subnet_arg *args); @@ -13339,6 +14074,7 @@ int osc_create_api_access_rule(struct osc_env *e, struct osc_str *out, struct os int osc_create_account(struct osc_env *e, struct osc_str *out, struct osc_create_account_arg *args); int osc_create_access_key(struct osc_env *e, struct osc_str *out, struct osc_create_access_key_arg *args); int osc_check_authentication(struct osc_env *e, struct osc_str *out, struct osc_check_authentication_arg *args); +int osc_add_user_to_user_group(struct osc_env *e, struct osc_str *out, struct osc_add_user_to_user_group_arg *args); int osc_accept_net_peering(struct osc_env *e, struct osc_str *out, struct osc_accept_net_peering_arg *args); #ifdef __cplusplus diff --git a/sdk_version b/sdk_version index ac39a10..78bc1ab 100644 --- a/sdk_version +++ b/sdk_version @@ -1 +1 @@ -0.9.0 +0.10.0