Class StructurizrClient


  • public final class StructurizrClient
    extends java.lang.Object
    A client for the Structurizr API (https://api.structurizr.com) that allows you to get and put Structurizr workspaces in a JSON format.
    • Constructor Summary

      Constructors 
      Constructor Description
      StructurizrClient()
      Creates a new Structurizr client based upon configuration in a structurizr.properties file on the classpath with the following name-value pairs: - structurizr.api.url - structurizr.api.key - structurizr.api.secret
      StructurizrClient​(java.lang.String apiKey, java.lang.String apiSecret)
      Creates a new Structurizr API client with the specified API key and secret, for the default API URL (https://api.structurizr.com).
      StructurizrClient​(java.lang.String url, java.lang.String apiKey, java.lang.String apiSecret)
      Creates a new Structurizr client with the specified API URL, key and secret.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getAgent()
      Gets the agent string used to identify this client instance.
      java.lang.String getUrl()
      Gets the API URL that this client is for.
      com.structurizr.Workspace getWorkspace​(long workspaceId)
      Gets the workspace with the given ID.
      java.io.File getWorkspaceArchiveLocation()
      Gets the location where a copy of the workspace is archived when it is retrieved from the server.
      boolean lockWorkspace​(long workspaceId)
      Locks the workspace with the given ID.
      void putWorkspace​(long workspaceId, com.structurizr.Workspace workspace)
      Updates the given workspace.
      void setAgent​(java.lang.String agent)
      Sets the agent string used to identify this client instance.
      void setEncryptionStrategy​(EncryptionStrategy encryptionStrategy)
      Sets the encryption strategy for use when getting or putting workspaces.
      void setIdGenerator​(com.structurizr.model.IdGenerator idGenerator)
      Sets the ID generator to use when parsing a JSON workspace definition.
      void setMergeFromRemote​(boolean mergeFromRemote)
      Specifies whether the layout of diagrams from a remote workspace should be retained when putting a new version of the workspace.
      void setUser​(java.lang.String user)  
      void setWorkspaceArchiveLocation​(java.io.File workspaceArchiveLocation)
      Sets the location where a copy of the workspace will be archived whenever it is retrieved from the server.
      boolean unlockWorkspace​(long workspaceId)
      Unlocks the workspace with the given ID.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • StructurizrClient

        public StructurizrClient()
                          throws StructurizrClientException
        Creates a new Structurizr client based upon configuration in a structurizr.properties file on the classpath with the following name-value pairs: - structurizr.api.url - structurizr.api.key - structurizr.api.secret
        Throws:
        StructurizrClientException - if something goes wrong
      • StructurizrClient

        public StructurizrClient​(java.lang.String apiKey,
                                 java.lang.String apiSecret)
        Creates a new Structurizr API client with the specified API key and secret, for the default API URL (https://api.structurizr.com).
        Parameters:
        apiKey - the API key of your workspace
        apiSecret - the API secret of your workspace
      • StructurizrClient

        public StructurizrClient​(java.lang.String url,
                                 java.lang.String apiKey,
                                 java.lang.String apiSecret)
        Creates a new Structurizr client with the specified API URL, key and secret.
        Parameters:
        url - the URL of your Structurizr instance
        apiKey - the API key of your workspace
        apiSecret - the API secret of your workspace
    • Method Detail

      • setIdGenerator

        public void setIdGenerator​(com.structurizr.model.IdGenerator idGenerator)
        Sets the ID generator to use when parsing a JSON workspace definition.
        Parameters:
        idGenerator - an IdGenerator implementation
      • getAgent

        public java.lang.String getAgent()
        Gets the agent string used to identify this client instance.
        Returns:
        "structurizr-java/{version}", unless overridden
      • setAgent

        public void setAgent​(java.lang.String agent)
        Sets the agent string used to identify this client instance.
        Parameters:
        agent - the agent string
      • getUrl

        public java.lang.String getUrl()
        Gets the API URL that this client is for.
        Returns:
        the API URL, as a String
      • getWorkspaceArchiveLocation

        public java.io.File getWorkspaceArchiveLocation()
        Gets the location where a copy of the workspace is archived when it is retrieved from the server.
        Returns:
        a File instance representing a directory, or null if this client instance is not archiving
      • setWorkspaceArchiveLocation

        public void setWorkspaceArchiveLocation​(java.io.File workspaceArchiveLocation)
        Sets the location where a copy of the workspace will be archived whenever it is retrieved from the server. Set this to null if you don't want archiving.
        Parameters:
        workspaceArchiveLocation - a File instance representing a directory, or null if you don't want archiving
      • setEncryptionStrategy

        public void setEncryptionStrategy​(EncryptionStrategy encryptionStrategy)
        Sets the encryption strategy for use when getting or putting workspaces.
        Parameters:
        encryptionStrategy - an EncryptionStrategy implementation
      • setMergeFromRemote

        public void setMergeFromRemote​(boolean mergeFromRemote)
        Specifies whether the layout of diagrams from a remote workspace should be retained when putting a new version of the workspace.
        Parameters:
        mergeFromRemote - true if layout information should be merged from the remote workspace, false otherwise
      • lockWorkspace

        public boolean lockWorkspace​(long workspaceId)
                              throws StructurizrClientException
        Locks the workspace with the given ID.
        Parameters:
        workspaceId - the ID of your workspace
        Returns:
        true if the workspace could be locked, false otherwise
        Throws:
        StructurizrClientException - if there are problems related to the network, authorization, etc
      • unlockWorkspace

        public boolean unlockWorkspace​(long workspaceId)
                                throws StructurizrClientException
        Unlocks the workspace with the given ID.
        Parameters:
        workspaceId - the ID of your workspace
        Returns:
        true if the workspace could be unlocked, false otherwise
        Throws:
        StructurizrClientException - if there are problems related to the network, authorization, etc
      • getWorkspace

        public com.structurizr.Workspace getWorkspace​(long workspaceId)
                                               throws StructurizrClientException
        Gets the workspace with the given ID.
        Parameters:
        workspaceId - the workspace ID
        Returns:
        a Workspace instance
        Throws:
        StructurizrClientException - if there are problems related to the network, authorization, JSON deserialization, etc
      • putWorkspace

        public void putWorkspace​(long workspaceId,
                                 com.structurizr.Workspace workspace)
                          throws StructurizrClientException
        Updates the given workspace.
        Parameters:
        workspaceId - the workspace ID
        workspace - the workspace instance to update
        Throws:
        StructurizrClientException - if there are problems related to the network, authorization, JSON serialization, etc
      • setUser

        public void setUser​(java.lang.String user)