Merge branch '10349-cookbook' closes #10349
[arvados.git] / doc / sdk / perl / example.html.textile.liquid
1 ---
2 layout: default
3 navsection: sdk
4 navmenu: Perl
5 title: "Examples"
6 ...
7 {% comment %}
8 Copyright (C) The Arvados Authors. All rights reserved.
9
10 SPDX-License-Identifier: CC-BY-SA-3.0
11 {% endcomment %}
12
13 h2. Initialize SDK
14
15 Set up an API client user agent:
16
17 {% codeblock as perl %}
18 use Arvados;
19 my $arv = Arvados->new('apiVersion' => 'v1');
20 {% endcodeblock %}
21
22 The SDK retrieves the list of API methods from the server at run time. Therefore, the set of available methods is determined by the server version rather than the SDK version.
23
24 h2. create
25
26 Create an object:
27
28 {% codeblock as perl %}
29 my $test_link = $arv->{'links'}->{'create'}->execute('link' => { 'link_class' => 'test', 'name' => 'test' });
30 {% endcodeblock %}
31
32 h2. delete
33
34 {% codeblock as perl %}
35 my $some_user = $arv->{'collections'}->{'get'}->execute('uuid' => $collection_uuid);
36 {% endcodeblock %}
37
38 h2. get
39
40 Retrieve an object by ID:
41
42 {% codeblock as perl %}
43 my $some_user = $arv->{'users'}->{'get'}->execute('uuid' => $current_user_uuid);
44 {% endcodeblock %}
45
46 Get the UUID of an object that was retrieved using the SDK:
47
48 {% codeblock as perl %}
49 my $current_user_uuid = $current_user->{'uuid'}
50 {% endcodeblock %}
51
52 h2. list
53
54 Get a list of objects:
55
56 {% codeblock as perl %}
57 my $repos = $arv->{'repositories'}->{'list'}->execute;
58 print ("UUID of first repo returned is ", $repos->{'items'}->[0], "\n");
59 {% endcodeblock %}
60
61 h2. update
62
63 Update an object:
64
65 {% codeblock as perl %}
66 my $test_link = $arv->{'links'}->{'update'}->execute(
67         'uuid' => $test_link->{'uuid'},
68         'link' => { 'properties' => { 'foo' => 'bar' } });
69 {% endcodeblock %}
70
71 h2. Get current user
72
73 Get the User object for the current user:
74
75 {% codeblock as perl %}
76 my $current_user = $arv->{'users'}->{'current'}->execute;
77 {% endcodeblock %}