java.lang.Object
org.odpi.openmetadata.viewservices.securityofficer.server.spring.SecurityOfficerResource

@RestController @RequestMapping("/servers/{serverName}/api/open-metadata/security-officer") public class SecurityOfficerResource extends Object
The SecurityOfficerResource provides part of the server-side implementation of the Security Officer OMVS. =
  • Constructor Details

    • SecurityOfficerResource

      public SecurityOfficerResource()
      Default constructor
  • Method Details

    • setUserAccount

      @PostMapping(path="/platforms/{platformGUID}/user-accounts") public VoidResponse setUserAccount(@PathVariable String serverName, @PathVariable String platformGUID, @RequestBody(required=false) UserAccountRequestBody requestBody)
      Set up or update a user account in the platform metadata security connector. The user requires operator permission for the platform unless it is their own user account they are retrieving.
      Parameters:
      serverName - name of called server
      platformGUID - unique identifier of the platform
      requestBody - requestBody used to create and configure the connector that performs platform security
      Returns:
      void response
    • getUserAccount

      @GetMapping(path="/platforms/{platformGUID}/user-accounts/{accountUserId}") public UserAccountResponse getUserAccount(@PathVariable String serverName, @PathVariable String platformGUID, @PathVariable String accountUserId)
      Return the user account object for the requested user from the platform metadata security connector. Null is returned if no platform security or user account has been set up. The user requires operator permission for the platform unless it is their own user account they are retrieving.
      Parameters:
      serverName - name of called server
      platformGUID - unique identifier of the platform
      accountUserId - user id of the account
      Returns:
      user account response
    • deleteUserAccount

      @DeleteMapping(path="/platforms/{platformGUID}/user-accounts/{accountUserId}") public VoidResponse deleteUserAccount(@PathVariable String serverName, @PathVariable String platformGUID, @PathVariable String accountUserId)
      Clear the account for a user with the platform security connector.
      Parameters:
      serverName - name of called server
      platformGUID - unique identifier of the platform
      accountUserId - user id of the account
      Returns:
      void response
    • setSecurityAccessControl

      @PostMapping(path="/platforms/{platformGUID}/security-access-control") public VoidResponse setSecurityAccessControl(@PathVariable String serverName, @PathVariable String platformGUID, @RequestBody(required=false) SecurityAccessControlRequestBody requestBody)
      Set up or update a security access control in the platform metadata security connector. The user requires operator permission for the platform.
      Parameters:
      serverName - name of called server
      platformGUID - unique identifier of the platform
      requestBody - requestBody used to create and configure the connector that performs platform security
      Returns:
      void response
    • getSecurityAccessControl

      @GetMapping(path="/platforms/{platformGUID}/security-access-control/{controlName}") public SecurityAccessControlResponse getSecurityAccessControl(@PathVariable String serverName, @PathVariable String platformGUID, @PathVariable String controlName)
      Return the security access control object from the platform metadata security connector. Null is returned if no control has been set up. The user requires operator permission for the platform.
      Parameters:
      serverName - name of called server
      platformGUID - unique identifier of the platform
      controlName - name of the control
      Returns:
      user account response
    • deleteSecurityAccessControl

      @DeleteMapping(path="/platforms/{platformGUID}/security-access-control/{controlName}") public VoidResponse deleteSecurityAccessControl(@PathVariable String serverName, @PathVariable String platformGUID, @PathVariable String controlName)
      Clear the named security access control with the platform security connector.
      Parameters:
      serverName - name of called server
      platformGUID - unique identifier of the platform
      controlName - name of the control
      Returns:
      void response
    • getUserList

      @GetMapping(path="/platforms/{platformGUID}/user-accounts") public NameListResponse getUserList(@PathVariable String serverName, @PathVariable String platformGUID, @RequestParam(required=false) UserAccountStatus status, @RequestParam(required=false) UserAccountType type)
      Return the list of users registered with the platform security connector.
      Parameters:
      serverName - name of called server
      platformGUID - unique identifier of the platform
      status - status of the user - or null for any status
      type - type of user - or null for any type
      Returns:
      list of matching userIds in the user directory
    • linkGovernanceZones

      @PostMapping(path="/governance-zones/{governanceZoneGUID}/governance-zone-hierarchies/{nestedGovernanceZoneGUID}/attach") public VoidResponse linkGovernanceZones(@PathVariable String serverName, @PathVariable String governanceZoneGUID, @PathVariable String nestedGovernanceZoneGUID, @RequestBody(required=false) NewRelationshipRequestBody requestBody)
      Attach a nested governance zone to a broader governance zone definition.
      Parameters:
      serverName - name of called server
      governanceZoneGUID - unique identifier of the first governance zone definition
      nestedGovernanceZoneGUID - unique identifier of the second governance zone definition
      requestBody - description of the relationship.
      Returns:
      void or InvalidParameterException one of the parameters is null or invalid. PropertyServerException a problem retrieving information from the property server(s). UserNotAuthorizedException the requesting user is not authorized to issue this request.
    • detachGovernanceZones

      @PostMapping(path="/governance-zones/{governanceZoneGUID}/governance-zone-hierarchies/{nestedGovernanceZoneGUID}/detach") public VoidResponse detachGovernanceZones(@PathVariable String serverName, @PathVariable String governanceZoneGUID, @PathVariable String nestedGovernanceZoneGUID, @RequestBody(required=false) DeleteRelationshipRequestBody requestBody)
      Detach a governance zone definition from a hierarchical relationship.
      Parameters:
      serverName - name of called server
      governanceZoneGUID - unique identifier of the first governance zone definition
      nestedGovernanceZoneGUID - unique identifier of the second governance zone definition
      requestBody - description of the relationship.
      Returns:
      void or InvalidParameterException one of the parameters is null or invalid. PropertyServerException a problem retrieving information from the property server(s). UserNotAuthorizedException the requesting user is not authorized to issue this request.
    • linkResourcePermissions

      @PostMapping(path="/secrets-collections/{secretsCollectionGUID}/resource-permissions/{securityAccessControlGUID}/attach") public VoidResponse linkResourcePermissions(@PathVariable String serverName, @PathVariable String secretsCollectionGUID, @PathVariable String securityAccessControlGUID, @RequestBody(required=false) NewRelationshipRequestBody requestBody)
      Attach a security access control to the secrets collection that defines it.
      Parameters:
      serverName - name of the server to route the request to
      secretsCollectionGUID - unique identifier of the secrets collection
      securityAccessControlGUID - unique identifier of the security access control
      requestBody - properties for the request
      Returns:
      response object InvalidParameterException one of the parameters is invalid UserNotAuthorizedException the user is not authorized to issue this request PropertyServerException a problem reported in the open metadata server(s)
    • detachResourcePermissions

      @PostMapping(path="/secrets-collections/{secretsCollectionGUID}/resource-permissions/{securityAccessControlGUID}/detach") public VoidResponse detachResourcePermissions(@PathVariable String serverName, @PathVariable String secretsCollectionGUID, @PathVariable String securityAccessControlGUID, @RequestBody(required=false) DeleteRelationshipRequestBody requestBody)
      Detach a security access control from the secrets collection that defined it.
      Parameters:
      serverName - name of the server to route the request to
      secretsCollectionGUID - unique identifier of the secrets collection
      securityAccessControlGUID - unique identifier of the security access control
      requestBody - properties for the request
      Returns:
      response object InvalidParameterException one of the parameters is invalid UserNotAuthorizedException the user is not authorized to issue this request PropertyServerException a problem reported in the open metadata server(s)
    • linkSecretsCollectionSecurityList

      @PostMapping(path="/secrets-collections/{secretsCollectionGUID}/security-lists/{securityListGUID}/attach") public VoidResponse linkSecretsCollectionSecurityList(@PathVariable String serverName, @PathVariable String secretsCollectionGUID, @PathVariable String securityListGUID, @RequestBody(required=false) NewRelationshipRequestBody requestBody)
      Attach a security list to the secrets collection that lists it.
      Parameters:
      serverName - name of the server to route the request to
      secretsCollectionGUID - unique identifier of the secrets collection
      securityListGUID - unique identifier of the security list
      requestBody - properties for the request
      Returns:
      response object InvalidParameterException one of the parameters is invalid UserNotAuthorizedException the user is not authorized to issue this request PropertyServerException a problem reported in the open metadata server(s)
    • detachSecretsCollectionSecurityList

      @PostMapping(path="/secrets-collections/{secretsCollectionGUID}/security-lists/{securityListGUID}/detach") public VoidResponse detachSecretsCollectionSecurityList(@PathVariable String serverName, @PathVariable String secretsCollectionGUID, @PathVariable String securityListGUID, @RequestBody(required=false) DeleteRelationshipRequestBody requestBody)
      Detach a security list from the secrets collection that listed it.
      Parameters:
      serverName - name of the server to route the request to
      secretsCollectionGUID - unique identifier of the secrets collection
      securityListGUID - unique identifier of the security list
      requestBody - properties for the request
      Returns:
      response object InvalidParameterException one of the parameters is invalid UserNotAuthorizedException the user is not authorized to issue this request PropertyServerException a problem reported in the open metadata server(s)
    • linkUserAccount

      @PostMapping(path="/secrets-collections/{secretsCollectionGUID}/user-accounts/{userIdentityGUID}/attach") public VoidResponse linkUserAccount(@PathVariable String serverName, @PathVariable String secretsCollectionGUID, @PathVariable String userIdentityGUID, @RequestBody(required=false) NewRelationshipRequestBody requestBody)
      Attach a user identity to the secrets collection that configures its account.
      Parameters:
      serverName - name of the server to route the request to
      secretsCollectionGUID - unique identifier of the secrets collection
      userIdentityGUID - unique identifier of the user identity
      requestBody - properties for the request
      Returns:
      response object InvalidParameterException one of the parameters is invalid UserNotAuthorizedException the user is not authorized to issue this request PropertyServerException a problem reported in the open metadata server(s)
    • detachUserAccount

      @PostMapping(path="/secrets-collections/{secretsCollectionGUID}/user-accounts/{userIdentityGUID}/detach") public VoidResponse detachUserAccount(@PathVariable String serverName, @PathVariable String secretsCollectionGUID, @PathVariable String userIdentityGUID, @RequestBody(required=false) DeleteRelationshipRequestBody requestBody)
      Detach a user identity from the secrets collection that configured its account.
      Parameters:
      serverName - name of the server to route the request to
      secretsCollectionGUID - unique identifier of the secrets collection
      userIdentityGUID - unique identifier of the user identity
      requestBody - properties for the request
      Returns:
      response object InvalidParameterException one of the parameters is invalid UserNotAuthorizedException the user is not authorized to issue this request PropertyServerException a problem reported in the open metadata server(s)
    • linkAssociatedSecurityList

      @PostMapping(path="/security-access-controls/{securityAccessControlGUID}/associated-security-lists/{securityListGUID}/attach") public GUIDResponse linkAssociatedSecurityList(@PathVariable String serverName, @PathVariable String securityAccessControlGUID, @PathVariable String securityListGUID, @RequestBody(required=false) NewRelationshipRequestBody requestBody)
      Attach a security list to a security access control that uses it. This multi-link relationship always creates a new relationship and returns its unique identifier.
      Parameters:
      serverName - name of the server to route the request to
      securityAccessControlGUID - unique identifier of the security access control
      securityListGUID - unique identifier of the security list
      requestBody - properties for the request
      Returns:
      response object InvalidParameterException one of the parameters is invalid UserNotAuthorizedException the user is not authorized to issue this request PropertyServerException a problem reported in the open metadata server(s)
    • updateAssociatedSecurityList

      @PostMapping(path="/associated-security-lists/{associatedSecurityListRelationshipGUID}/update") public VoidResponse updateAssociatedSecurityList(@PathVariable String serverName, @PathVariable String associatedSecurityListRelationshipGUID, @RequestBody(required=false) UpdateRelationshipRequestBody requestBody)
      Update the properties of an associated security list relationship.
      Parameters:
      serverName - name of the server to route the request to
      associatedSecurityListRelationshipGUID - unique identifier of the relationship
      requestBody - properties for the request
      Returns:
      response object InvalidParameterException one of the parameters is invalid UserNotAuthorizedException the user is not authorized to issue this request PropertyServerException a problem reported in the open metadata server(s)
    • detachAssociatedSecurityList

      @PostMapping(path="/associated-security-lists/{associatedSecurityListRelationshipGUID}/detach") public VoidResponse detachAssociatedSecurityList(@PathVariable String serverName, @PathVariable String associatedSecurityListRelationshipGUID, @RequestBody(required=false) DeleteRelationshipRequestBody requestBody)
      Remove an associated security list relationship.
      Parameters:
      serverName - name of the server to route the request to
      associatedSecurityListRelationshipGUID - unique identifier of the relationship
      requestBody - properties for the request
      Returns:
      response object InvalidParameterException one of the parameters is invalid UserNotAuthorizedException the user is not authorized to issue this request PropertyServerException a problem reported in the open metadata server(s)
    • setUserAccountProfile

      @PostMapping(path="/secrets-collections/{secretsCollectionGUID}/user-account-profile") public VoidResponse setUserAccountProfile(@PathVariable String serverName, @PathVariable String secretsCollectionGUID, @RequestBody(required=false) NewClassificationRequestBody requestBody)
      Classify a secrets collection with a profile of the user accounts that it holds.
      Parameters:
      serverName - name of the server to route the request to
      secretsCollectionGUID - unique identifier of the secrets collection
      requestBody - properties for the request
      Returns:
      response object InvalidParameterException one of the parameters is invalid UserNotAuthorizedException the user is not authorized to issue this request PropertyServerException a problem reported in the open metadata server(s)
    • clearUserAccountProfile

      @PostMapping(path="/secrets-collections/{secretsCollectionGUID}/user-account-profile/remove") public VoidResponse clearUserAccountProfile(@PathVariable String serverName, @PathVariable String secretsCollectionGUID, @RequestBody(required=false) DeleteClassificationRequestBody requestBody)
      Remove the user account profile from a secrets collection.
      Parameters:
      serverName - name of the server to route the request to
      secretsCollectionGUID - unique identifier of the secrets collection
      requestBody - properties for the request
      Returns:
      response object InvalidParameterException one of the parameters is invalid UserNotAuthorizedException the user is not authorized to issue this request PropertyServerException a problem reported in the open metadata server(s)
    • setZoneMembershipProfile

      @PostMapping(path="/governance-zones/{governanceZoneGUID}/zone-membership-profile") public VoidResponse setZoneMembershipProfile(@PathVariable String serverName, @PathVariable String governanceZoneGUID, @RequestBody(required=false) NewClassificationRequestBody requestBody)
      Classify a governance zone with a profile of its membership.
      Parameters:
      serverName - name of the server to route the request to
      governanceZoneGUID - unique identifier of the governance zone
      requestBody - properties for the request
      Returns:
      response object InvalidParameterException one of the parameters is invalid UserNotAuthorizedException the user is not authorized to issue this request PropertyServerException a problem reported in the open metadata server(s)
    • clearZoneMembershipProfile

      @PostMapping(path="/governance-zones/{governanceZoneGUID}/zone-membership-profile/remove") public VoidResponse clearZoneMembershipProfile(@PathVariable String serverName, @PathVariable String governanceZoneGUID, @RequestBody(required=false) DeleteClassificationRequestBody requestBody)
      Remove the zone membership profile from a governance zone.
      Parameters:
      serverName - name of the server to route the request to
      governanceZoneGUID - unique identifier of the governance zone
      requestBody - properties for the request
      Returns:
      response object InvalidParameterException one of the parameters is invalid UserNotAuthorizedException the user is not authorized to issue this request PropertyServerException a problem reported in the open metadata server(s)