Class AssetOwnerRESTServices

java.lang.Object
org.odpi.openmetadata.accessservices.assetowner.server.AssetOwnerRESTServices

public class AssetOwnerRESTServices extends Object
AssetOwnerRESTServices provides part of the server-side support for the Asset Owner Open Metadata Access Service (OMAS). There are other REST services that provide specialized methods for specific types of Asset.
  • Constructor Details

    • AssetOwnerRESTServices

      public AssetOwnerRESTServices()
      Default constructor
  • Method Details

    • getTypesOfAsset

      public NameListResponse getTypesOfAsset(String serverName, String userId)
      Return the asset subtype names.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      Returns:
      list of type names that are subtypes of asset or throws InvalidParameterException full path or userId is null or throws PropertyServerException problem accessing property server or throws UserNotAuthorizedException security access problem.
    • getTypesOfAssetDescriptions

      public StringMapResponse getTypesOfAssetDescriptions(String serverName, String userId)
      Return the asset subtype names with their descriptions.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      Returns:
      list of type names that are subtypes of asset or throws InvalidParameterException full path or userId is null or throws PropertyServerException problem accessing property server or throws UserNotAuthorizedException security access problem.
    • addAssetToCatalog

      public GUIDResponse addAssetToCatalog(String serverName, String userId, String typeName, AssetProperties requestBody)
      Add a simple asset description to the catalog.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user (assumed to be the owner)
      typeName - specific type of the asset - this must match a defined subtype
      requestBody - other properties for asset
      Returns:
      unique identifier (guid) of the asset or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • addAssetToCatalogUsingTemplate

      public GUIDResponse addAssetToCatalogUsingTemplate(String serverName, String userId, String templateGUID, TemplateProperties requestBody)
      Create a new metadata element to represent an asset using an existing asset as a template.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      templateGUID - unique identifier of the metadata element to copy
      requestBody - properties that override the template
      Returns:
      unique identifier (guid) of the asset or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • updateAsset

      public VoidResponse updateAsset(String serverName, String userId, String assetGUID, boolean isMergeUpdate, AssetProperties requestBody)
      Update a simple asset description to the catalog.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user (assumed to be the owner)
      assetGUID - unique identifier of the asset
      isMergeUpdate - should the new properties be merged with existing properties (true) or completely replace them (false)?
      requestBody - other properties for asset
      Returns:
      unique identifier (guid) of the asset or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • addCombinedSchemaToAsset

      public GUIDResponse addCombinedSchemaToAsset(String serverName, String userId, String assetGUID, CombinedSchemaRequestBody requestBody)
      Stores the supplied schema details in the catalog and attaches it to the asset. If another schema is currently attached to the asset, it is unlinked and deleted. If more attributes need to be added in addition to the ones supplied then this can be done with addSchemaAttributesToSchemaType().
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of the asset that the schema is to be attached to
      requestBody - schema type to create and attach directly to the asset.
      Returns:
      guid of the schema type or InvalidParameterException full path or userId is null, or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • addSchemaTypeToAsset

      public GUIDResponse addSchemaTypeToAsset(String serverName, String userId, String assetGUID, SchemaTypeProperties requestBody)
      Stores the supplied schema type in the catalog and attaches it to the asset. If another schema is currently attached to the asset, it is unlinked and deleted.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of the asset that the schema is to be attached to
      requestBody - schema type to create and attach directly to the asset.
      Returns:
      guid of the new schema type or InvalidParameterException full path or userId is null, or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • addSchemaTypeToAsset

      @Deprecated public GUIDResponse addSchemaTypeToAsset(String serverName, String userId, String assetGUID, SchemaTypeRequestBody requestBody)
      Deprecated.
      Stores the supplied schema type in the catalog and attaches it to the asset. If another schema is currently attached to the asset, it is unlinked and deleted.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of the asset that the schema is to be attached to
      requestBody - schema type to create and attach directly to the asset.
      Returns:
      guid of the new schema type or InvalidParameterException full path or userId is null, or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • attachSchemaTypeToAsset

      public VoidResponse attachSchemaTypeToAsset(String serverName, String userId, String assetGUID, String schemaTypeGUID, NullRequestBody requestBody)
      Links the supplied schema type directly to the asset. If this schema is either not found, or already attached to an asset, then an error occurs. If another schema is currently attached to the asset, it is unlinked and deleted.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of the asset that the schema is to be attached to
      schemaTypeGUID - unique identifier of the schema type to attach
      requestBody - null
      Returns:
      void or InvalidParameterException full path or userId or one of the GUIDs is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • detachSchemaTypeFromAsset

      public GUIDResponse detachSchemaTypeFromAsset(String serverName, String userId, String assetGUID, NullRequestBody requestBody)
      Unlinks the schema from the asset but does not delete it. This means it can be reattached to a different asset.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of the asset that the schema is to be attached to
      requestBody - null
      Returns:
      guid of the schema type or InvalidParameterException full path or userId or one of the GUIDs is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • deleteAssetSchemaType

      public VoidResponse deleteAssetSchemaType(String serverName, String userId, String assetGUID, NullRequestBody requestBody)
      Detaches and deletes an asset's schema.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of the asset that the schema is to be attached to
      requestBody - null
      Returns:
      void or InvalidParameterException full path or userId is null, or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • addSchemaAttributes

      public VoidResponse addSchemaAttributes(String serverName, String userId, String assetGUID, String parentGUID, SchemaAttributesRequestBody requestBody)
      Adds attributes to a complex schema type like a relational table, avro schema or a structured document. This method can be called repeatedly to add many attributes to a schema. The schema type may be attached both directly or indirectly via nested schema elements to the asset.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of the asset that the schema is to be attached to
      parentGUID - unique identifier of the schema element to anchor these attributes to.
      requestBody - list of schema attribute objects.
      Returns:
      list of unique identifiers for the new schema attributes returned in the same order as the supplied attribute or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • addSchemaAttributes

      public VoidResponse addSchemaAttributes(String serverName, String userId, String assetGUID, String parentGUID, List<SchemaAttributeProperties> requestBody)
      Adds attributes to a complex schema type like a relational table, avro schema or a structured document. This method can be called repeatedly to add many attributes to a schema. The schema type may be attached both directly or indirectly via nested schema elements to the asset.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of the asset that the schema is to be attached to
      parentGUID - unique identifier of the schema element to anchor these attributes to.
      requestBody - list of schema attribute objects.
      Returns:
      list of unique identifiers for the new schema attributes returned in the same order as the supplied attribute or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • addSchemaAttribute

      public GUIDResponse addSchemaAttribute(String serverName, String userId, String assetGUID, String parentGUID, SchemaAttributeProperties requestBody)
      Adds attributes to a complex schema type like a relational table, avro schema or a structured document. This method can be called repeatedly to add many attributes to a schema. The schema type may be attached both directly or indirectly via nested schema elements to the asset.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of the asset that the schema is to be attached to
      parentGUID - unique identifier of the schema element to anchor these attributes to.
      requestBody - schema attribute object.
      Returns:
      list of unique identifiers for the new schema attributes returned in the same order as the supplied attribute or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • addConnectionToAsset

      public VoidResponse addConnectionToAsset(String serverName, String userId, String assetGUID, ConnectionRequestBody requestBody)
      Adds a connection to an asset. Assets can have multiple connections attached.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of the asset to attach the connection to
      requestBody - request body including a summary and connection object. If the connection is already stored (matching guid) then the existing connection is used.
      Returns:
      void or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • addSemanticAssignment

      public VoidResponse addSemanticAssignment(String serverName, String userId, String assetGUID, String glossaryTermGUID, NullRequestBody requestBody)
      Create a simple relationship between a glossary term and an Asset description.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of the asset that is being described
      glossaryTermGUID - unique identifier of the glossary term
      requestBody - null request body to satisfy POST request.
      Returns:
      void or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • addSemanticAssignment

      public VoidResponse addSemanticAssignment(String serverName, String userId, String assetGUID, String glossaryTermGUID, String assetElementGUID, NullRequestBody requestBody)
      Create a simple relationship between a glossary term and an element in an Asset description (typically a field in the schema).
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of the asset that is being described
      glossaryTermGUID - unique identifier of the glossary term
      assetElementGUID - element to link it to - its type must inherit from Referenceable.
      requestBody - null request body to satisfy POST request.
      Returns:
      void or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • removeSemanticAssignment

      public VoidResponse removeSemanticAssignment(String serverName, String userId, String assetGUID, String glossaryTermGUID, NullRequestBody requestBody)
      Remove the relationship between a glossary term and an element in an Asset description (typically a field in the schema).
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of asset
      glossaryTermGUID - unique identifier of the glossary term
      requestBody - null request body
      Returns:
      void or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • removeSemanticAssignment

      public VoidResponse removeSemanticAssignment(String serverName, String userId, String assetGUID, String glossaryTermGUID, String assetElementGUID, NullRequestBody requestBody)
      Remove the relationship between a glossary term and an element in an Asset description (typically a field in the schema).
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of asset
      glossaryTermGUID - unique identifier of the glossary term
      assetElementGUID - element to link it to - its type must inherit from Referenceable.
      requestBody - null request body
      Returns:
      void or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • addAssetOrigin

      public VoidResponse addAssetOrigin(String serverName, String userId, String assetGUID, OriginRequestBody requestBody)
      Set up the labels that classify an asset's origin. This will override any existing value.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of asset
      requestBody - Descriptive labels describing origin of the asset
      Returns:
      void or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • removeAssetOrigin

      public VoidResponse removeAssetOrigin(String serverName, String userId, String assetGUID, NullRequestBody requestBody)
      Remove the asset origin classification to an asset.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of asset
      requestBody - null request body
      Returns:
      void or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • publishAsset

      public VoidResponse publishAsset(String serverName, String userId, String assetGUID, NullRequestBody requestBody)
      Update the zones for a specific asset to the zone list specified in the publishZones
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier for the asset to update
      requestBody - null request body
      Returns:
      void or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • withdrawAsset

      public VoidResponse withdrawAsset(String serverName, String userId, String assetGUID, NullRequestBody requestBody)
      Update the zones for a specific asset to the zone list specified in the defaultZones
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier for the asset to update
      requestBody - null request body
      Returns:
      void or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • updateAssetZones

      public VoidResponse updateAssetZones(String serverName, String userId, String assetGUID, List<String> assetZones)
      Update the zones for a specific asset.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier for the asset to update
      assetZones - list of zones for the asset - these values override the current values - null means belongs to no zones.
      Returns:
      void or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • updateAssetOwner

      public VoidResponse updateAssetOwner(String serverName, String userId, String assetGUID, OwnerRequestBody requestBody)
      Update the owner information for a specific asset.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier for the asset to update
      requestBody - values describing the new owner
      Returns:
      void or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • addSecurityTags

      public VoidResponse addSecurityTags(String serverName, String userId, String assetGUID, SecurityTagsRequestBody requestBody)
      Add or replace the security tags for an asset or one of its elements.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of asset
      requestBody - list of security labels and properties
      Returns:
      void or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • addSecurityTags

      public VoidResponse addSecurityTags(String serverName, String userId, String assetGUID, String assetElementGUID, SecurityTagsRequestBody requestBody)
      Add or replace the security tags for an asset or one of its elements.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of asset
      assetElementGUID - element to link it to - its type must inherit from Referenceable.
      requestBody - list of security labels and properties
      Returns:
      void or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • removeSecurityTags

      public VoidResponse removeSecurityTags(String serverName, String userId, String assetGUID, NullRequestBody requestBody)
      Remove the security tags classification from an asset.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of asset
      requestBody - null request body
      Returns:
      void or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • removeSecurityTags

      public VoidResponse removeSecurityTags(String serverName, String userId, String assetGUID, String assetElementGUID, NullRequestBody requestBody)
      Remove the security tags classification to one of an asset's elements.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of asset
      assetElementGUID - element where the security tags need to be removed.
      requestBody - null request body
      Returns:
      void or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • addTemplateClassification

      public VoidResponse addTemplateClassification(String serverName, String userId, String assetGUID, TemplateClassificationRequestBody requestBody)
      Classify an asset as suitable to be used as a template for cataloguing assets of a similar types.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of the asset to classify
      requestBody - properties of the template
      Returns:
      void or InvalidParameterException asset or element not known, null userId or guid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • removeTemplateClassification

      public VoidResponse removeTemplateClassification(String serverName, String userId, String assetGUID, NullRequestBody requestBody)
      Remove the classification that indicates that this asset can be used as a template.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of the asset to declassify
      requestBody - null request body
      Returns:
      void or InvalidParameterException asset or element not known, null userId or guid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • getAssetsByName

      public AssetElementsResponse getAssetsByName(String serverName, String userId, NameRequestBody requestBody, int startFrom, int pageSize)
      Return a list of assets with the requested name.
      Parameters:
      serverName - name of the server instances for this request
      userId - calling user
      requestBody - name to search for
      startFrom - starting element (used in paging through large result sets)
      pageSize - maximum number of results to return
      Returns:
      list of Asset summaries or InvalidParameterException the name is invalid or PropertyServerException there is a problem access in the property server or UserNotAuthorizedException the user does not have access to the properties
    • findAssets

      public AssetElementsResponse findAssets(String serverName, String userId, SearchStringRequestBody requestBody, int startFrom, int pageSize)
      Return a list of assets with the requested search string in their name, qualified name or description.
      Parameters:
      serverName - name of the server instances for this request
      userId - calling user
      requestBody - string to search for in text
      startFrom - starting element (used in paging through large result sets)
      pageSize - maximum number of results to return
      Returns:
      list of assets that match the search string or InvalidParameterException the searchString is invalid or PropertyServerException there is a problem access in the property server or UserNotAuthorizedException the user does not have access to the properties
    • getAssetSummary

      public AssetElementResponse getAssetSummary(String serverName, String userId, String assetGUID)
      Return the basic attributes of an asset.
      Parameters:
      serverName - server called
      userId - calling user
      assetGUID - unique identifier of the asset
      Returns:
      basic asset properties InvalidParameterException one of the parameters is null or invalid. UserNotAuthorizedException user not authorized to issue this request. PropertyServerException there was a problem that occurred within the property server.
    • getDiscoveryAnalysisReports

      public DiscoveryAnalysisReportListResponse getDiscoveryAnalysisReports(String serverName, String userId, String assetGUID, int startingFrom, int maxPageSize)
      Return the discovery analysis reports about the asset.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of the asset
      startingFrom - position in the list (used when there are so many reports that paging is needed
      maxPageSize - maximum number of elements to return on this call
      Returns:
      list of discovery analysis reports or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • getDiscoveryReportAnnotations

      public AnnotationListResponse getDiscoveryReportAnnotations(String serverName, String userId, String discoveryReportGUID, int startingFrom, int maximumResults, StatusRequestBody requestBody)
      Return the annotations linked directly to the report.
      Parameters:
      serverName - name of the server instance to connect to
      userId - identifier of calling user
      discoveryReportGUID - identifier of the discovery request.
      startingFrom - initial position in the stored list.
      maximumResults - maximum number of definitions to return on this call.
      requestBody - status of the desired annotations - null means all statuses.
      Returns:
      list of annotations or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • getExtendedAnnotations

      public AnnotationListResponse getExtendedAnnotations(String serverName, String userId, String annotationGUID, int startingFrom, int maximumResults, StatusRequestBody requestBody)
      Return any annotations attached to this annotation.
      Parameters:
      serverName - name of the server instance to connect to
      userId - identifier of calling user
      annotationGUID - anchor annotation
      startingFrom - starting position in the list
      maximumResults - maximum number of annotations that can be returned.
      requestBody - status of the desired annotations - null means all statuses.
      Returns:
      list of Annotation objects or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • deleteAsset

      public VoidResponse deleteAsset(String serverName, String userId, String assetGUID, NullRequestBody requestBody)
      Deletes an asset and all of its associated elements such as schema, connections (unless they are linked to another asset), discovery reports and associated feedback. Given the depth of the delete request performed by this call, it should be used with care.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      assetGUID - unique identifier of the asset to attach the connection to
      requestBody - dummy request body to satisfy POST protocol.
      Returns:
      void or InvalidParameterException full path or userId is null or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • linkElementsAsPeerDuplicates

      public VoidResponse linkElementsAsPeerDuplicates(String serverName, String userId, String element1GUID, String element2GUID, NullRequestBody requestBody)
      Create a simple relationship between two elements in an Asset description (typically the asset itself or attributes in their schema).
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      element1GUID - unique identifier of first element
      element2GUID - unique identifier of second element
      requestBody - dummy request body to satisfy POST protocol.
      Returns:
      void or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem
    • unlinkElementsAsPeerDuplicates

      public VoidResponse unlinkElementsAsPeerDuplicates(String serverName, String userId, String element1GUID, String element2GUID, NullRequestBody requestBody)
      Remove the relationship between two elements that marks them as duplicates.
      Parameters:
      serverName - name of the server instance to connect to
      userId - calling user
      element1GUID - unique identifier of first element
      element2GUID - unique identifier of second element
      requestBody - dummy request body to satisfy POST protocol.
      Returns:
      void or InvalidParameterException one of the parameters is null or invalid or PropertyServerException problem accessing property server or UserNotAuthorizedException security access problem