aboutsummaryrefslogtreecommitdiffstats
path: root/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/ApplicationRole.java
blob: 653c7878fc247d6f80fef420958f1327f3decbb7 (plain) (blame)
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
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.api.role;

import com.yahoo.config.provision.ApplicationName;
import com.yahoo.config.provision.TenantName;

/**
 * A {@link Role} with a {@link Context} of a {@link TenantName} and an {@link ApplicationName}.
 *
 * @author jonmv
 */
public class ApplicationRole extends Role {

    ApplicationRole(RoleDefinition roleDefinition, TenantName tenant, ApplicationName application) {
        super(roleDefinition, Context.limitedTo(tenant, application));
    }

    /** Returns the {@link TenantName} this is bound to. */
    public TenantName tenant() { return context.tenant().get(); }

    /** Returns the {@link ApplicationName} this is bound to. */
    public ApplicationName application() { return context.application().get(); }

    @Override
    public String toString() {
        return "role '" + definition() + "' of '" + application() + "' owned by '" + tenant() + "'";
    }

}