Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Get the user entity by name

    • To get an administrator from the enterprise they are currently working in, without knowing the enterprise ID, use a URL with a wildcard for all enterprises, which is the underscore character "_". 

    • If you know the ID of the user, you can retrieve the user entity directly with the users link.
      For example, the cloud admin user has an ID of 1, so the link would be: "https://example.com/api/admin/enterprises/_/users/1"

    • Or use the "has" parameter to perform a search for the user by text such as username, name, or details

      Code Block
      curl -X GET \
        'https://example.com/api/admin/enterprises/_/users?has=cloudadmin' \
         -H 'Accept: application/vnd.abiquo.users+json;version=4.7' \
         -u admin:xabiquo k --verbose | jq .


    • This request returns a collection of users. Keep the required user entity, which starts with the braces before its ID

      Code Block
      {
          "totalSize": 1,
          "links": [
              {
                  "rel": "first",
                  "href": "https://example.com:443/api/admin/enterprises/_/users?limit=25&has=cloudadmin&by=name&asc=true"
              },
              {
                  "rel": "last",
                  "href": "https://example.com:443/api/admin/enterprises/_/users?startwith=0&limit=25&has=cloudadmin&by=name&asc=true"
              }
          ],
          "collection": [
              {
                  "id": 10,
                  "nick": "cloudadmin",
                  "name": "Cloud",
                  "surname": "Admin",
                  "description": "Secondary cloud admin user",
                  "email": "cloudadmin@example.com",
                  "locale": "en_US",
                  "authType": "ABIQUO",
                  "active": true,
                  "publicSshKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDgm0ckfblahblahblah",
                  "allowedCIDRs": [],
                  "firstLogin": false,
                  "locked": false,
                  "phoneNumber": "555123456",
                  "links": [
                      {
                          "title": "Marketing Department",
                          "rel": "enterprise",
                          "type": "application/vnd.abiquo.enterprise+json",
                          "href": "https://example.com:443/api/admin/enterprises/3"
                      },
                      {
                          "title": "CLOUD_ADMIN",
                          "rel": "role",
                          "type": "application/vnd.abiquo.role+json",
                          "href": "https://example.com:443/api/admin/roles/1"
                      },
                      {
                          "title": "cloudadmin",
                          "rel": "edit",
                          "type": "application/vnd.abiquo.user+json",
                          "href": "https://example.com:443/api/admin/enterprises/3/users/10"
                      },
                      {
                          "title": "Global scope",
                          "rel": "scope",
                          "type": "application/vnd.abiquo.scope+json",
                          "href": "https://example.com:443/api/admin/scopes/1"
                      },
                      {
                          "title": "virtual machines",
                          "rel": "virtualmachines",
                          "type": "application/vnd.abiquo.virtualmachines+json",
                          "href": "https://example.com:443/api/admin/enterprises/3/users/10/action/virtualmachines"
                      },
                      {
                          "title": "pending tasks",
                          "rel": "pendingtasks",
                          "type": "application/vnd.abiquo.tasks+json",
                          "href": "https://example.com:443/api/admin/enterprises/3/users/10/action/pendingtasks"
                      },
                      {
                          "title": "applications",
                          "rel": "applications",
                          "type": "application/vnd.abiquo.applications+json",
                          "href": "https://example.com:443/api/admin/enterprises/3/users/10/applications"
                      },
                      {
                          "title": "async tasks",
                          "rel": "asynctasks",
                          "type": "application/vnd.abiquo.asynctasks+json",
                          "href": "https://example.com:443/api/admin/enterprises/3/users/10/asynctasks"
                      }
                  ]
              }
          ]
      }


  2. Get the new enterprise by name

    Code Block
    curl -X GET \
      'https://example.com/api/admin/enterprises?has=Finance' \
      -H 'Accept: application/vnd.abiquo.enterprises+json;version=4.7' \


    1. Sample response

      Expand
      Code Block
      {
          "totalSize": 1,
          "links": [
              {
                  "rel": "first",
                  "href": "https://example.com:443/api/admin/enterprises?limit=25&has=Finance&by=name&asc=true"
              },
              {
                  "rel": "last",
                  "href": "https://example.com:443/api/admin/enterprises?startwith=0&limit=25&has=Finance&by=name&asc=true"
              }
          ],
          "collection": [
              {
                  "id": 2,
                  "name": "Finance Department",
                  "isReservationRestricted": false,
                  "workflow": false,
                  "twoFactorAuthenticationMandatory": false,
                  "reseller": false,
                  "keyNode": false,
                  "diskSoftLimitInMb": 0,
                  "diskHardLimitInMb": 0,
                  "storageSoftInMb": 0,
                  "storageHardInMb": 0,
                  "vmsSoft": 0,
                  "vmsHard": 0,
                  "vlansSoft": 0,
                  "vlansHard": 0,
                  "publicIpsSoft": 0,
                  "publicIpsHard": 0,
                  "repositorySoftInMb": 0,
                  "repositoryHardInMb": 0,
                  "links": [
                      {
                          "title": "Finance Department",
                          "rel": "edit",
                          "type": "application/vnd.abiquo.enterprise+json",
                          "href": "https://example.com:443/api/admin/enterprises/2"
                      },
                      {
                          "title": "users",
                          "rel": "users",
                          "type": "application/vnd.abiquo.users+json",
                          "href": "https://example.com:443/api/admin/enterprises/2/users"
                      },
                      {
                          "title": "properties",
                          "rel": "properties",
                          "type": "application/vnd.abiquo.enterpriseproperties+json",
                          "href": "https://example.com:443/api/admin/enterprises/2/properties"
                      },
                      {
                          "title": "Global scope",
                          "rel": "scope",
                          "type": "application/vnd.abiquo.scope+json",
                          "href": "https://example.com:443/api/admin/scopes/1"
                      },
                      {
                          "title": "template definitions lists",
                          "rel": "appslib/templateDefinitionLists",
                          "type": "application/vnd.abiquo.templatedefinitionlists+json",
                          "href": "https://example.com:443/api/admin/enterprises/2/appslib/templateDefinitionLists"
                      },
                      {
                          "title": "template defintion paths",
                          "rel": "appslib/templateDefinitions",
                          "type": "application/vnd.abiquo.templatedefinitions+json",
                          "href": "https://example.com:443/api/admin/enterprises/2/appslib/templateDefinitions"
                      },
                      {
                          "title": "repositories",
                          "rel": "datacenterrepositories",
                          "type": "application/vnd.abiquo.datacenterrepositories+json",
                          "href": "https://example.com:443/api/admin/enterprises/2/datacenterrepositories"
                      },
                      {
                          "title": "virtual machines",
                          "rel": "virtualmachines",
                          "type": "application/vnd.abiquo.virtualmachines+json",
                          "href": "https://example.com:443/api/admin/enterprises/2/action/virtualmachines"
                      },
                      {
                          "title": "virtual appliances",
                          "rel": "virtualappliances",
                          "type": "application/vnd.abiquo.virtualappliances+json",
                          "href": "https://example.com:443/api/admin/enterprises/2/action/virtualappliances"
                      },
                      {
                          "title": "ips",
                          "rel": "ips",
                          "type": "application/vnd.abiquo.privateips+json",
                          "href": "https://example.com:443/api/admin/enterprises/2/action/ips"
                      },
                      {
                          "title": "virtual datacenters",
                          "rel": "cloud/virtualdatacenters",
                          "type": "application/vnd.abiquo.virtualdatacenters+json",
                          "href": "https://example.com:443/api/admin/enterprises/2/action/virtualdatacenters"
                      },
                      {
                          "title": "reserved machines",
                          "rel": "reservedmachines",
                          "type": "application/vnd.abiquo.machines+json",
                          "href": "https://example.com:443/api/admin/enterprises/2/reservedmachines"
                      },
                      {
                          "title": "limits",
                          "rel": "limits",
                          "type": "application/vnd.abiquo.limits+json",
                          "href": "https://example.com:443/api/admin/enterprises/2/limits"
                      },
                      {
                          "title": "providerlimits",
                          "rel": "providerlimits",
                          "type": "application/vnd.abiquo.providerlimits+json",
                          "href": "https://example.com:443/api/admin/enterprises/2/providerlimits"
                      },
                      {
                          "title": "volumes",
                          "rel": "volumes",
                          "type": "application/vnd.abiquo.volumes+json",
                          "href": "https://example.com:443/api/admin/enterprises/2/action/volumes"
                      },
                      {
                          "title": "external networks",
                          "rel": "externalnetworks",
                          "type": "application/vnd.abiquo.vlans+json",
                          "href": "https://example.com:443/api/admin/enterprises/2/action/externalnetworks"
                      },
                      {
                          "title": "pending tasks",
                          "rel": "pendingtasks",
                          "type": "application/vnd.abiquo.tasks+json",
                          "href": "https://example.com:443/api/admin/enterprises/2/action/pendingtasks"
                      },
                      {
                          "title": "credentials",
                          "rel": "credentials",
                          "type": "application/vnd.abiquo.publiccloudcredentialslist+json",
                          "href": "https://example.com:443/api/admin/enterprises/2/credentials"
                      },
                      {
                          "title": "pricingcredentials",
                          "rel": "pricingcredentials",
                          "type": "application/vnd.abiquo.pricingcredentialslist+json",
                          "href": "https://example.com:443/api/admin/enterprises/2/pricingcredentials"
                      },
                      {
                          "title": "virtual appliances specs",
                          "rel": "vappspecs",
                          "type": "application/vnd.abiquo.virtualappliancespecs+json",
                          "href": "https://example.com:443/api/admin/enterprises/2/vappspecs"
                      },
                      {
                          "title": "bills",
                          "rel": "bills",
                          "type": "application/vnd.abiquo.bills+json",
                          "href": "https://example.com:443/api/statistics/enterpriseresources/2/bills"
                      },
                      {
                          "title": "billregisters",
                          "rel": "billregisters",
                          "type": "application/vnd.abiquo.bills+json",
                          "href": "https://example.com:443/api/statistics/enterpriseresources/2/billregisters"
                      },
                      {
                          "title": "estimation",
                          "rel": "estimation",
                          "type": "text/plain",
                          "href": "https://example.com:443/api/statistics/enterpriseresources/2/billregisters/action/estimate"
                      },
                      {
                          "title": "Bill providers",
                          "rel": "billproviders",
                          "type": "application/vnd.abiquo.billproviders+json",
                          "href": "https://example.com:443/api/statistics/enterpriseresources/2/bills/action/providers"
                      },
                      {
                          "title": "Budgets",
                          "rel": "budgets",
                          "type": "application/vnd.abiquo.budgets+json",
                          "href": "https://example.com:443/api/admin/enterprises/2/budgets"
                      }
                  ],
                  "ramSoft": 0,
                  "ramHard": 0,
                  "cpuSoft": 0,
                  "cpuHard": 0
              }
          ]
      }


    2. Find the required enterprise in the collection
    3. Save the enterprise "edit" link

      Code Block
                      {
                          "title": "Finance Department",
                          "rel": "edit",
                          "type": "application/vnd.abiquo.enterprise+json",
                          "href": "https://example.com:443/api/admin/enterprises/2"
                      },


  3. Edit the user entity to add the new enterprise link

    1. Find the link with the "rel" value of "enterprise" and replace it with the new enterprise link. For example, to switch to enterprise 2, you could use the link below

    2. Remember that the user entity must be complete in order to save the user, e.g. add an email attribute for the user because it is required.

    3. Sample enterprise link

      Code Block
          {
            "href": "https://example.com/api/admin/enterprises/2", 
            "rel": "enterprise"
          }


    4. Sample user entity with new enterprise link

      expand

      Code Block
               {
                  "id": 10,
                  "nick": "cloudadmin",
                  "name": "Cloud",
                  "surname": "Admin",
                  "description": "Secondary cloud admin user",
                  "email": "cloudadmin@example.com",
                  "locale": "en_US",
                  "authType": "ABIQUO",
                  "active": true,
                  "publicSshKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDblahblahblah",
                  "allowedCIDRs": [],
                  "firstLogin": false,
                  "locked": false,
                  "phoneNumber": "555123456",
                  "links": [
                      {
                          "rel": "enterprise",
                          "href": "https://example.com:443/api/admin/enterprises/2"
                      },
                      {
                          "title": "CLOUD_ADMIN",
                          "rel": "role",
                          "type": "application/vnd.abiquo.role+json",
                          "href": "https://example.com:443/api/admin/roles/1"
                      },
                      {
                          "title": "cloudadmin",
                          "rel": "edit",
                          "type": "application/vnd.abiquo.user+json",
                          "href": "https://example.com:443/api/admin/enterprises/3/users/10"
                      },
                      {
                          "title": "Global scope",
                          "rel": "scope",
                          "type": "application/vnd.abiquo.scope+json",
                          "href": "https://example.com:443/api/admin/scopes/1"
                      },
                      {
                          "title": "virtual machines",
                          "rel": "virtualmachines",
                          "type": "application/vnd.abiquo.virtualmachines+json",
                          "href": "https://example.com:443/api/admin/enterprises/3/users/10/action/virtualmachines"
                      },
                      {
                          "title": "pending tasks",
                          "rel": "pendingtasks",
                          "type": "application/vnd.abiquo.tasks+json",
                          "href": "https://example.com:443/api/admin/enterprises/3/users/10/action/pendingtasks"
                      },
                      {
                          "title": "applications",
                          "rel": "applications",
                          "type": "application/vnd.abiquo.applications+json",
                          "href": "https://example.com:443/api/admin/enterprises/3/users/10/applications"
                      },
                      {
                          "title": "async tasks",
                          "rel": "asynctasks",
                          "type": "application/vnd.abiquo.asynctasks+json",
                          "href": "https://example.com:443/api/admin/enterprises/3/users/10/asynctasks"
                      }
                  ]
              }


  4. Update the user in any enterprise

    1. In the user URL, replace the enterprise ID with a wildcard to represent all enterprises, which is the underscore character "_". 

    2. Perform a PUT request to the user, sending the updated user entity

    3. cURL request

      Code Block
      curl -X PUT \
        https://example.com/api/admin/enterprises/_/users/10 \
        -H 'Accept: application/vnd.abiquo.user+json;version=4.7' \
        -H 'Content-Type: application/vnd.abiquo.user+json;version=4.7' \
        -u user:password --verbose \
        -d @requestpayload.json 


    4. Sample response. Success status code: 200

      expand

      Code Block
      {
          "id": 10,
          "nick": "cloudadmin",
          "name": "Cloud",
          "surname": "Admin",
          "description": "Secondary cloud admin user",
          "email": "cloudadmin@example.com",
          "locale": "en_US",
          "authType": "ABIQUO",
          "active": true,
          "publicSshKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDgm0ckfblahblahblah",
          "allowedCIDRs": [],
          "firstLogin": false,
          "locked": false,
          "phoneNumber": "555123456",
          "links": [
              {
                  "title": "Finance Department",
                  "rel": "enterprise",
                  "type": "application/vnd.abiquo.enterprise+json",
                  "href": "https://example.com:443/api/admin/enterprises/2"
              },
              {
                  "title": "CLOUD_ADMIN",
                  "rel": "role",
                  "type": "application/vnd.abiquo.role+json",
                  "href": "https://example.com:443/api/admin/roles/1"
              },
              {
                  "title": "cloudadmin",
                  "rel": "edit",
                  "type": "application/vnd.abiquo.user+json",
                  "href": "https://example.com:443/api/admin/enterprises/2/users/10"
              },
              {
                  "title": "Global scope",
                  "rel": "scope",
                  "type": "application/vnd.abiquo.scope+json",
                  "href": "https://example.com:443/api/admin/scopes/1"
              },
              {
                  "title": "virtual machines",
                  "rel": "virtualmachines",
                  "type": "application/vnd.abiquo.virtualmachines+json",
                  "href": "https://example.com:443/api/admin/enterprises/2/users/10/action/virtualmachines"
              },
              {
                  "title": "pending tasks",
                  "rel": "pendingtasks",
                  "type": "application/vnd.abiquo.tasks+json",
                  "href": "https://example.com:443/api/admin/enterprises/2/users/10/action/pendingtasks"
              },
              {
                  "title": "applications",
                  "rel": "applications",
                  "type": "application/vnd.abiquo.applications+json",
                  "href": "https://example.com:443/api/admin/enterprises/2/users/10/applications"
              },
              {
                  "title": "async tasks",
                  "rel": "asynctasks",
                  "type": "application/vnd.abiquo.asynctasks+json",
                  "href": "https://example.com:443/api/admin/enterprises/2/users/10/asynctasks"
              }
          ]
      }