This is an updated version of https://github.com/tboyko/apple_vpp
Ruby bindings for the Apple VPP Managed App License Distribution API.
Add this line to your application's Gemfile:
gem 'apple_vpp'
And then execute:
$ bundle
Or install it yourself as:
$ gem install apple_vpp
Use the library like this:
s_token = File.read './from_apple_portal.vpptoken'
c = AppleVPP::Client.new s_token
resp = c.get_users
c.edit_user user_id: resp[:users].first[:user_id],
email: 'youremail@example.org'
For information beyond what is included here, refer to the "Mobile Device Management Protocol Reference" documentation on Apple's Developer site.
One of these is required:
- user_id
- client_user_id_str
One of these is required:
- adam_id
- license_id
Optional:
- pricing_param
Optional:
- client_context
- apn_token
Required:
- license_id
One of these is required:
- user_id
- client_user_id_str
Optional:
Optional:
- include_license_counts
Optional:
- since_modified_token
- adam_id
- pricing_param
One of these is required:
- user_id
- client_user_id_str
Optional:
- its_id_hash
Optional:
- since_modified_token
- include_retired
Required:
- adam_id_str
- pricing_param
One (and only one) of these are required:
- associate_client_user_id_strs
- associate_serial_numbers
- disassociate_client_user_id_strs
- disassociate_license_id_strs
- disassociate_serial_numbers
Optional:
- notify_disassociation
Required:
- client_user_id_str
Optional:
One of these is required:
- user_id
- client_user_id_str
Should an error be reported by the Apple API service, the library will raise a custom error class that will correspond to the Apple error code like so:
AppleVPP::Error::Code#{error_code}
A message will also be provided with the error.
The Apple API service may return a 503 Service Unavailable
error if the service is overwhelmed or if your client is being too aggressive. In this scenario, apple_vpp
will raise AppleVPP::Error::ServiceUnavailable
. The raised error will include a method .retry_in_seconds
which returns an integer value, in seconds, of how long you should wait before retrying your request. The raw Retry-After
header that Apple returns is also available via .retry_after
.
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request