summaryrefslogtreecommitdiff
path: root/server/vendor/php-opencloud/common/tests/unit/Fixtures/IdentityV3Api.php
blob: 2fc922fadc9f716158d29e5065fabee60a7a1771 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php

namespace OpenCloud\Test\Fixtures;

class IdentityV3Api
{
    private function domainParam()
    {
        return [
            'type' => 'object',
            'params' => [
                'id'   => ['type' => 'string'],
                'name' => ['type' => 'string']
            ]
        ];
    }

    private function projectParam()
    {
        return [
            'type' => 'object',
            'params' => [
                'id'     => ['type' => 'string'],
                'name'   => ['type' => 'string'],
                'domain' => $this->domainParam(),
            ]
        ];
    }

    public function postTokens()
    {
        return [
            'method' => 'POST',
            'path'   => 'tokens',
            'params' => [
                'methods' => [
                    'type' => 'array',
                    'path' => 'auth.identity',
                    'items' => [
                        'type' => 'string'
                    ]
                ],
                'user' => [
                    'path'   => 'auth.identity.password',
                    'type'   => 'object',
                    'properties' => [
                        'id'       => [
                            'type' => 'string',
                        ],
                        'name'     => [
                            'type' => 'string',
                        ],
                        'password' => [
                            'type' => 'string',
                        ],
                        'domain'   => $this->domainParam()
                    ]
                ],
                'tokenId' => [
                    'type'   => 'string',
                    'path'   => 'auth.identity.token',
                    'sentAs' => 'id',
                ],
                'scope' => [
                    'type' => 'object',
                    'path' => 'auth',
                    'properties' => [
                        'project' => $this->projectParam(),
                        'domain'  => $this->domainParam()
                    ]
                ]
            ]
        ];
    }
}