cait

package module
v0.0.14 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 27, 2017 License: BSD-3-Clause Imports: 18 Imported by: 15

README

cait

cait is a set of utilities written in the Go language that work with and augment the ArchivesSpace API.

  • cait - a command line utility for ArchivesSpace interaction (basic CRUD operations and export)
  • cait-genpages - a simple static page generator based on exported ArchivesSpace content
  • cait-indexpages - for indexing exported JSON structures with Bleve
  • cait-servepages - a web service providing public search services and content browsing
  • cait-sitemapper - a simple tool to generate a sitemap.xml file from pages rendered with cait-genpages

Requirements

  • A working deployment of ArchivesSpace
  • Golang 1.8 or better to compile
  • Three 3rd party Go packages
  • Caltech Library's Go packages
    • cait, Caltech Library's ArchivesSpace integration tools

Compiling

If you already have Go setup and installed compiling the utilities are pretty straight forward.

  1. Clone the git repository for the project
  2. "Go get" the 3rd party libraries
  3. Compile
  4. Setup the necessary environment variables for using the utilities

Here's a typical example of setting things up.

    go get github.com/blevesearch/bleve/...
    git clone git@github.com:caltechlibrary/cait.git
    cd cait
    mkdir bin
    go build -o bin/cait cmds/cait/cait.go
    go build -o bin/cait-genpages  cmds/cait-genpages/cait-genpages.go
    go build -o bin/cait-indexpages cmds/cait-indexpages/cait-indexpages.go
    go build -o bin/cait-servepages cmds/cait-servepages/cait-servepages.go
    go build -o bin/cait-sitemapper cmds/cait-sitemapper/cait-sitemapper.go

At this point you should have your command line utilities ready to go in the bin directory. You are now ready to setup your environment variables.

Setting up your environment

The command line tools and services are configured via environment variables. Below is an example of setting things up under Bash running on your favorite Unix-like system.

    #!/bin/bash
    #
    # setup.sh - this script sets the environment variables for cait project.
    # You would source file before using cait, cait-indexpages, or cait-servepages.
    #

    #
    # Local Development setup
    #
    export CAIT_API_URL=http://localhost:8089
    export CAIT_USERNAME=admin
    export CAIT_PASSWORD=admin
    export CAIT_DATASET=dataset
    export CAIT_SITE_URL=http://localhost:8501
    export CAIT_HTDOCS=htdocs
    export CAIT_BLEVE=htdocs.bleve
    export CAIT_TEMPLATES=templates/default

One time setup, creat the directories matching your configuration.

    #!/bin/bash
    #
    # Create the necessary directory structure
    #
    mkdir -p $CAIT_DATASET
    mkdir -p $CAIT_HTDOCS
    mkdir -p $CAIT_TEMPLATES

Assuming Bash and that you've named the file cait.bash you could source the file from your shell prompt by typing

    . etc/cait.bash
Setting up a dev box

I run ArchivesSpace in a vagrant box for development use. You can find details to set that up at github.com/caltechlibrary/archivesspace_vagrant. I usually run the cait tools locally. You can see and example workflow in the document EXPORT-IMPORT.md.

Utilities

cait

This command is a general purpose tool for fetch ArchivesSpace data from the ArchivesSpace REST API, saving or modifying that data as well as querying the locally capture output of the API.

Current cait supports operations on repositories, subjects, agents, accessions and digital_objects.

These are the common actions that can be performed

  • create
  • list (individually or all ids)
  • update (can use a file instead of the command line, see -input option)
  • delete
  • export (useful with integrating into static websites or batch processing via scripts)

Here's an example session of using the cait command line tool on the repository object.

    . setup.sh # Source my setup file so I can get access to the API
    cait repository create '{"uri":"/repositories/3","repo_code":"My Archive","name":"My Archive"}' # Create an archive called My Archive
    cait repository list # show a list of archives, for example purposes we'll use archive ID of 3
    cait repository list '{"uri":"/repositories/3"}' # Show only the archive JSON for repository ID equal to 3
    cait repository list '{"uri":"/repositories/3"}' > repo2.json # Save the output to the file repo3.json
    cait repository update -input repo3.json # Save your changes back to ArchivesSpace
    cait repository export '{"uri":"/repositories/3"}' # export the repository metadata to data/repositories/3.json
    cait repository delete '{"uri":"/repositories/3"}' # remove repository ID 3

This is the general pattern also used with subject, agent, accession, digital_object.

The cait command uses the following environment variables

  • CAIT_API_URL, the URL to the ArchivesSpace API (e.g. http://localhost:8089 in v1.4.2)
  • CAIT_USERNAME, username to access the ArchivesSpace API
  • CAIT_PASSWORD, to access the ArchivesSpace API
  • CAIT_DATASET, the directory for exported content
cait-genpages

This command generates static webpages from exported ArchivesSpace content.

It relies on the following environment variables

  • CAIT_DATASET, where you've exported your ArchivesSpace content
  • CAIT_HTDOCS, where you want to write your static pages
  • CAIT_TEMPLATES, the templates to use (this defaults to template/defaults but you probably want custom templates for your site)

The typical process would use cait to export all your content and then run cait-genpages to generate your website content.

    ./bin/cait archivesspace export # this takes a while
    ./bin/cait-genpages # this is faster

Assuming the default settings you'll see new webpages in your local htdocs directory.

cait-indexpages

This command creates bleve indexes for use by cait-servepages.

Current cait-indexpages operates on JSON content exported with cait. It expects a specific directory structure with each individual JSON blob named after its numeric ID and the extension .json. E.g. htdocs/repositories/2/accession/1.json would correspond to accession id 1 for repository 2.

cait-indexpages depends on four environment variables

  • CAIT_HTDOCS, the root directory where the JSON blobs and HTML files are saved
  • CAIT_BLEVE, the name of the Bleve index (created or maintained)
cait-servepages

cait-servepages provides both a static web server as well as web search service.

Current cait-servepages uses the Bleve indexes created with cait-indexpages. It also uses the search page and results templates defined in CAIT_TEMPLATES.

It uses the following environment variables

  • CAIT_HTDOCS, the htdoc root of the website
  • CAIT_BLEVE, the Bleve index to use to drive the search service
  • CAIT_TEMPLATES, templates for search service as well as browsable static pages
  • CAIT_SITE_URL, the url you want to run the search service on (e.g. http://localhost:8501)

Assuming the default setup, you could start the like

    ./bin/cait-servepages

Or you could add a startup script to /etc/init.d/ as appropriate.

cait-sitemapper

cait-sitemapper generates a sitemap.xml file based on the arguments you envoke. It you're site's URL is http://archives.example.edu, your htdocs directory is htdocs and you want to save you sitemap.xml file as htdocs/sitemap.xml you could run the command with

    cait-sitemapper htdocs htdocs/sitemap.xml http://archives.example.edu

This will generate a site map of the HTML files found in htdocs with the results saved in htdocs/sitemap.xml. For more informaiton about sitemaps see the sitemaps.org website.

Setting up a production box

The basic production environment would export the contents of ArchivesSpace nightly, regenerate the webpages, re-index the webpages and finally restart cait-servepages service.

The script in bin/nightly-update.sh shows these steps based on the configuration in etc/setup.sh. This script is suitable for running form a cronjob under Linux/Unix/Mac OS X.

Documentation

Overview

Package cait is a collection of structures and functions for interacting with ArchivesSpace's REST API

@author R. S. Doiel, <rsdoiel@caltech.edu>

Copyright (c) 2017, Caltech All rights not granted herein are expressly reserved by Caltech.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Package cait is a collection of structures and functions for interacting with ArchivesSpace's REST API

@author R. S. Doiel, <rsdoiel@caltech.edu>

Copyright (c) 2016, Caltech All rights not granted herein are expressly reserved by Caltech.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Package cait is a collection of structures and functions for interacting with ArchivesSpace's REST API

@author R. S. Doiel, <rsdoiel@caltech.edu>

Copyright (c) 2016, Caltech All rights not granted herein are expressly reserved by Caltech.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Package cait is a collection of structures and functions for interacting with ArchivesSpace's REST API

@author R. S. Doiel, <rsdoiel@caltech.edu>

Copyright (c) 2016, Caltech All rights not granted herein are expressly reserved by Caltech.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Package cait is a collection of structures and functions for interacting with ArchivesSpace's REST API

@author R. S. Doiel, <rsdoiel@caltech.edu>

Copyright (c) 2016, Caltech All rights not granted herein are expressly reserved by Caltech.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Package cait is a collection of structures and functions for interacting with ArchivesSpace's REST API

@author R. S. Doiel, <rsdoiel@caltech.edu>

Copyright (c) 2016, Caltech All rights not granted herein are expressly reserved by Caltech.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Package cait is a collection of structures and functions for interacting with ArchivesSpace's REST API

@author R. S. Doiel, <rsdoiel@caltech.edu>

Copyright (c) 2016, Caltech All rights not granted herein are expressly reserved by Caltech.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Index

Constants

This section is empty.

Variables

View Source
var (
	Version = "v0.0.14"

	LicenseText = `` /* 1530-byte string literal not displayed */

)

Version of library

View Source
var (
	// TmplMap adds functions for working specifically with ArchivesSpace objects.
	TmplMap = template.FuncMap{
		"digitalObjectLink": func(m map[string]interface{}) string {
			if _, ok := m["digital_objects.title"]; ok == false {
				return ""
			}
			if _, ok := m["digital_objects.file_uris"]; ok == false {
				return ""
			}
			var links []string
			titles := m["digital_objects.title"]
			hrefs := m["digital_objects.file_uris"]
			switch reflect.TypeOf(titles).Kind() {
			case reflect.Slice:
				t := reflect.ValueOf(titles)
				h := reflect.ValueOf(hrefs)

				for i := 0; i < t.Len() && i < h.Len(); i++ {
					url := fmt.Sprintf("%s", h.Index(i))
					if strings.HasPrefix(url, "http://") || strings.HasPrefix(url, "https://") {
						anchor := fmt.Sprintf(`<a href="%s">%s</a>`, h.Index(i), t.Index(i))
						if i == 0 {
							links = append(links, anchor)
						}
						if strings.Compare(anchor, links[0]) != 0 {
							links = append(links, anchor)
						}
					}
				}
				return strings.Join(links, " ")
			default:
				url := fmt.Sprintf("%s", m["digital_objects.file_uris"])
				if strings.Contains(url, "://") {
					return fmt.Sprintf(`<a href="%s">%s</a>`, url, m["digital_objects.title"])
				}
			}
			return ""
		},
	}
)

Functions

func FlattenDates added in v0.0.5

func FlattenDates(dates []*Date) string

FlattenDates takes an array of Date types, flatten it into a human readable string.

func IntListToString

func IntListToString(intList []int, sep string) string

IntListToString String from an array of instances

func MakeAccessionTitleIndex

func MakeAccessionTitleIndex(dname string) (map[string]*NavElementView, error)

MakeAccessionTitleIndex crawls the path for accession records and generates a map of navigation links that can be used in search results or browsing views. The parameter dname usually is set to the value of $CAIT_DATASET Output is a map of URI pointing at NavElementView for that URI.

func MakeDigitalObjectMap

func MakeDigitalObjectMap(dname string) (map[string]*DigitalObject, error)

MakeDigitalObjectMap given a base data directory read in the Digital Object JSON blobs and build a map of object data. Takes the path to the subjects directory as a parameter.

func MakeSubjectList

func MakeSubjectList(dname string) ([]string, error)

MakeSubjectList given a base data directory read in the subject JSON blobs and builds a slice or subject data. Takes the path to the subjects directory as a parameter.

func MakeSubjectMap

func MakeSubjectMap(dname string) (map[string]*Subject, error)

MakeSubjectMap given a base data directory read in the subject JSON blobs and builds a map or subject data. Takes the path to the subjects directory as a parameter.

func URIToID

func URIToID(uri string) int

URIToID return an id integer value from a URI for given type.

func URIToRepoID

func URIToRepoID(uri string) int

URIToRepoID return the repository ID from a URI

func URIToVocabularyID

func URIToVocabularyID(uri string) int

URIToVocabularyID return the vocabulary ID from a URI

func WriteJSON

func WriteJSON(data interface{}, dir string, fname string) error

WriteJSON write out an ArchivesSpace data structure as a JSON file.

Types

type AbstractAgent

type AbstractAgent struct {
	URI                       string                   `json:"uri,omitempty"`
	Title                     string                   `json:"title,omitempty"`
	IsLinkedToPublishedRecord bool                     `json:"is_linked_to_published_record,omitempty"`
	AgentType                 string                   `json:"agent_type,omitempty"`
	AgentContacts             []*AgentContact          `json:"agent_contacts,omitempty"`
	LinkedAgentRoles          []interface{}            `json:"linked_agent_roles,omitempty"`
	ExternalDocuments         []map[string]interface{} `json:"external_documents"`
	RightsStatements          []*RightsStatement       `json:"rights_statements"`
	SystemGenerated           bool                     `json:"system_generated,omitempty"`
	Notes                     []*NoteText              `json:"notes,omitmepty"`
	DatesOfExistance          []*Date                  `json:"dates_of_existence,omitempty"`
	Publish                   bool                     `json:"publish"`
	LockVersion               json.Number              `json:"lock_version,Number"`
	JSONModelType             string                   `json:"jsonmodel_type"`
	CreatedBy                 string                   `json:"created_by,omitempty"`
	LastModifiedBy            string                   `json:"last_modified_by,omitempty"`
	UserMTime                 string                   `json:"user_mtime,omitempty"`
	SystemMTime               string                   `json:"system_mtime,omitempty"`
	CreateTime                string                   `json:"create_time,omitempty"`
	Repository                map[string]interface{}   `json:"repository,omitmepty"`
}

AbstractAgent JSONModel(:abstract_agent)

type AbstractAgentRelationship

type AbstractAgentRelationship struct {
	Description    string                 `json:"description,omitempty"`
	Dates          []*Date                `json:"dates"`
	LockVersion    json.Number            `json:"lock_version,Number"`
	JSONModelType  string                 `json:"jsonmodel_type"`
	CreatedBy      string                 `json:"created_by,omitempty"`
	LastModifiedBy string                 `json:"last_modified_by,omitempty"`
	UserMTime      string                 `json:"user_mtime,omitempty"`
	SystemMTime    string                 `json:"system_mtime,omitempty"`
	CreateTime     string                 `json:"create_time,omitempty"`
	Repository     map[string]interface{} `json:"repository,omitmepty"`
}

AbstractAgentRelationship JSONModel(:abstract_agent_relationship)

type AbstractArchivalObject

type AbstractArchivalObject struct {
	URI               string                   `json:"uri,omitempty"`
	ExternalIDs       []*ExternalID            `json:"external_ids"`
	Title             string                   `json:"title,omitempty"`
	Language          string                   `json:"language,omitempty"`
	Publish           bool                     `json:"publish"`
	Subjects          []map[string]interface{} `json:"subjects"`
	LinkedEvents      []map[string]interface{} `json:"linked_events,omitmepty"`
	Extents           []*Extent                `json:"extents"`
	Dates             []*Date                  `json:"dates"`
	ExternalDocuments []map[string]interface{} `json:"external_documents"`
	RightsStatements  []*RightsStatement       `json:"rights_statements"`
	LinkedAgents      []*Agent                 `json:"linked_agents"`
	Suppressed        bool                     `json:"suppressed"`
	LockVersion       json.Number              `json:"lock_version,Number"`
	JSONModelType     string                   `json:"jsonmodel_type"`
	CreatedBy         string                   `json:"created_by,omitempty"`
	LastModifiedBy    string                   `json:"last_modified_by,omitempty"`
	UserMTime         string                   `json:"user_mtime,omitempty"`
	SystemMTime       string                   `json:"system_mtime,omitempty"`
	CreateTime        string                   `json:"create_time,omitempty"`
	Repository        map[string]interface{}   `json:"repository,omitmepty"`
}

AbstractArchivalObject JSONModel(:abstract_archival_object)

type AbstractClassification

type AbstractClassification struct {
	URI            string                 `json:"uri,omitempty"`
	Identifier     string                 `json:"identifier,omitempty"`
	Title          string                 `json:"title,omitempty"`
	Description    string                 `json:"description,omitempty"`
	Publish        bool                   `json:"publish"` //NOTE: Default value should be true
	PathFromRoot   map[string]interface{} `json:"path_from_root,omitempty"`
	LinkedRecords  map[string]interface{} `json:"linked_records,omitmepty"`
	Creator        map[string]interface{} `json:"creator,omitmepty"`
	LockVersion    json.Number            `json:"lock_version,Number"`
	JSONModelType  string                 `json:"jsonmodel_type"`
	CreatedBy      string                 `json:"created_by,omitempty"`
	LastModifiedBy string                 `json:"last_modified_by,omitempty"`
	UserMTime      string                 `json:"user_mtime,omitempty"`
	SystemMTime    string                 `json:"system_mtime,omitempty"`
	CreateTime     string                 `json:"create_time,omitempty"`
	Repository     map[string]interface{} `json:"repository,omitmepty"`
}

AbstractClassification JSONModel(:abstract_classification)

type AbstractName

type AbstractName struct {
	AuthorityID          string                 `json:"authority_id,omitmepty"`
	Dates                []*Date                `json:"dates"`
	UsaDates             []*Date                `json:"use_dates"`
	Qualifier            string                 `json:"qualifier,omitmepty"`
	Source               string                 `json:"source,omitempty"`
	Rules                string                 `json:"rules,omitempty"`
	Authorized           bool                   `json:"authorized,omitempty"`
	IsDisplayName        bool                   `json:"is_display_name,omitempty"`
	SortName             string                 `json:"sort_name,omitempty"`
	SortNameAutoGenerate bool                   `json:"sort_name_auto_generate,omitempty"`
	LockVersion          json.Number            `json:"lock_version,Number"`
	JSONModelType        string                 `json:"jsonmodel_type"`
	CreatedBy            string                 `json:"created_by,omitempty"`
	LastModifiedBy       string                 `json:"last_modified_by,omitempty"`
	UserMTime            string                 `json:"user_mtime,omitempty"`
	SystemMTime          string                 `json:"system_mtime,omitempty"`
	CreateTime           string                 `json:"create_time,omitempty"`
	Repository           map[string]interface{} `json:"repository,omitmepty"`
}

AbstractName JSONModel(:abstract_name)

type AbstractNote

type AbstractNote struct {
	Label          string                 `json:"label,omitempty"`
	Publish        bool                   `json:"publish"`
	PersistentID   string                 `json:"persistent_id,omitempty"`
	IngestProblem  string                 `json:"ingest_problem,omitmepty"`
	LockVersion    json.Number            `json:"lock_version,Number"`
	JSONModelType  string                 `json:"jsonmodel_type"`
	CreatedBy      string                 `json:"created_by,omitempty"`
	LastModifiedBy string                 `json:"last_modified_by,omitempty"`
	UserMTime      string                 `json:"user_mtime,omitempty"`
	SystemMTime    string                 `json:"system_mtime,omitempty"`
	CreateTime     string                 `json:"create_time,omitempty"`
	Repository     map[string]interface{} `json:"repository,omitmepty"`
}

AbstractNote JSONModel(:abstract_note)

type AcccessionPartsRelationship

type AcccessionPartsRelationship struct {
	Relator     string                 `json:"relator,omitempty"`
	RelatorType string                 `json:"relator_type,omitmepty"`
	Ref         string                 `json:"ref,omitempty"`
	Resolved    map[string]interface{} `json:"_resolved,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

AcccessionPartsRelationship JSONModel(:accession_parts_relationship)

type Accession

type Accession struct {
	ID                     int                      `json:"id"`
	URI                    string                   `json:"uri,omitempty"`
	ExternalIDs            []*ExternalID            `json:"external_ids"`
	Title                  string                   `json:"title"`
	DisplayString          string                   `json:"display_string"`
	ID0                    string                   `json:"id_0,omitempty"`
	ID1                    string                   `json:"id_1,omitempty"`
	ID2                    string                   `json:"id_2,omitempty"`
	ID3                    string                   `json:"id_3,omitempty"`
	ContentDescription     string                   `json:"content_description"`
	ConditionDescription   string                   `json:"condition_description"`
	Disposition            string                   `json:"disposition"`
	Inventory              string                   `json:"inventory"`
	Provenance             string                   `json:"provenance"`
	RelatedAccessions      []map[string]interface{} `json:"related_accessions"`
	AccessionDate          string                   `json:"accession_date"`
	Publish                bool                     `json:"publish"`
	Classifications        []map[string]interface{} `json:"classifications"`
	Subjects               []map[string]interface{} `json:"subjects"`
	LinkedEvents           []map[string]interface{} `json:"linked_events"`
	Extents                []*Extent                `json:"extents"`
	Dates                  []*Date                  `json:"dates"`
	ExternalDocuments      []map[string]interface{} `json:"external_documents"`
	RightsStatements       []*RightsStatement       `json:"rights_statements"`
	Deaccessions           []*Deaccession           `json:"deaccession,omitempty"`
	CollectionManagement   *CollectionManagement    `json:"collection_management,omitempty"`
	UserDefined            *UserDefined             `json:"user_defined,omitempty"`
	RelatedResources       []map[string]interface{} `json:"related_resources,omitempty"`
	Suppressed             bool                     `json:"suppressed"`
	AcquisitionType        string                   `json:"acquision_type,omitempty"`
	ResourceType           string                   `json:"resource_type"`
	RestrictionsApply      bool                     `json:"restrictions_apply"`
	RetentionRule          string                   `json:"retention_rule,omitempty"`
	GeneralNote            string                   `json:"general_note"`
	AccessRestrictions     bool                     `json:"access_restrictions"`
	AccessRestrictionsNote string                   `json:"access_restrictions_note"`
	UseRestrictions        bool                     `json:"use_restrictions"`
	UseRestrictionsNote    string                   `json:"use_restrictions_note"`

	LinkedAgents []map[string]interface{} `json:"linked_agents"`
	Instances    []map[string]interface{} `json:"instances"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

Accession JSONModel(:accession)

func (*Accession) NormalizeView

func (a *Accession) NormalizeView(agents []*Agent, subjects map[string]*Subject, digitalObjects map[string]*DigitalObject) (*NormalizedAccessionView, error)

NormalizeView returns a normalized view from an Accession structure and an array of subject structures.

func (*Accession) String

func (accession *Accession) String() string

String return an Accession

type AccessionSiblingRelationship

type AccessionSiblingRelationship struct {
	Relator     string                 `json:"relator,omitempty"`
	RelatorType string                 `json:"relator_type,omitmepty"`
	Ref         string                 `json:"ref,omitempty"`
	Resolved    map[string]interface{} `json:"_resolved,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

AccessionSiblingRelationship JSONModel(:accession_sibling_relationship)

type ActiveEdits

type ActiveEdits struct {
	URI         string                 `json:"uri,omitempty"`
	ActiveEdits map[string]interface{} `json:"active_edits,omitmepty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

ActiveEdits JSONModel(:active_edits)

type AdvancedQuery

type AdvancedQuery struct {
	Query map[string]interface{} `json:"query,omitempty"` //FIXME, maybe this should be an interface to boolean_query, field_query, data_field_query,boolean_field_query and Object?

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

AdvancedQuery JSONModel(:advanced_query)

type Agent

type Agent struct {
	ID                        int                      `json:"id,omitempty"`
	Published                 bool                     `json:"publish"`
	AgentType                 string                   `json:"agent_type,omitempty"`
	URI                       string                   `json:"uri,omitempty"`
	Title                     string                   `json:"title,omitempty"`
	IsLinkedToPublishedRecord bool                     `json:"is_linked_to_published_record,omitempty"`
	Names                     []*NamePerson            `json:"names,omitempty"`
	DisplayName               *NamePerson              `json:"display_name,omitempty"`
	DatesOfExistance          []*Date                  `json:"dates_of_existence,omitempty"`
	AgentContacts             []*AgentContact          `json:"agent_contacts,omitempty"`
	LinkedAgentRoles          []interface{}            `json:"linked_agent_roles,omitempty"`
	ExternalDocuments         []map[string]interface{} `json:"external_documents"`

	//	RightsStatements          []*RightsStatement       `json:"rights_statements"`
	RightsStatements []interface{}   `json:"rights_statements"`
	Notes            []*NoteBiogHist `json:"notes"`

	LockVersion    json.Number `json:"lock_version,Number"`
	JSONModelType  string      `json:"jsonmodel_type,omitempty"`
	CreatedBy      string      `json:"created_by,omitempty"`
	LastModifiedBy string      `json:"last_modified_by,omitempty"`
	UserMTime      string      `json:"user_mtime,omitempty"`
	SystemMTime    string      `json:"system_mtime,omitempty"`
	CreateTime     string      `json:"create_time,omitempty"`
}

Agent represents an ArchivesSpace complete agent record from the client point of view

func MakeAgentList

func MakeAgentList(dname string) ([]*Agent, error)

MakeAgentList given a base data directory read in the subject JSON blobs and builds a slice or subject data. Takes the path to the subjects directory as a parameter.

func (*Agent) String

func (agent *Agent) String() string

String return an Agent as a JSON formatted string

type AgentContact

type AgentContact struct {
	Name           string       `json:"name,omitempty"`
	Salutation     string       `json:"salutation,omitempty"`
	Address1       string       `json:"address_1,omitempty"`
	Address2       string       `json:"address_2,omitempty"`
	Address3       string       `json:"address_3,omitempty"`
	City           string       `json:"city,omitempty"`
	Region         string       `json:"region,omitempty"`
	Country        string       `json:"country,omitempty"`
	PostCode       string       `json:"post_code,omitempty"`
	Telephones     []*Telephone `json:"telephones,omitempty"`
	Fax            string       `json:"fax,omitempty"`
	EMail          string       `json:"email,omitempty"`
	EMailSignature string       `json:"email_signature,omitempty"`
	Note           string       `json:"note,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

AgentContact JSONModel(:agent_contact)

type AgentCorporateEntity

type AgentCorporateEntity struct {
	URI                       string                   `json:"uri,omitempty"`
	Title                     string                   `json:"title,omitempty"`
	IsLinkedToPublishedRecord bool                     `json:"is_linked_to_published_record,omitempty"`
	AgentType                 string                   `json:"agent_type,omitempty"` //Enum: agent_person agent_corporate_entity agent_software agent_family user
	AgentContacts             []*AgentContact          `json:"agent_contacts,omitempty"`
	LinkedAgentRoles          []string                 `json:"linked_agent_roles,omitempty"`
	ExternalDocuments         []map[string]interface{} `json:"external_documents,omitempty"`
	RightsStatements          []*RightsStatement       `json:"rights_statements,omitempty"`
	SystemGenerated           bool                     `json:"system_generated,omitempty"`
	Notes                     string                   `json:"notes,omitempty"`
	DatesOfExistance          []*Date                  `json:"dates_of_existence,omitempty"`
	Publish                   bool                     `json:"publish,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	Names         []*NameCorporateEntity `json:"names,omitempty"`
	DisplayName   *NameCorporateEntity   `json:"display_name,omitempty"`
	RelatedAgents map[string]interface{} `json:"related_agents,omitempty"`
}

AgentCorporateEntity JSONModel(:agent_corporate_entity)

type AgentFamily

type AgentFamily struct {
	URI                       string              `json:"uri,omitempty"`
	Title                     string              `json:"title,omitempty"`
	IsLinkedToPublishedRecord bool                `json:"is_linked_to_published_record,omitempty"`
	AgentType                 string              `json:"agent_type,omitempty"` //Enum: agent_person agent_corporate_entity agent_software agent_family user
	AgentContacts             []*AgentContact     `json:"agent_contacts,omitempty"`
	LinkedAgentRoles          []string            `json:"linked_agent_roles,omitempty"`
	ExternalDocuments         []*ExternalDocument `json:"external_documents,omitempty"`
	RightsStatements          []*RightsStatement  `json:"rights_statements,omitempty"`
	SystemGenerated           bool                `json:"system_generated,omitempty"`
	Notes                     string              `json:"notes,omitempty"`
	DatesOfExistance          []*Date             `json:"dates_of_existence,omitempty"`
	Publish                   bool                `json:"publish,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	Names         []*NameFamily          `json:"names,omitempty"`
	DisplayName   *NameFamily            `json:"display_name,omitempty"`
	RelatedAgents map[string]interface{} `json:"related_agents,omitempty"`
}

AgentFamily JSONModel(:agent_family)

type AgentPerson

type AgentPerson struct {
	URI                       string                   `json:"uri,omitempty"`
	Title                     string                   `json:"title,omitempty"`
	IsLinkedToPublishedRecord bool                     `json:"is_linked_to_published_record,omitempty"`
	AgentType                 string                   `json:"agent_type,omitempty"` //Enum: agent_person agent_corporate_entity agent_software agent_family user
	AgentContacts             []*AgentContact          `json:"agent_contacts,omitempty"`
	LinkedAgentRoles          []string                 `json:"linked_agent_roles,omitempty"`
	ExternalDocuments         []map[string]interface{} `json:"external_documents,omitempty"`
	RightsStatements          []*RightsStatement       `json:"rights_statements,omitempty"`
	SystemGenerated           bool                     `json:"system_generated,omitempty"`
	Notes                     string                   `json:"notes,omitempty"`
	DatesOfExistance          []*Date                  `json:"dates_of_existence,omitempty"`
	Publish                   bool                     `json:"publish,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	Names         []*NamePerson          `json:"names,omitempty"`
	DisplayName   *NamePerson            `json:"display_name,omitempty"`
	RelatedAgents map[string]interface{} `json:"related_agents,omitempty"`
}

AgentPerson JSONModel(:agent_person)

type AgentRelationshipAssociative

type AgentRelationshipAssociative struct {
	Description string  `json:"description,omitempty"`
	Dates       []*Date `json:"dates"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	Relator  string                 `json:"relator,omitempty"`
	Ref      map[string]interface{} `json:"ref,omitempty"`
	Resolved map[string]interface{} `json:"_resolved,omitempty"`
}

AgentRelationshipAssociative JSONModel(:agent_relationship_associative)

type AgentRelationshipEarlierlater

type AgentRelationshipEarlierlater struct {
	Description string  `json:"description,omitempty"`
	Dates       []*Date `json:"dates"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	Relator  string                 `json:"relator,omitempty"`
	Ref      map[string]interface{} `json:"ref,omitempty"`
	Resolved map[string]interface{} `json:"_resolved,omitempty"`
}

AgentRelationshipEarlierlater JSONModel(:agent_relationship_earlierlater)

type AgentRelationshipParentchild

type AgentRelationshipParentchild struct {
	Description string  `json:"description,omitempty"`
	Dates       []*Date `json:"dates"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	Relator  string                 `json:"relator,omitempty"`
	Ref      map[string]interface{} `json:"ref,omitempty"`
	Resolved map[string]interface{} `json:"_resolved,omitempty"`
}

AgentRelationshipParentchild JSONModel(:agent_relationship_parentchild)

type AgentRelationshipSubordinatesuperior

type AgentRelationshipSubordinatesuperior struct {
	Description string  `json:"description,omitempty"`
	Dates       []*Date `json:"dates"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	Relator  string                 `json:"relator,omitempty"`
	Ref      map[string]interface{} `json:"ref,omitempty"`
	Resolved map[string]interface{} `json:"_resolved,omitempty"`
}

AgentRelationshipSubordinatesuperior JSONModel(:agent_relationship_subordinatesuperior)

type AgentSoftware

type AgentSoftware struct {
	URI                       string                   `json:"uri,omitempty"`
	Title                     string                   `json:"title,omitempty"`
	IsLinkedToPublishedRecord bool                     `json:"is_linked_to_published_record,omitempty"`
	AgentType                 string                   `json:"agent_type,omitempty"` // ENUM as: agent_person agent_corporate_entity agent_software agent_family user
	AgentContacts             []*AgentContact          `json:"agent_contacts"`
	LinkedAgentRoles          string                   `json:"linked_agent_roles,omitempty"`
	ExternalDocuments         []map[string]interface{} `json:"external_documents,omitempty"`
	RightsStatements          []*RightsStatement       `json:"rights_statements"`
	SystemGenerated           bool                     `json:"system_generated,omitempty"`
	Notes                     []*NoteText              `json:"notes,omitmepty"`
	DatesOfExistance          []*Date                  `json:"dates_of_existence,omitempty"`
	Publish                   bool                     `json:"publish"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	DisplayName *NameSoftware   `json:"display_name,omitempty"`
	Names       []*NameSoftware `json:"names,omitempty"`
}

AgentSoftware JSONModel(:agent_software)

type ArchivalObject

type ArchivalObject struct {
	URI               string                   `json:"uri,omitempty"`
	ExternalIDs       []*ExternalID            `json:"external_ids"`
	Title             string                   `json:"title,omitempty"`
	Language          string                   `json:"language,omitempty"`
	Publish           bool                     `json:"publish"`
	Subjects          []map[string]interface{} `json:"subjects"`
	LinkedEvents      []map[string]interface{} `json:"linked_events,omitmepty"`
	Extents           []*Extent                `json:"extents"`
	ExternalDocuments []map[string]interface{} `json:"external_documents"`
	RightsStatements  []*RightsStatement       `json:"rights_statements"`
	LinkedAgents      []*Agent                 `json:"linked_agents"`
	Suppressed        bool                     `json:"suppressed"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	RefID                    string                 `json:"ref_id,omitempty"`
	ConponentID              string                 `json:"component_id,omitempty"`
	Level                    string                 `json:"level,omitempty"`
	OtherLevel               string                 `json:"other_level,omitempty"`
	DisplayString            string                 `json:"display_string,omitempty"`
	RestrictionsApply        bool                   `json:"restrictions_apply,omitempty"`
	RepositoryProcessingNote string                 `json:"repository_processing_note,omitempty"`
	Parent                   map[string]interface{} `json:"parent,omitempty"`
	Resource                 map[string]interface{} `json:"resource,omitempty"`
	Series                   map[string]interface{} `json:"series,omitempty"`
	Position                 int                    `json:"position,omitempty"`
	Instances                []*Instance            `json:"instances,omitempty"`
	Notes                    []*NoteText            `json:"notes,omitempty"`
	HasUnpublishedAncester   bool                   `json:"has_unpublished_ancestor,omitempty"`
}

ArchivalObject JSONModel(:archival_object)

type ArchivalRecordChildren

type ArchivalRecordChildren struct {
	Children []*ArchivalObject `json:"children,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

ArchivalRecordChildren JSONModel(:archival_record_children)

type ArchivesSpaceAPI

type ArchivesSpaceAPI struct {
	BaseURL      *url.URL `json:"api_url"`
	CallURL      *url.URL `json:"api_call_url"`
	AuthToken    string   `json:"token,omitempty"`
	Username     string   `json:"username,omitempty"`
	Password     string   `json:"password,omitempty"`
	Dataset      string   `json:"cait_dataset,omitempty"`
	DatasetIndex string   `json:"cait_dataset_index,omitempty"`
	Htdocs       string   `json:"htdocs,omitempty"`
	HtdocsIndex  string   `json:"htdocs_index,omitempty"`
	Templates    string   `json:"templates,omitempty"`
}

ArchivesSpaceAPI is a struct holding the essentials for communicating with the ArchicesSpace REST API

func New

func New(apiURL, username, password string) *ArchivesSpaceAPI

New creates a new ArchivesSpaceAPI object for use with most of the functions in the gas package.

func (*ArchivesSpaceAPI) API

func (api *ArchivesSpaceAPI) API(method string, url string, data interface{}) ([]byte, error)

API the common HTTP request processing for interacting with ArchivesSpaceAPI

func (*ArchivesSpaceAPI) CreateAPI

func (api *ArchivesSpaceAPI) CreateAPI(url string, obj interface{}) (*ResponseMsg, error)

CreateAPI is a generalized call to create an object form an interface.

func (*ArchivesSpaceAPI) CreateAccession

func (api *ArchivesSpaceAPI) CreateAccession(repoID int, accession *Accession) (*ResponseMsg, error)

CreateAccession creates a new Accession record in a Repository

func (*ArchivesSpaceAPI) CreateAgent

func (api *ArchivesSpaceAPI) CreateAgent(aType string, agent *Agent) (*ResponseMsg, error)

CreateAgent creates a Agent recod via the ArchivesSpace API

func (*ArchivesSpaceAPI) CreateDigitalObject

func (api *ArchivesSpaceAPI) CreateDigitalObject(repoID int, obj *DigitalObject) (*ResponseMsg, error)

CreateDigitalObject - return a new digital object

func (*ArchivesSpaceAPI) CreateLocation

func (api *ArchivesSpaceAPI) CreateLocation(location *Location) (*ResponseMsg, error)

CreateLocation creates a new Location in ArchivesSpace

func (*ArchivesSpaceAPI) CreateRepository

func (api *ArchivesSpaceAPI) CreateRepository(repo *Repository) (*ResponseMsg, error)

CreateRepository will create a repository via the REST API for ArchivesSpace defined in the ArchivesSpaceAPI struct. It will return the created record.

func (*ArchivesSpaceAPI) CreateResource added in v0.0.5

func (api *ArchivesSpaceAPI) CreateResource(repoID int, obj *Resource) (*ResponseMsg, error)

CreateResource - return a new resource

func (*ArchivesSpaceAPI) CreateSubject

func (api *ArchivesSpaceAPI) CreateSubject(subject *Subject) (*ResponseMsg, error)

CreateSubject creates a new Subject in ArchivesSpace

func (*ArchivesSpaceAPI) CreateTerm

func (api *ArchivesSpaceAPI) CreateTerm(vocabularyID int, term *Term) (*ResponseMsg, error)

CreateTerm creates a new Term in ArchivesSpace

func (*ArchivesSpaceAPI) CreateVocabulary

func (api *ArchivesSpaceAPI) CreateVocabulary(vocabulary *Vocabulary) (*ResponseMsg, error)

CreateVocabulary creates a new Vocabulary in ArchivesSpace

func (*ArchivesSpaceAPI) DeleteAPI

func (api *ArchivesSpaceAPI) DeleteAPI(url string, obj interface{}) (*ResponseMsg, error)

DeleteAPI is a generalized call to update an object form an interface

func (*ArchivesSpaceAPI) DeleteAccession

func (api *ArchivesSpaceAPI) DeleteAccession(accession *Accession) (*ResponseMsg, error)

DeleteAccession deleted an Accession record from a Repository

func (*ArchivesSpaceAPI) DeleteAgent

func (api *ArchivesSpaceAPI) DeleteAgent(agent *Agent) (*ResponseMsg, error)

DeleteAgent creates a Agent record via the ArchivesSpace API

func (*ArchivesSpaceAPI) DeleteDigitalObject

func (api *ArchivesSpaceAPI) DeleteDigitalObject(obj *DigitalObject) (*ResponseMsg, error)

DeleteDigitalObject - return the results of deleting a digital object

func (*ArchivesSpaceAPI) DeleteLocation

func (api *ArchivesSpaceAPI) DeleteLocation(location *Location) (*ResponseMsg, error)

DeleteLocation deletes a location from ArchivesSpace

func (*ArchivesSpaceAPI) DeleteRepository

func (api *ArchivesSpaceAPI) DeleteRepository(repo *Repository) (*ResponseMsg, error)

DeleteRepository takes a repository structure and sends it to the ArchivesSpace REST API

func (*ArchivesSpaceAPI) DeleteResource added in v0.0.5

func (api *ArchivesSpaceAPI) DeleteResource(obj *Resource) (*ResponseMsg, error)

DeleteResource - return the results of deleting a resource

func (*ArchivesSpaceAPI) DeleteSubject

func (api *ArchivesSpaceAPI) DeleteSubject(subject *Subject) (*ResponseMsg, error)

DeleteSubject deletes a subject from ArchivesSpace

func (*ArchivesSpaceAPI) DeleteTerm

func (api *ArchivesSpaceAPI) DeleteTerm(term *Term) (*ResponseMsg, error)

DeleteTerm deletes a term from ArchivesSpace

func (*ArchivesSpaceAPI) DeleteVocabulary

func (api *ArchivesSpaceAPI) DeleteVocabulary(vocabulary *Vocabulary) (*ResponseMsg, error)

DeleteVocabulary deletes a vocabulary from ArchivesSpace

func (*ArchivesSpaceAPI) ExportAccessions

func (api *ArchivesSpaceAPI) ExportAccessions(repoID int) error

ExportAccessions exports all accessions by id to JSON files.

func (*ArchivesSpaceAPI) ExportAgents

func (api *ArchivesSpaceAPI) ExportAgents(agentType string) error

ExportAgents exports all agent records of a given type to JSON files by id.

func (*ArchivesSpaceAPI) ExportArchivesSpace

func (api *ArchivesSpaceAPI) ExportArchivesSpace() error

ExportArchivesSpace exports all content currently support by the Golang API implementation

func (*ArchivesSpaceAPI) ExportDigitalObjects

func (api *ArchivesSpaceAPI) ExportDigitalObjects(repoID int) error

ExportDigitalObjects export all digital objects by id to JSON files.

func (*ArchivesSpaceAPI) ExportLocations

func (api *ArchivesSpaceAPI) ExportLocations() error

ExportLocations export all locations by id to JSON files.

func (*ArchivesSpaceAPI) ExportRepositories

func (api *ArchivesSpaceAPI) ExportRepositories() error

ExportRepositories exports all repositories record to a JSON file by ID.

func (*ArchivesSpaceAPI) ExportRepository

func (api *ArchivesSpaceAPI) ExportRepository(id int, dir string, fname string) error

ExportRepository for specific id to a JSON file.

func (*ArchivesSpaceAPI) ExportResources added in v0.0.5

func (api *ArchivesSpaceAPI) ExportResources(repoID int) error

ExportResources export all resources by id to JSON files.

func (*ArchivesSpaceAPI) ExportSubjects

func (api *ArchivesSpaceAPI) ExportSubjects() error

ExportSubjects exports all subjects by id to JSON files.

func (*ArchivesSpaceAPI) ExportTerms

func (api *ArchivesSpaceAPI) ExportTerms() error

ExportTerms export all terms by voc id, term id to JSON files.

func (*ArchivesSpaceAPI) ExportVocabularies

func (api *ArchivesSpaceAPI) ExportVocabularies() error

ExportVocabularies exports all the vocabularies by ids to JSON files.

func (*ArchivesSpaceAPI) GetAPI

func (api *ArchivesSpaceAPI) GetAPI(url string, obj interface{}) error

GetAPI is a generalized call to get a specific object from an interface obj is modified as a side effect

func (*ArchivesSpaceAPI) GetAccession

func (api *ArchivesSpaceAPI) GetAccession(repoID, accessionID int) (*Accession, error)

GetAccession retrieves an Accession record from a Repository

func (*ArchivesSpaceAPI) GetAgent

func (api *ArchivesSpaceAPI) GetAgent(agentType string, agentID int) (*Agent, error)

GetAgent return an Agent via the ArchivesSpace API

func (*ArchivesSpaceAPI) GetDigitalObject

func (api *ArchivesSpaceAPI) GetDigitalObject(repoID, objID int) (*DigitalObject, error)

GetDigitalObject - return a given digital object

func (*ArchivesSpaceAPI) GetLocation

func (api *ArchivesSpaceAPI) GetLocation(ID int) (*Location, error)

GetLocation retrieves a location record from ArchivesSpace

func (*ArchivesSpaceAPI) GetRepository

func (api *ArchivesSpaceAPI) GetRepository(id int) (*Repository, error)

GetRepository returns the repository details based on Id

func (*ArchivesSpaceAPI) GetResource added in v0.0.5

func (api *ArchivesSpaceAPI) GetResource(repoID, objID int) (*Resource, error)

GetResource - return a given resource

func (*ArchivesSpaceAPI) GetSubject

func (api *ArchivesSpaceAPI) GetSubject(subjectID int) (*Subject, error)

GetSubject retrieves a subject record from ArchivesSpace

func (*ArchivesSpaceAPI) GetTerm

func (api *ArchivesSpaceAPI) GetTerm(vocabularyID, termID int) (*Term, error)

GetTerm retrieves a term record from ArchivesSpace

func (*ArchivesSpaceAPI) GetVocabulary

func (api *ArchivesSpaceAPI) GetVocabulary(vocabularyID int) (*Vocabulary, error)

GetVocabulary retrieves a vocabulary record from ArchivesSpace

func (*ArchivesSpaceAPI) IsAuth

func (api *ArchivesSpaceAPI) IsAuth() bool

IsAuth returns true if the auth token has been set, false otherwise

func (*ArchivesSpaceAPI) ListAPI

func (api *ArchivesSpaceAPI) ListAPI(url string) ([]int, error)

ListAPI return a list of IDs from ArchivesSpace for given URL

func (*ArchivesSpaceAPI) ListAccessions

func (api *ArchivesSpaceAPI) ListAccessions(repositoryID int) ([]int, error)

ListAccessions return a list of Accession IDs from a Repository

func (*ArchivesSpaceAPI) ListAgents

func (api *ArchivesSpaceAPI) ListAgents(agentType string) ([]int, error)

ListAgents return an array of Agents via the ArchivesSpace API

func (*ArchivesSpaceAPI) ListDigitalObjects

func (api *ArchivesSpaceAPI) ListDigitalObjects(repoID int) ([]int, error)

ListDigitalObjects - return a list of digital object ids

func (*ArchivesSpaceAPI) ListLocations

func (api *ArchivesSpaceAPI) ListLocations() ([]int, error)

ListLocations return a list of Location IDs from ArchivesSpace

func (*ArchivesSpaceAPI) ListRepositories

func (api *ArchivesSpaceAPI) ListRepositories() ([]Repository, error)

ListRepositories returns a list of repositories available via the ArchivesSpace REST API

func (*ArchivesSpaceAPI) ListRepositoryIDs

func (api *ArchivesSpaceAPI) ListRepositoryIDs() ([]int, error)

ListRepositoryIDs returns the numeric ids for all respoistories via the ArchivesSpace REST API

func (*ArchivesSpaceAPI) ListResources added in v0.0.5

func (api *ArchivesSpaceAPI) ListResources(repoID int) ([]int, error)

ListResources - return a list of resource ids

func (*ArchivesSpaceAPI) ListSubjects

func (api *ArchivesSpaceAPI) ListSubjects() ([]int, error)

ListSubjects return a list of Subject IDs from ArchivesSpace

func (*ArchivesSpaceAPI) ListTermIDs

func (api *ArchivesSpaceAPI) ListTermIDs(vocabularyID int) ([]int, error)

ListTermIDs return a list of Term IDs from ArchivesSpace

func (*ArchivesSpaceAPI) ListTerms

func (api *ArchivesSpaceAPI) ListTerms(vocabularyID int) ([]*Term, error)

ListTerms return a list of Term IDs from ArchivesSpace

func (*ArchivesSpaceAPI) ListVocabularies

func (api *ArchivesSpaceAPI) ListVocabularies() ([]int, error)

ListVocabularies return a list of Vocabulary IDs from ArchivesSpace

func (*ArchivesSpaceAPI) Login

func (api *ArchivesSpaceAPI) Login() error

Login authenticates against the ArchivesSpace REST API setting the AuthToken value in the ArchivesSpaceAPI struct.

func (*ArchivesSpaceAPI) Logout

func (api *ArchivesSpaceAPI) Logout() error

Logout clear the authentication token for the session with the API

func (*ArchivesSpaceAPI) String

func (cait *ArchivesSpaceAPI) String() string

String convert an ArchicesSpaceAPI struct as a JSON formatted string

func (*ArchivesSpaceAPI) UpdateAPI

func (api *ArchivesSpaceAPI) UpdateAPI(url string, obj interface{}) (*ResponseMsg, error)

UpdateAPI is a generalized call to update an object from an interface.

func (*ArchivesSpaceAPI) UpdateAccession

func (api *ArchivesSpaceAPI) UpdateAccession(accession *Accession) (*ResponseMsg, error)

UpdateAccession updates an existing Accession record in a Repository

func (*ArchivesSpaceAPI) UpdateAgent

func (api *ArchivesSpaceAPI) UpdateAgent(agent *Agent) (*ResponseMsg, error)

UpdateAgent creates a Agent recod via the ArchivesSpace API

func (*ArchivesSpaceAPI) UpdateCallPath added in v0.0.5

func (api *ArchivesSpaceAPI) UpdateCallPath(p string) string

UpdateCallPath takes the BaseURL Path attribute, copies it into CallURL, applies appends a path for next API call

func (*ArchivesSpaceAPI) UpdateDigitalObject

func (api *ArchivesSpaceAPI) UpdateDigitalObject(obj *DigitalObject) (*ResponseMsg, error)

UpdateDigitalObject - returns an updated digital

func (*ArchivesSpaceAPI) UpdateLocation

func (api *ArchivesSpaceAPI) UpdateLocation(location *Location) (*ResponseMsg, error)

UpdateLocation updates an existing location record in ArchivesSpace

func (*ArchivesSpaceAPI) UpdateRepository

func (api *ArchivesSpaceAPI) UpdateRepository(repo *Repository) (*ResponseMsg, error)

UpdateRepository takes a repository structure and sends it to the ArchivesSpace REST API

func (*ArchivesSpaceAPI) UpdateResource added in v0.0.5

func (api *ArchivesSpaceAPI) UpdateResource(obj *Resource) (*ResponseMsg, error)

UpdateResource - returns an updated resource

func (*ArchivesSpaceAPI) UpdateSubject

func (api *ArchivesSpaceAPI) UpdateSubject(subject *Subject) (*ResponseMsg, error)

UpdateSubject updates an existing subject record in ArchivesSpace

func (*ArchivesSpaceAPI) UpdateTerm

func (api *ArchivesSpaceAPI) UpdateTerm(term *Term) (*ResponseMsg, error)

UpdateTerm updates an existing term record in ArchivesSpace

func (*ArchivesSpaceAPI) UpdateVocabulary

func (api *ArchivesSpaceAPI) UpdateVocabulary(vocabulary *Vocabulary) (*ResponseMsg, error)

UpdateVocabulary updates an existing vocabulary record in ArchivesSpace

type BooleanFieldQuery

type BooleanFieldQuery struct {
	Field string `json:"field,omitempty"`
	Value bool   `json:"value,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

BooleanFieldQuery JSONModel(:boolean_field_query)

type BooleanQuery

type BooleanQuery struct {
	Op string `json:"op,omitempty"` // ENUM as: string AND OR NOT
	//FIXME: this needs to be re-thought, do I use an interface type, a struct?
	Subqueries map[string]interface{} `json:"subqueries,omitempty"` // One of 	JSONModel(:boolean_query) object,JSONModel(:field_query) object,JSONModel(:boolean_field_query) object,JSONModel(:date_field_query) object

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

BooleanQuery JSONModel(:boolean_query)

type Classification

type Classification struct {
	URI           string                 `json:"uri,omitempty"`
	Identifier    string                 `json:"identifier,omitempty"`
	Title         string                 `json:"title,omitempty"`
	Description   string                 `json:"description,omitempty"`
	Publish       bool                   `json:"publish,omitempty"` //NOTE: default should true
	PathFromRoot  map[string]interface{} `json:"path_from_root,omitempty"`
	LinkedRecords map[string]interface{} `json:"linked_records,omitempty"`
	Creator       map[string]interface{} `json:"creator,omitempty"`

	LockVersion    json.Number `json:"lock_version,Number"`
	JSONModelType  string      `json:"jsonmodel_type,omitempty"`
	CreatedBy      string      `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string      `json:"last_modified_by,omitempty"`
	UserMTime      string      `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string      `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string      `json:"create_time,omitempty,omitempty"`
}

Classification JSONModel(:classification)

type ClassificationTerm

type ClassificationTerm struct {
	URI           string                 `json:"uri,omitempty"`
	Identifier    string                 `json:"identifier,omitempty"`
	Title         string                 `json:"title,omitempty"`
	Description   string                 `json:"description,omitempty"`
	Publish       bool                   `json:"publish,omitempty"` //NOTE: default should true
	PathFromRoot  map[string]interface{} `json:"path_from_root,omitempty"`
	LinkedRecords map[string]interface{} `json:"linked_records,omitempty"`
	Creator       map[string]interface{} `json:"creator,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	Position       int                    `json:"position,omitempty"`
	Parent         map[string]interface{} `json:"parent,omitempty"`
	Classification map[string]interface{} `json:"classification,omitempty"`
}

ClassificationTerm JSONModel(:classification_term)

type ClassificationTree

type ClassificationTree struct {
	URI         string `json:"uri,omitempty"`
	ID          int    `json:"id,omitempty"`
	RecordURI   string `json:"record_uri,omitempty"`
	Title       string `json:"title,omitempty"`
	Suppressed  bool   `json:"suppressed,omitempty"`
	Publish     bool   `json:"publish,omitempty"`
	HasChildren bool   `json:"has_children,omitempty"`
	NodeType    string `json:"node_type,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	Identifier string                `json:"identifier,omitempty"`
	Children   []*ClassificationTree `json:"children,omitempty"`
}

ClassificationTree JSONModel(:classification_tree)

type CollectionManagement

type CollectionManagement struct {
	URI                            string        `json:"uri,omitempty"`
	ExternalIDs                    []*ExternalID `json:"external_ids"`
	ProcessingHoursPerFootEstimate string        `json:"processing_hours_per_foot_estimate,omitempty"`
	ProcessingTotalExtent          string        `json:"processing_total_extent,omitempty"`
	ProcessingTotalExtentType      string        `json:"processing_total_extent_type,omitempty"`
	ProcessingHoursTotal           string        `json:"processing_hours_total,omitempty"`
	ProcessingPlan                 string        `json:"processing_plan,omitempty"`
	ProcessingPriority             string        `json:"processing_priority,omitempty"`
	ProcessingFundingSource        string        `json:"processing_funding_source,omitempty"`
	Processors                     string        `json:"processors,omitempty"`
	RightsDetermined               bool          `json:"rights_determined,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

CollectionManagement JSONModel(:collection_management)

type Container

type Container struct {
	ContainerProfileKey string               `json:"container_profile_key,omitempty"`
	Type1               string               `json:"type_1,omitempty"`
	Indicator1          string               `json:"indicator_1,omitempty"`
	Barcode1            string               `json:"Barcode_1,omitempty"`
	Type2               string               `json:"type_2,omitempty"`
	Indicator2          string               `json:"indicator_2,omitempty"`
	Type3               string               `json:"type_3,omitempty"`
	Indicator3          string               `json:"indicator_3"`
	ContainerExtent     string               `json:"container_extent,omitempty"`
	ContainerExtentType string               `json:"container_extent_type,omitempty"`
	ContainerLocations  []*ContainerLocation `json:"container_locations,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

Container JSONModel(:container)

type ContainerLocation

type ContainerLocation struct {
	Status    string                 `json:"status,omitempty"`
	StartDate *Date                  `json:"start_date,omitempty"`
	EndDate   *Date                  `json:"end_date,omitempty"`
	Note      string                 `json:"note,omitempty"`
	Ref       string                 `json:"location,omitempty"`
	Resolved  map[string]interface{} `json:"_resolved,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

ContainerLocation JSONModel(:container_location)

type ContainerProfile

type ContainerProfile struct {
	URI             string `json:"uri,omitempty"`
	Name            string `json:"name,omitempty"`
	URL             string `json:"url,omitempty"`
	DimensionUnits  string `json:"dimension_units,omitempty"`
	ExtentDimension string `json:"extent_dimension,omitempty" ` //ENUM as: height width depth
	Height          string `json:"height,omitempty"`
	Width           string `json:"width,omitempty"`
	Depth           string `json:"width,omitempty"`
	DisplayString   string `json:"display_string,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

ContainerProfile JSONModel(:container_profile)

type Date

type Date struct {
	DateType   string `json:"date_type,omitempty"`
	Label      string `json:"label,omitempty"`
	Certainty  string `json:"certainty,omitempty"`
	Expression string `json:"expression,omitempty"`
	Begin      string `json:"begin,omitempty"`
	End        string `json:"end,omitempty"`
	Era        string `json:"era,omitempty"`
	Calendar   string `json:"calendar,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

Date JSONModel(:date)

type DateFieldQuery

type DateFieldQuery struct {
	Comparator string `json:"comparator,omitempty"` // ENUM as: greater_than lesser_than equal
	Field      string `json:"field,omitempty"`
	Value      *Date  `json:"value,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

DateFieldQuery JSONModel(:date_field_query)

type Deaccession

type Deaccession struct {
	Scope        string    `json:"scope,omitempty"`
	Description  string    `json:"description,omitempty"`
	Reason       string    `json:"reason,omitempty"`
	Disposition  string    `json:"disposition,omitempty"`
	Notification bool      `json:"notification,omitempty"`
	Date         *Date     `json:"date,omitempty"`
	Extents      []*Extent `json:"extents,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

Deaccession JSONModel(:deaccession)

type DefaultValues

type DefaultValues struct {
	URI        string                 `json:"uri,omitempty"`
	RecordType string                 `json:"record_type,omitempty"` //ENUM of : archival_object digital_object_component resource accession subject digital_object agent_person agent_family agent_software agent_corporate_entity event location classification classification_term
	Defaults   map[string]interface{} `json:"defaults,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

DefaultValues JSONModel(:default_values)

type Defaults

type Defaults struct {
	ShowSuppressed             bool   `json:"show_suppressed,omitempty"`
	Publish                    bool   `json:"publish,omitempty"`
	AccessionBrowseColumn1     string `json:"accession_browse_column_1,omitempty"`      // enum string identifier accession_date acquisition_type resource_type restrictions_apply access_restrictions use_restrictions publish no_value
	AccessionBrowseColumn2     string `json:"accession_browse_column_2,omitempty"`      // enum string identifier accession_date acquisition_type resource_type restrictions_apply access_restrictions use_restrictions publish no_value
	AccessionBrowseColumn3     string `json:"accession_browse_column_3,omitempty"`      // enum string identifier accession_date acquisition_type resource_type restrictions_apply access_restrictions use_restrictions publish no_value
	AccessionBrowseColumn4     string `json:"accession_browse_column_4,omitempty"`      // enum string identifier accession_date acquisition_type resource_type restrictions_apply access_restrictions use_restrictions publish no_value
	AccessionBrowseColumn5     string `json:"accession_browse_column_5,omitempty"`      //  enum string identifier accession_date acquisition_type resource_type restrictions_apply access_restrictions use_restrictions publish no_value
	ResourceBrowseColumn1      string `json:"resource_browse_column_1,omitempty"`       // enum string identifier resource_type level language restrictions ead_id finding_aid_status publish no_value
	ResourceBrowseColumn2      string `json:"resource_browse_column_2,omitempty"`       // enum string identifier resource_type level language restrictions ead_id finding_aid_status publish no_value
	ResourceBrowseColumn3      string `json:"resource_browse_column_3,omitempty"`       // enum string identifier resource_type level language restrictions ead_id finding_aid_status publish no_value
	ResourceBrowseColumn4      string `json:"resource_browse_column_4,omitempty"`       // enum string identifier resource_type level language restrictions ead_id finding_aid_status publish no_value
	ResourceBrowseColumn5      string `json:"resource_browse_column_5,omitempty"`       // enum string identifier resource_type level language restrictions ead_id finding_aid_status publish no_value
	DigitalObjectBrowseColumn1 string `json:"digital_object_browse_column_1,omitempty"` // enum string digital_object_id digital_object_type level restrictions publish no_value
	DigitalObjectBrowseColumn2 string `json:"digital_object_browse_column_2,omitempty"` // enum string digital_object_id digital_object_type level restrictions publish no_value
	DigitalObjectBrowseColumn3 string `json:"digital_object_browse_column_3,omitempty"` // enum string digital_object_id digital_object_type level restrictions publish no_value
	DigitalObjectBrowseColumn4 string `json:"digital_object_browse_column_4,omitempty"` // enum string digital_object_id digital_object_type level restrictions publish no_value
	DigitalObjectBrowseColumn5 string `json:"digital_object_browse_column_5,omitempty"` // enum string digital_object_id digital_object_type level restrictions publish no_value
	DefaultValues              bool   `json:"default_values,omitempty"`
	NoteOrder                  string `json:"note_order,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

Defaults JSONModel(:defaults)

type DigitalObject

type DigitalObject struct {
	ID                int                      `json:"id,omitempty"`
	URI               string                   `json:"uri,omitmepty"`
	ExternalIDs       []string                 `json:"external_ids"`
	Title             string                   `json:"title,omitempty"`
	Language          string                   `json:"language,omitempty"`
	Publish           bool                     `json:"publish"`
	Subjects          []map[string]interface{} `json:"subjects"`
	LinkedEvents      []map[string]interface{} `json:"linked_events"`
	Extents           []*Extent                `json:"extents"`
	Dates             []*Date                  `json:"dates"`
	ExternalDocuments []map[string]interface{} `json:"external_documents"`
	RightsStatements  []*RightsStatement       `json:"rights_statements"`
	LinkedAgents      []*Agent                 `json:"linked_agents"`
	Suppressed        bool                     `json:"suppressed,omitmepty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	DigitalObjectID      string                   `json:"digital_object_id,omitmepty"`
	Level                string                   `json:"level,omitmepty"`
	DigitalObjectType    string                   `json:"digital_object_type"`
	FileVersions         []*FileVersion           `json:"file_versions,omitempty"`
	Restrictions         bool                     `json:"restrictions,omitmepty"`
	Tree                 map[string]interface{}   `json:"tree,omitmepty"`
	Notes                []map[string]interface{} `json:"notes,omitmepty"`
	CollectionManagement *CollectionManagement    `json:"collection_management,omitempty"`
	UserDefined          []map[string]interface{} `json:"user_defined,omitmepty"`
	LinkedInstances      []map[string]interface{} `json:"linked_instances,omitempty"`
}

DigitalObject represents a digital object that will eventually become a EAD at COA

func (*DigitalObject) NormalizeView

func (o *DigitalObject) NormalizeView() *NormalizedDigitalObjectView

NormalizeView takes a digital object and returns a normalized view

func (*DigitalObject) String

func (obj *DigitalObject) String() string

String return a Term

type DigitalObjectComponent

type DigitalObjectComponent struct {
	URI               string                   `json:"uri,omitempty"`
	ExternalIDs       []*ExternalID            `json:"external_ids,omitempty"`
	Title             string                   `json:"title,omitempty"`
	Language          string                   `json:"language,omitempty"`
	Publish           bool                     `json:"publish"`
	Subjects          []map[string]interface{} `json:"subjects"`
	LinkedEvents      []map[string]interface{} `json:"linked_events,omitempty"`
	Extents           []*Extent                `json:"extents,omitempty"`
	Dates             []*Date                  `json:"dates,omitempty"`
	ExternalDocuments []map[string]interface{} `json:"external_documents,omitempty"`
	RightsStatements  []*RightsStatement       `json:"rights_statements,omitempty"`
	LinkedAgents      []*Agent                 `json:"linked_agents,omitempty"`
	Suppressed        bool                     `json:"suppressed,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	ComponentID            string                 `json:"component_id,omitempty"`
	Label                  string                 `json:"label,omitempty"`
	DisplayString          string                 `json:"display_string,omitempty"`
	FileVersions           []*FileVersion         `json:"file_versions,omitempty"`
	Parent                 map[string]interface{} `json:"parent,omitempty"`
	DigitalObject          *DigitalObject         `json:"digital_object,omitempty"`
	Position               int                    `json:"position,omitempty"`
	Notes                  []*NoteText            `json:"notes,omitempty"`
	HasUnpublishedAncestor bool                   `json:"has_unpublished_ancestor,omitempty"`
}

DigitalObjectComponent JSONModel(:digital_object_component)

type DigitalObjectTree

type DigitalObjectTree struct {
	URI         string `json:"uri,omitempty"`
	ID          int    `json:"id,omitempty"`
	RecordURI   string `json:"record_uri,omitempty"`
	Title       string `json:"title,omitempty"`
	Suppressed  bool   `json:"suppressed,omitempty"`
	Publish     bool   `json:"publish"`
	HasChildren bool   `json:"has_children,omitempty"`
	NodeType    string `json:"node_type,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	Level             string               `json:"level,omitempty"`
	DigitalObjectType string               `json:"digital_object_type,omitempty"`
	FileVersions      []*FileVersion       `json:"file_versions,omitempty"`
	Children          []*DigitalObjectTree `json:"children,omitempty"`
}

DigitalObjectTree JSONModel(:digital_object_tree)

type DigitalRecordChildren

type DigitalRecordChildren struct {
	Children []*DigitalObjectComponent `json:"children,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

DigitalRecordChildren JSONModel(:digital_record_children)

type Enumeration

type Enumeration struct {
	URI               string              `json:"uri,omitempty"`
	Name              string              `json:"name,omitempty"`
	DefaultValue      string              `json:"default_value,omitempty"`
	Editable          bool                `json:"editable,omitempty"`
	Relationships     []string            `json:"relationships,omitempty"`
	EnumerationValues []*EnumerationValue `json:"enumeration_values,omitempty"`
	Values            []string            `json:"values,omitempty"`
	ReadonlyValues    []string            `json:"readonly_values,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

Enumeration JSONModel(:enumeration)

type EnumerationMigration

type EnumerationMigration struct {
	URI     string       `json:"uri,omitempty"`
	EnumURI *Enumeration `json:"enum_uri,omitempty"`
	From    string       `json:"from,omitempty"`
	To      string       `json:"to,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

EnumerationMigration JSONModel(:enumeration_migration)

type EnumerationValue

type EnumerationValue struct {
	URI        string `json:"uri,omitempty"`
	Value      string `json:"value,omitempty"`
	Position   int    `json:"position,omitempty"`
	Suppressed bool   `json:"suppressed,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

EnumerationValue JSONModel(:enumeration_value)

type Event

type Event struct {
	URI               string                   `json:"uri,omitempty"`
	ExternalIDs       []*ExternalID            `json:"external_ids,omitempty"`
	ExternalDocuments []map[string]interface{} `json:"external_documents,omitempty"`
	EventType         string                   `json:"event_type,omitempty"`
	Date              *Date                    `json:"date,omitempty"`
	Timestamp         string                   `json:"timestamp,omitempty"`
	Outcome           string                   `json:"outcome,omitempty"`
	OutcomeNote       string                   `json:"outcome_note,omitempty"`
	Suppressed        bool                     `json:"suppressed,omitempty"`
	LinkedAgents      []*Agent                 `json:"linked_agents,omitempty"`
	LinkedRecords     map[string]interface{}   `json:"linked_records,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

Event JSONModel(:event)

type Extent

type Extent struct {
	Portion          string `json:"portion"`
	Number           string `json:"number"`
	ExtentType       string `json:"extent_type"`
	ContainerSummary string `json:"container_summary"`
	PhysicalDetails  string `json:"physical_details"`
	Dimensions       string `json:"dimensions"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

Extent represents an extends json model found in Accession records

func (*Extent) String

func (extent *Extent) String() string

String return an Extent

type ExternalDocument

type ExternalDocument struct {
	Title    string `json:"title,omitempty"`
	Location string `json:"location,omitempty"`
	Publish  bool   `json:"publish"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

ExternalDocument a pointer to external documents

type ExternalID

type ExternalID struct {
	ExternalID string `json:"external_id,omitempty"`
	Source     string `json:"source,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

ExternalID represents an external ID as found in Accession records

func (*ExternalID) String

func (externalID *ExternalID) String() string

String return a ExternalID

type FieldQuery

type FieldQuery struct {
	Negated bool   `json:"negated,omitempty"`
	Field   string `json:"field,omitempty"`
	Value   string `json:"value,omitempty"`
	Literal bool   `json:"literal,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

FieldQuery JSONModel(:field_query)

type FileVersion

type FileVersion struct {
	Identifier            string `json:"identifier,omitempty"`
	FileURI               string `json:"file_uri,omitempty"`
	Publish               bool   `json:"publish"`
	UseStatement          string `json:"use_statement,omitempty"`
	XLinkActuateAttribute string `json:"xlink_actuate_attribute,omitempty"`
	XLinkShowAttribute    string `json:"xlink_show_attribute,omitempty"`
	FileFormatName        string `json:"file_format_name,omitempty"`
	FileFormatVersion     string `json:"file_format_version,omitempty"`
	FileSizeBytes         int    `json:"file_size_bytes,omitempty"`
	Checksum              string `json:"checksum,omitempty"`
	ChecksumMethod        string `json:"checksum_method,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

FileVersion JSONModel(:file_version)

type FindAndReplaceJob

type FindAndReplaceJob struct {
	Find          string `json:"find,omitempty"`
	Replace       string `json:"replace,omitempty"`
	RecordType    string `json:"record_type,omitempty"`
	Property      string `json:"property,omitempty"`
	BaseRecordURI string `json:"base_record_uri,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

FindAndReplaceJob JSONModel(:find_and_replace_job)

type Group

type Group struct {
	URI               string   `json:"uri,omitempty"`
	GroupCode         string   `json:"group_code,omitempty"`
	Description       string   `json:"description,omitempty"`
	MemberUsernames   []string `json:"member_usernames,omitempty"`
	GrantsPermissions []string `json:"grants_permissions,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

Group JSONModel(:group)

type ImportJob

type ImportJob struct {
	Filenames  []string `json:"filenames,omitempty"`
	ImportType string   `json:"import_type,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

ImportJob JSONModel(:import_job)

type Instance

type Instance struct {
	InstanceType  string                 `json:"instance_type,omitempty"`
	Container     *Container             `json:"container,omitempty"`
	SubContainer  *SubContainer          `json:"sub_container,omitempty"`
	DigitalObject map[string]interface{} `json:"digital_object,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

Instance JSONModel(:instance)

type Job

type Job struct {
	URI           string                 `json:"uri,omitempty"`
	JobType       string                 `json:"job_type,omitempty"`
	Job           map[string]interface{} `json:"job,omitempty"`
	JobParams     string                 `json:"job_params,omitempty"`
	TimeSubmitted string                 `json:"time_submitted,omitempty"`
	TimeStarted   string                 `json:"time_started,omitempty"`
	TimeFinished  string                 `json:"time_finished,omitempty"`
	Owner         string                 `json:"owner"`
	Status        string                 `json:"status"` // enum string running completed canceled queued failed default queued
	QueuePosition int                    `json:"queue_position,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

Job JSONModel(:job)

type Location

type Location struct {
	ID                   int           `json:"id,omitempty"`
	URI                  string        `json:"uri,omitempty"`
	Title                string        `json:"title,omitempty"`
	ExternalIDs          []*ExternalID `json:"external_ids,omitempty"`
	Building             string        `json:"building,omitempty"`
	Floor                string        `json:"Floor,omitempty"`
	Room                 string        `json:"Room,omitempty"`
	Area                 string        `json:"area,omitempty"`
	Barcode              string        `json:"barcode,omitempty"`
	Classification       `json:"string,omitempty"`
	Coordinate1Label     string `json:"coordinatel_1_label"`
	Coordinate1Indicator string `json:"coordinate_1_indicator,omitempty"`
	Coordinate2Label     string `json:"coordinate_2_label,omitempty"`
	Coordinate2Indicator string `json:"coordinate_2_indicator,omitempty"`
	Coordinate3Label     string `json:"coordinate_3_label,omitempty"`
	Coordinate3Indicator string `json:"coordinate_3_indicator,omitempty"`
	Temporary            string `json:"temporary,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

Location JSONModel(:location)

type LocationBatch

type LocationBatch struct {
	URI                  string        `json:"uri,omitempty"`
	Title                string        `json:"title,omitempty"`
	ExternalIDs          []*ExternalID `json:"external_ids,omitempty"`
	Building             string        `json:"building,omitempty"`
	Floor                string        `json:"Floor,omitempty"`
	Room                 string        `json:"Room,omitempty"`
	Area                 string        `json:"area,omitempty"`
	Barcode              string        `json:"barcode,omitempty"`
	Classification       `json:"string,omitempty"`
	Coordinate1Label     string `json:"coordinatel_1_label"`
	Coordinate1Indicator string `json:"coordinate_1_indicator,omitempty"`
	Coordinate2Label     string `json:"coordinate_2_label,omitempty"`
	Coordinate2Indicator string `json:"coordinate_2_indicator,omitempty"`
	Coordinate3Label     string `json:"coordinate_3_label,omitempty"`
	Coordinate3Indicator string `json:"coordinate_3_indicator,omitempty"`
	Temporary            string `json:"temporary,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	Locations        []*Location            `json:"locations,omitempty"`
	Coordinate1Range map[string]interface{} `json:"coordinate_1_range,omitempty"`
	Coordinate2Range map[string]interface{} `json:"coordinate_2_range,omitempty"`
	Coordinate3Range map[string]interface{} `json:"coordinate_3_range,omitempty"`
}

LocationBatch JSONModel(:location_batch)

type LocationBatchUpdate

type LocationBatchUpdate struct {
	URI                  string        `json:"uri,omitempty"`
	Title                string        `json:"title,omitempty"`
	ExternalIDs          []*ExternalID `json:"external_ids,omitempty"`
	Building             string        `json:"building,omitempty"`
	Floor                string        `json:"Floor,omitempty"`
	Room                 string        `json:"Room,omitempty"`
	Area                 string        `json:"area,omitempty"`
	Barcode              string        `json:"barcode,omitempty"`
	Classification       `json:"string,omitempty"`
	Coordinate1Label     string `json:"coordinatel_1_label"`
	Coordinate1Indicator string `json:"coordinate_1_indicator,omitempty"`
	Coordinate2Label     string `json:"coordinate_2_label,omitempty"`
	Coordinate2Indicator string `json:"coordinate_2_indicator,omitempty"`
	Coordinate3Label     string `json:"coordinate_3_label,omitempty"`
	Coordinate3Indicator string `json:"coordinate_3_indicator,omitempty"`
	Temporary            string `json:"temporary,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	RecordURIs []*Location `json:"record_uris,omitempty"`
}

LocationBatchUpdate JSONModel(:location_batch_update)

type MergeRequest

type MergeRequest struct {
	URI     string                 `json:"uri,omitempty"`
	Target  map[string]interface{} `json:"target,omitempty"`
	Victims map[string]interface{} `json:"victims,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

MergeRequest JSONModel(:merge_request)

type NameCorporateEntity

type NameCorporateEntity struct {
	AuthorityID          string  `json:"authority_id,omitempty"`
	Dates                string  `json:"dates,omitempty"`
	UseDates             []*Date `json:"use_dates,omitempty"`
	Qualifier            string  `json:"qualifier,omitempty"`
	Source               string  `json:"source,omitempty"`
	Rules                string  `json:"rules,omitempty"`
	Authorized           bool    `json:"authorized,omitempty"`
	IsDisplayName        bool    `json:"is_display_name,omitempty"`
	SortName             string  `json:"sort_name,omitempty"`
	SortNameAutoGenerate bool    `json:"sort_name_auto_generate,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	PrimaryName      string `json:"primary_name,omitempty"`
	SubordinateName1 string `json:"subordinate_name_1,omitempty"`
	SubordinateName2 string `json:"subordinate_name_2,omitempty"`
	Number           string `json:"number,omitempty"`
}

NameCorporateEntity JSONModel(:name_corporate_entity)

type NameFamily

type NameFamily struct {
	AuthorityID          string  `json:"authority_id,omitempty"`
	Dates                string  `json:"dates,omitempty"`
	UseDates             []*Date `json:"use_dates,omitempty"`
	Qualifier            string  `json:"qualifier,omitempty"`
	Source               string  `json:"source,omitempty"`
	Rules                string  `json:"rules,omitempty"`
	Authorized           bool    `json:"authorized,omitempty"`
	IsDisplayName        bool    `json:"is_display_name,omitempty"`
	SortName             string  `json:"sort_name,omitempty"`
	SortNameAutoGenerate bool    `json:"sort_name_auto_generate,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	FamilyName string `json:"family_name,omitempty"`
	Prefix     string `json:"prefix,omitempty"`
}

NameFamily JSONModel(:name_family)

type NameForm

type NameForm struct {
	URI      string `json:"uri,omitempty"`
	Kind     string `json:"kind,omitempty"`
	SortName string `json:"sort_name,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

NameForm JSONModel(:name_form)

type NamePerson

type NamePerson struct {
	AuthorityID          string  `json:"authority_id,omitempty"`
	Dates                string  `json:"dates,omitempty"`
	UseDates             []*Date `json:"use_dates,omitempty"`
	Qualifier            string  `json:"qualifier,omitempty"`
	Source               string  `json:"source,omitempty"`
	Rules                string  `json:"rules,omitempty"`
	Authorized           bool    `json:"authorized,omitempty"`
	IsDisplayName        bool    `json:"is_display_name,omitempty"`
	SortName             string  `json:"sort_name,omitempty"`
	SortNameAutoGenerate bool    `json:"sort_name_auto_generate,omitempty"` //NOTE: default should be true

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	PrimaryName string `json:"primary_name,omitempty"`
	Title       string `json:"title,omitempty"`
	NameOrder   string `json:"name_order,omitempty"`
	Prefix      string `json:"prefix,omitempty"`
	RestOfName  string `json:"rest_of_name,omitempty"`
	Suffix      string `json:"suffix,omitempty"`
	FullerForm  string `json:"fuller_form,omitempty"`
	Number      string `json:"number,omitempty"`
}

NamePerson JSONModel(:name_person)

type NameSoftware

type NameSoftware struct {
	AuthorityID          string  `json:"authority_id,omitempty"`
	Dates                string  `json:"dates,omitempty"`
	UseDates             []*Date `json:"use_dates,omitempty"`
	Qualifier            string  `json:"qualifier,omitempty"`
	Source               string  `json:"source,omitempty"`
	Rules                string  `json:"rules,omitempty"`
	Authorized           bool    `json:"authorized,omitempty"`
	IsDisplayName        bool    `json:"is_display_name,omitempty"`
	SortName             string  `json:"sort_name,omitempty"`
	SortNameAutoGenerate bool    `json:"sort_name_auto_generate,omitempty"` //NOTE: default should be true

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	SoftwareName string `json:"software_name,omitempty"`
	Version      string `json:"version,omitempty"`
	Manufacturer string `json:"manufacturer,omitempty"`
}

NameSoftware JSONModel(:name_software)

type NavElementView struct {
	ThisLabel string `json:"this_label"`
	ThisURI   string `json:"this_uri"`
	PrevURI   string `json:"prev_uri"`
	PrevLabel string `json:"prev_label"`
	NextURI   string `json:"next_uri"`
	NextLabel string `json:"next_label"`
	Weight    int    `json:"weight"`
}

NavElementView defined previous, next links used in paging results or browsable record lists

func (nav *NavElementView) String() string

String() implementations

type NavView []*NavElementView

NavView is an array of NavelementViews

type NormalizedAccessionView

type NormalizedAccessionView struct {
	ID                     string                         `json:"id"`
	URI                    string                         `json:"uri"`
	Title                  string                         `json:"title"`
	Identifier             string                         `json:"identifier"`
	ResourceType           string                         `json:"resource_type"`
	ContentDescription     string                         `json:"content_description"`
	ConditionDescription   string                         `json:"condition_description,omitempty"`
	AccessRestrictions     bool                           `json:"access_restrictions"`
	AccessRestrictionsNote string                         `json:"access_restrictions_notes"`
	UseRestrictions        bool                           `json:"use_restrictions"`
	UseRestrictionsNote    string                         `json:"use_restrictions_notes"`
	Dates                  []*Date                        `json:"dates"`
	DateExpression         string                         `json:"date_expression"`
	Subjects               []string                       `json:"subjects,omitempty"`
	SubjectsFunction       []string                       `json:"subjects_function,omitempty"`
	SubjectsTopical        []string                       `json:"subjects_topical,omitempty"`
	Extents                []string                       `json:"extents"`
	RelatedResources       []string                       `json:"related_resources,omitempty"`
	RelatedAccessions      []string                       `json:"related_accessions,omitempty"`
	DigitalObjects         []*NormalizedDigitalObjectView `json:"digital_objects,omitempty"`
	Deaccessions           string                         `json:"deaccessions,omitempty"`
	LinkedAgentsCreators   []string                       `json:"linked_agents_creators"`
	LinkedAgentsSubjects   []string                       `json:"linked_agents_subjects"`
	LinkedAgentsSources    []string                       `json:"linked_agents_sources,omitempty"`
	AccessionDate          string                         `json:"accession_date"`
	CreatedBy              string                         `json:"created_by"`
	Created                string                         `json:"created"`
	LastModifiedBy         string                         `json:"last_modified_by"`
	LastModified           string                         `json:"last_modified"`
}

NormalizedAccessionView returns a structure suitable for templating public web content.

type NormalizedDigitalObjectView

type NormalizedDigitalObjectView struct {
	URI               string   `json:"uri"`
	Title             string   `json:"title"`
	DigitalObjectType string   `json:"digital_object_type"`
	Publish           bool     `json:"publish"`
	FileURIs          []string `json:"file_uris"`
}

NormalizedDigitalObjectView returns a structure suitable for templating public web content.

type NoteAbstract

type NoteAbstract struct {
	Label         string `json:"label,omitempty"`
	Publish       bool   `json:"publish"`
	PersistentID  string `json:"persistent_id,omitempty"`
	IngestProblem string `json:"ingest_problem,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	Content []string `json:"content,omitempty"`
}

NoteAbstract JSONModel(:note_abstract)

type NoteBibliography

type NoteBibliography struct {
	Label         string `json:"label,omitempty"`
	Publish       bool   `json:"publish"`
	PersistentID  string `json:"persistent_id,omitempty"`
	IngestProblem string `json:"ingest_problem,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	Content []string `json:"content,omitempty"`
	Type    string   `json:"type,omitempty"`
	Items   []string `json:"items,omitempty"`
}

NoteBibliography JSONModel(:note_bibliography)

type NoteBiogHist

type NoteBiogHist struct {
	Label         string `json:"label,omitempty"`
	Publish       bool   `json:"publish"`
	PersistentID  string `json:"persistent_id,omitempty"`
	IngestProblem string `json:"ingest_problem,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	SubNotes []*NoteText `json:"subnotes"`
}

NoteBiogHist JSONModel(:note_bioghist)

type NoteChronology

type NoteChronology struct {
	Title   string   `json:"title,omitempty"`
	Publish bool     `json:"publish"`
	Items   []string `json:"items,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

NoteChronology JSONModel(:note_chronology)

type NoteCitation

type NoteCitation struct {
	Label         string `json:"label,omitempty"`
	Publish       bool   `json:"publish"`
	PersistentID  string `json:"persistent_id,omitempty"`
	IngestProblem string `json:"ingest_problem,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	Content []string               `json:"content,omitempty"`
	XLink   map[string]interface{} `json:"xlink,omitempty"`
}

NoteCitation JSONModel(:note_citation)

type NoteDefinedlist

type NoteDefinedlist struct {
	Title   string   `json:"title,omitempty"`
	Publish bool     `json:"publish"`
	Items   []string `json:"items,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

NoteDefinedlist JSONModel(:note_definedlist)

type NoteDigitalObject

type NoteDigitalObject struct {
	Label         string `json:"label,omitempty"`
	Publish       bool   `json:"publish"`
	PersistentID  string `json:"persistent_id,omitempty"`
	IngestProblem string `json:"ingest_problem,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	Content []string `json:"content,omitempty"`
	Type    string   `json:"type,omitempty"`
}

NoteDigitalObject JSONModel(:note_digital_object)

type NoteIndex

type NoteIndex struct {
	Label         string `json:"label,omitempty"`
	Publish       bool   `json:"publish"`
	PersistentID  string `json:"persistent_id,omitempty"`
	IngestProblem string `json:"ingest_problem,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	Content []string               `json:"content,omitempty"`
	Type    string                 `json:"type,omitempty"`
	Items   map[string]interface{} `json:"items,omitempty"`
}

NoteIndex JSONModel(:note_index)

type NoteIndexItem

type NoteIndexItem struct {
	Value         string                 `json:"value,omitempty"`
	Type          string                 `json:"type,omitempty"`
	Reference     string                 `json:"reference,omitempty"`
	ReferenceText string                 `json:"reference_text,omitempty"`
	ReferenceRef  map[string]interface{} `json:"reference_ref,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

NoteIndexItem JSONModel(:note_index_item)

type NoteMultipart

type NoteMultipart struct {
	Label         string `json:"label,omitempty"`
	Publish       bool   `json:"publish"`
	PersistentID  string `json:"persistent_id,omitempty"`
	IngestProblem string `json:"ingest_problem,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	Type              string             `json:"type,omitempty"`
	RightsRestriction *RightsRestriction `json:"rights_restriction,omitempty"`
	Subnotes          map[string]interface{}
}

NoteMultipart JSONModel(:note_multipart)

type NoteOrderedlist

type NoteOrderedlist struct {
	Title       string   `json:"title,omitempty"`
	Publish     bool     `json:"publish"`
	Enumeration string   `json:"enumeration,omitempty"`
	Items       []string `json:"items,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

NoteOrderedlist JSONModel(:note_orderedlist)

type NoteOutline

type NoteOutline struct {
	Publish bool                `json:"publish"`
	Levels  []*NoteOutlineLevel `json:"levels,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

NoteOutline JSONModel(:note_outline)

type NoteOutlineLevel

type NoteOutlineLevel struct {
	Items map[string]interface{} `json:"items,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

NoteOutlineLevel JSONModel(:note_outline_level)

type NoteSinglepart

type NoteSinglepart struct {
	Label         string `json:"label,omitempty"`
	Publish       bool   `json:"publish"`
	PersistentID  string `json:"persistent_id,omitempty"`
	IngestProblem string `json:"ingest_problem,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	Content []string `json:"content,omitempty"`
	Type    string   `json:"type,omitempty"`
}

NoteSinglepart JSONModel(:note_singlepart)

type NoteText

type NoteText struct {
	Content string `json:"content,omitempty"`
	Publish bool   `json:"publish"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

NoteText JSONModel(:note_text)

func (*NoteText) String

func (cait *NoteText) String() string

String convert NoteText struct as a JSON formatted string

type Object

type Object map[string]interface{}

Object JSONModel(:object)

type PageView

type PageView struct {
	Nav     NavView
	Content []interface{}
}

PageView is a simple container for rendering pages

type Permission

type Permission struct {
	URI            string `json:"uri,omitempty"`
	PermissionCode string `json:"permission_code,omitempty"`
	Description    string `json:"description,omitempty"`
	Level          string `json:"level,omitempty"` // enum string repository global

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

Permission JSONModel(:permission)

type Preference

type Preference struct {
	URI      string    `json:"uri,omitempty"`
	UserID   int       `json:"user_id,omitempty"`
	Defaults *Defaults `json:"defaults,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

Preference JSONModel(:preference)

type PrintToPDFJob

type PrintToPDFJob struct {
	Source string `json:"source,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

PrintToPDFJob JSONModel(:print_to_pdf_job)

type RdeTemplate

type RdeTemplate struct {
	URI        string                 `json:"uri,omitempty"`
	Name       string                 `json:"name,omitempty"`
	RecordType string                 `json:"record_type,omitempty"` // enum string archival_object digital_object_component
	Order      []string               `json:"order,omitempty"`
	Visible    []string               `json:"visible,omitempty"`
	Defaults   map[string]interface{} `json:"defaults,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

RdeTemplate JSONModel(:rde_template)

type RecordTree

type RecordTree struct {
	URI         string `json:"uri,omitempty"`
	ID          int    `json:"id,omitempty"`
	RecordURI   string `json:"record_uri,omitempty"`
	Title       string `json:"title,omitempty"`
	Suppressed  bool   `json:"suppressed,omitempty"`
	Publish     bool   `json:"publish,omitempty"`
	HasChildren bool   `json:"has_children,omitempty"`
	NodeType    string `json:"node_type,omitempty"`

	LockVersion    json.Number `json:"lock_version,Number"`
	JSONModelType  string      `json:"jsonmodel_type,omitempty"`
	CreatedBy      string      `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string      `json:"last_modified_by,omitempty"`
	UserMTime      string      `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string      `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string      `json:"create_time,omitempty,omitempty"`
}

RecordTree JSONModel(:record_tree)

type ReportJob

type ReportJob struct {
	ReportType string `json:"report_type,omitempty"`
	Format     string `json:"format,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

ReportJob JSONModel(:report_job)

type Repository

type Repository struct {
	ID int `json:"id,omitempty"`

	URI                   string                 `json:"uri,omitempty"`
	RepoCode              string                 `json:"repo_code"`
	Name                  string                 `json:"name"`
	OrgCode               string                 `json:"org_code,omitempty"`
	Country               string                 `json:"country,omitempty"`
	ParentInstitutionName string                 `json:"parent_institution_name,omitempty"`
	URL                   string                 `json:"url,omitempty"`
	ImageURL              string                 `json:"image_url,omitempty"`
	ContactPersons        string                 `json:"contact_persons,omitempty"`
	AgentRepresentation   map[string]interface{} `json:"agent_representation,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

Repository represents an ArchivesSpace repository from the client point of view

func (*Repository) String

func (repository *Repository) String() string

String return a Repository as a JSON formatted string

type RepositoryWithAgent

type RepositoryWithAgent struct {
	URI                 string                 `json:"uri,omitempty"`
	Repository          map[string]interface{} `json:"repository,omitempty"`
	AgentRepresentation *AgentCorporateEntity  `json:"agent_representation,omitempty"`

	LockVersion    json.Number `json:"lock_version,Number"`
	JSONModelType  string      `json:"jsonmodel_type,omitempty"`
	CreatedBy      string      `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string      `json:"last_modified_by,omitempty"`
	UserMTime      string      `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string      `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string      `json:"create_time,omitempty,omitempty"`
}

RepositoryWithAgent JSONModel(:repository_with_agent)

type Resource

type Resource struct {
	ID                int                      `json:"id,omitempty"`
	XMLName           xml.Name                 `json:"-"`
	URI               string                   `json:"uri,omitempty"`
	ExternalIDs       []*ExternalID            `json:"external_ids,omitempty"`
	Title             string                   `json:"title,omitempty"`
	Language          string                   `json:"language,omitempty"`
	Publish           bool                     `json:"publish,omitempty"`
	Subjects          []map[string]interface{} `json:"subjects,omitempty"`
	LinkedEvents      []map[string]interface{} `json:"linked_events,omitempty"`
	Extents           []*Extent                `json:"extents,omitempty"`
	Dates             []*Date                  `json:"dates,omitempty"`
	ExternalDocuments []map[string]interface{} `json:"external_documents,omitempty"`

	//	RightsStatements  []*RightsStatement       `json:"rights_statement"`
	RightsStatements []interface{} `json:"rights_statements,omitempty"`
	LinkedAgents     []*Agent      `json:"linked_agents,ommitempty"`
	Suppressed       bool          `json:"suppressed,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty"`
	CreateTime     string            `json:"create_time,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	ID0          string                 `json:"id_0,omitempty"`
	ID1          string                 `json:"id_1,omitempty"`
	ID2          string                 `json:"id_2,omitempty"`
	ID3          string                 `json:"id_3,omitempty"`
	Level        string                 `json:"level,omitempty"`
	OtherLevel   string                 `json:"other_level,omitempty"`
	ResourceType string                 `json:"resource_type,omitempty"`
	Tree         map[string]interface{} `json:"tree,omitempty"`

	Restrictions                bool                     `json:"restrictioons,omitempty"`
	RepositoryProcessingNote    string                   `json:"repository_processing_note,omitempty"`
	EADID                       string                   `xml:"control>recordid" json:"ead_id,omitempty"`
	EADLocation                 string                   `xml:"control>location" json:"ead_location,omitempty"`
	FindingAidTitle             string                   `xml:"control>filedesc>titlestmt>titleproper" json:"finding_aid_title,omitempty"`
	FindingAidSubtitle          string                   `xml:"control>filedesc>titlestmt>subtitle" json:"finding_aid_subtitle,omitempty"`
	FindingAidFileTitle         string                   `xml:"control>filedesc>titlestmt>filing_title" json:"find_aid_filing_title,omitempty"`
	FindingAidDate              string                   `json:"finding_aid_date,omitempty"`
	FindingAidAuthor            string                   `xml:"control>filedesc>titlestmt>author" json:"finding_aid_author,omitempty"`
	FindingAidDescriptionRultes string                   `json:"finding_aid_decription_rules,omitempty"`
	FindingAidLanguage          string                   `json:"finding_aid_language,omitempty"`
	FindingAidSponsor           string                   `xml:"control>filedesc>titlestmt>sponsor" json:"finding_aid_sponsor,omitempty"`
	FindingAidEditionStatement  string                   `json:"finding_aid_edition_statement,omitempty"`
	FindingAidSeriesStatement   string                   `json:"finding_aid_series_statement,omitempty"`
	FindingAidStatus            string                   `json:"finging_aid_status,omitempty"`
	FindingAidNote              string                   `json:"finding_aid_note,omitempty"`
	RevisionStatements          []*RevisionStatement     `json:"revision_statements,omitempty"`
	Instances                   []*Instance              `json:"instances,omitempty"`
	Deaccessions                []*Deaccession           `json:"deaccession,omitempty"`
	CollectionManagement        *CollectionManagement    `json:"collection_management,omitempty"`
	UserDefined                 *UserDefined             `json:"user_defined,omitempty"`
	ReleatedAccessions          []map[string]interface{} `json:"related_accessions,omitempty"`
	Classifications             []map[string]interface{} `json:"classifications,omitempty"`
	Notes                       []map[string]interface{} `json:"notes,omitempty"`
}

Resource JSONModel(:resource)

type ResourceTree

type ResourceTree struct {
	URI         string `json:"uri,omitempty"`
	ID          int    `json:"id,omitempty"`
	RecordURI   string `json:"record_uri,omitempty"`
	Title       string `json:"title,omitempty"`
	Suppressed  bool   `json:"suppressed"`
	Publish     bool   `json:"publish"`
	HasChildren bool   `json:"has_children,omitempty"`
	NodeType    string `json:"node_type,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`

	FindingAidFilingTitle string                 `json:"finding_aid_filing_title,omitempty"`
	Level                 string                 `json:"level,omitempty"`
	InstanceTypes         []string               `json:"instance_types,omitempty"`
	Containers            map[string]interface{} `json:"containers,omitempty"`
	Children              []*ResourceTree        `json:"children,omitempty"`
}

ResourceTree JSONModel(:resource_tree)

type ResponseMsg

type ResponseMsg struct {
	Status      string      `json:"status,omitempty"`
	ID          int         `json:"id,omitempty"`
	LockVersion json.Number `json:"lock_version,Number"`
	Stale       interface{} `json:"stale,omitempty"`
	URI         string      `json:"uri,omitempty"`
	Warnings    []string    `json:"warnings,omitempty"`
	Error       interface{} `json:"error,omitempty"`
}

ResponseMsg is a structure to hold the JSON portion of a response from the ArchivesSpaceAPI

func (*ResponseMsg) String

func (responseMsg *ResponseMsg) String() string

String return a ResponseMsg

type RevisionStatement

type RevisionStatement struct {
	URI         string `json:"uri,omitempty"`
	Date        string `json:"date,omitempty"`
	Description string `json:"description,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

RevisionStatement JSONModel(:revision_statement)

type RightsRestriction

type RightsRestriction struct {
	Begin                      string                 `json:"begin,omitempty"`
	End                        string                 `json:"end,omitempty"`
	LocalAccessRestrictionType []string               `json:"local_access_restriction_type,omitempty"`
	LinkedRecords              map[string]interface{} `json:"linked_records,omitempty"`
	RestrictionNoteType        string                 `json:"restriction_note_type,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

RightsRestriction JSONModel(:rights_restriction)

type RightsStatement

type RightsStatement struct {
	RightsType             string                   `json:"rights_type,omitempty"`
	Identifier             string                   `json:"identifier,omitempty"`
	Active                 bool                     `json:"active,omitempty"`
	Materials              string                   `json:"materials,omitempty"`
	IPStatus               string                   `json:"ip_status,omitempty"`
	IPExpirationDate       *Date                    `json:"ip_expieration_date,omitempty"`
	LicenseIdentifierTerms string                   `json:"license_identifier_terms,omitempty"`
	StatuteCitation        string                   `json:"statute_citation,omitempty"`
	Jurisdiction           string                   `json:"jurisdiction,omitempty"`
	TypeNote               string                   `json:"type_note,omitempty"`
	Permissions            string                   `json:"permissions,omitempty"`
	Restrictions           string                   `json:"restrictions"`
	RestrictionStartDate   *Date                    `json:"restrictions_start_date,omitempty"`
	RestrictionEndDate     *Date                    `json:"restriction_end_date,omitempty"`
	GrantedNote            string                   `json:"granted_note,omitempty"`
	ExternalDocuments      []map[string]interface{} `json:"external_documents"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

RightsStatement JSONModel(:rights_statement)

type SearchQuery

type SearchQuery struct {
	// Bleve specific properties
	Explain    bool              `json:"explain"`
	FilterTerm map[string]string `json:"filter_term,omitempty"`
	Type       string            `json:"type,omitempty"`

	// Unified search form properties, works for both Basic and Advanced search
	Method string `json:"method"`
	Action string `json:"action"`
	AllIDs bool   `json:"all_ids"`
	Size   int    `json:"size"`
	From   int    `json:"from"`

	// Simple Search
	Q string `json:"q"`
	// Advanced Search
	QRequired string `json:"q_required"`
	QExact    string `json:"q_exact"`
	QExcluded string `json:"q_excluded"`

	// Subjects can be a comma delimited list of subjects (e.g. Manuscript Collection, Image Archive)
	Subjects string `json:"q_subjects"`

	// These fields are where we carry search results and request for nav usage
	Total           int    `json:"total"`
	DetailsBaseURI  string `json:"details_base_uri"`
	QueryURLEncoded string
	DetailedResult  NormalizedAccessionView
	Request         *bleve.SearchRequest
	Results         *bleve.SearchResult
}

SearchQuery represents the query options supported by search

func (*SearchQuery) AttachSearchResults

func (sq *SearchQuery) AttachSearchResults(sr *bleve.SearchResult)

AttachSearchResults sets the value os the SearchResults field in SearchQuery structs.

func (*SearchQuery) String

func (sq *SearchQuery) String() string

String return a SearchQuery

type SubContainer

type SubContainer struct {
	TopContainer  map[string]interface{} `json:"top_container,omitempty"`
	Type2         string                 `json:"type_2,omitempty"`
	Indicator2    string                 `json:"indicator_2,omitempty"`
	Type3         string                 `json:"type_3,omitempty"`
	Indicator3    string                 `json:"indicator_3,omitempty"`
	DisplayString string                 `json:"display_string,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

SubContainer JSONModel(:sub_container)

type Subject

type Subject struct {
	ID          int           `json:"id,omitempty"`
	URI         string        `json:"uri,omitempty"`
	Title       string        `json:"title,omitempty"`
	ExternalIDs []*ExternalID `json:"external_ids"`

	IsLinkedToPublishedRecord bool                     `json:"is_linked_to_published_record,omitempty"`
	Publish                   bool                     `json:"publish"`
	Source                    string                   `json:"source,omitempty"`
	ScopeNote                 string                   `json:"scope_note,omitempty"`
	Terms                     []map[string]interface{} `json:"terms,omitempty"` // uri_or_object
	Vocabulary                string                   `json:"vocabulary,omitempty"`
	AuthorityID               string                   `json:"authority_id,omitempty"`
	ExternalDocuments         []map[string]interface{} `json:"external_documents"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

Subject JSONModel(:subject)

func (*Subject) String

func (subject *Subject) String() string

String return a Subject

type Telephone

type Telephone struct {
	URI        string `json:"uri,omitempty"`
	Number     string `json:"number,omitempty"`
	Ext        string `json:"ext,omitempty"`
	NumberType string `json:"number_type"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

Telephone JSONModel(:telephone)

type Term

type Term struct {
	ID         int    `json:"id,omitempty"`
	URI        string `json:"uri,omitempty"`
	Term       string `json:"term,omitempty"`
	TermType   string `json:"term_type,omitempty"`
	Vocabulary string `json:"vocabulary,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

Term JSONModel(:term)

func (*Term) String

func (term *Term) String() string

String return a Term

type TopContainer

type TopContainer struct {
	URI                string                 `json:"uri,omitempty"`
	Indicator          string                 `json:"indicator,omitempty"`
	Type               string                 `json:"type,omitempty"`
	Barcode            string                 `json:"barcode,omitempty"`
	DisplayString      string                 `json:"display_string,omitempty"`
	LongDisplayString  string                 `json:"long_display_string,omitempty"`
	ILSHoldingID       string                 `json:"ils_holding_id,omitempty"`
	ILSItemID          string                 `json:"ils_item_id,omitempty"`
	ExportedToILS      string                 `json:"exported_to_ils,omitempty"`
	Restricted         bool                   `json:"restricted,omitempty"`
	ActiveRestrictions map[string]interface{} `json:"active_restrictions,omitempty"`
	ContainerLocations map[string]interface{} `json:"container_locations,omitempty"`
	ContainerProfile   map[string]interface{} `json:"container_profile,omitempty"`
	Series             map[string]interface{} `json:"series,omitempty"`
	Collection         map[string]interface{} `json:"collection,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

TopContainer JSONModel(:top_container)

type User

type User struct {
	URI          string                 `json:"uri,omitempty"`
	Username     string                 `json:"username,omitempty"`
	Name         string                 `json:"name,omitempty"`
	IsSystemUser bool                   `json:"is_system_user,omitempty"`
	Permissions  map[string]string      `json:"permissions,omitempty"`
	Groups       map[string]interface{} `json:"groups,omitempty"`
	EMail        string                 `json:"email,omitempty"`
	FirstName    string                 `json:"first_name,omitempty"`
	LastName     string                 `json:"last_name,omitempty"`
	Telephone    string                 `json:"telephone,omitempty"`
	Title        string                 `json:"title,omitempty"`
	Department   string                 `json:"department,omitempty"`
	AgentRecord  map[string]interface{} `json:"agent_record,omitempty"`
	IsAdmin      bool                   `json:"is_admin,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

User is a JSONModel used to administer ArchivesSpace

type UserDefined

type UserDefined struct {
	Boolean1 bool   `json:"boolean_1,omitempty"`
	Boolean2 bool   `json:"boolean_2,omitempty"`
	Boolean3 bool   `json:"boolean_3,omitempty"`
	Integer1 string `json:"integer_1,omitempty"`
	Integer2 string `json:"integer_2,omitempty"`
	Integer3 string `json:"integer_3,omitempty"`
	Real1    string `json:"real_1,omitempty"`
	Real2    string `json:"real_2,omitempty"`
	Real3    string `json:"real_3,omitempty"`
	String1  string `json:"string_1,omitempty"`
	String2  string `json:"string_2,omitempty"`
	String3  string `json:"string_3,omitempty"`
	String4  string `json:"string_4,omitempty"`
	Text1    string `json:"text_1,omitempty"`
	Text2    string `json:"text_2,omitempty"`
	Text3    string `json:"text_3,omitempty"`
	Text4    string `json:"text_4,omitempty"`
	Text5    string `json:"text_5,omitempty"`
	Date1    *Date  `json:"date_1,omitempty"`
	Date2    *Date  `json:"date_2,omitempty"`
	Date3    *Date  `json:"date_3,omitempty"`
	Enum1    string `json:"enum_1,omitempty"`
	Enum2    string `json:"enum_2,omitempty"`
	Enum3    string `json:"enum_3,omitempty"`
	Enum4    string `json:"enum_4,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

UserDefined JSONModel(:user_defined)

func (*UserDefined) String

func (userDefined *UserDefined) String() string

String return a UserDefined

type Vocabulary

type Vocabulary struct {
	ID    int                      `json:"id,omitempty"`
	URI   string                   `json:"uri,omitempty"`
	RefID string                   `json:"ref_id,omitempty"`
	Name  string                   `json:"name,omitempty"`
	Terms []map[string]interface{} `json:"terms,omitempty"`

	LockVersion    json.Number       `json:"lock_version,Number"`
	JSONModelType  string            `json:"jsonmodel_type,omitempty"`
	CreatedBy      string            `json:"created_by,omitempty,omitempty"`
	LastModifiedBy string            `json:"last_modified_by,omitempty"`
	UserMTime      string            `json:"user_mtime,omitempty,omitempty"`
	SystemMTime    string            `json:"system_mtime,omitempty,omitempty"`
	CreateTime     string            `json:"create_time,omitempty,omitempty"`
	Repository     map[string]string `json:"repository,omitempty"`
}

Vocabulary JSONModel(:vocabulary)

func (*Vocabulary) String

func (vocabulary *Vocabulary) String() string

String return a Vocabulary

Directories

Path Synopsis
cmds
cait
cmds/cait/cait.go - A command line utility using the cait package to work with ArchivesSpace's REST API.
cmds/cait/cait.go - A command line utility using the cait package to work with ArchivesSpace's REST API.
cait-genpages
cmds/genpages/genpages.go - A command line utility that builds pages from the exported results of cait.go @author R. S. Doiel, <rsdoiel@caltech.edu> Copyright (c) 2017, Caltech All rights not granted herein are expressly reserved by Caltech.
cmds/genpages/genpages.go - A command line utility that builds pages from the exported results of cait.go @author R. S. Doiel, <rsdoiel@caltech.edu> Copyright (c) 2017, Caltech All rights not granted herein are expressly reserved by Caltech.
cait-indexpages
cmds/indexpages/indexpages.go - Create/update a bleve index the htdocs contents generated with the genpages utility.
cmds/indexpages/indexpages.go - Create/update a bleve index the htdocs contents generated with the genpages utility.
cait-servepages
This is a static file web server and search service.
This is a static file web server and search service.
cait-sitemapper
sitemapper generates a sitemap.xml file by crawling the content generate with genpages @author R. S. Doiel, <rsdoiel@caltech.edu> Copyright (c) 2017, Caltech All rights not granted herein are expressly reserved by Caltech.
sitemapper generates a sitemap.xml file by crawling the content generate with genpages @author R. S. Doiel, <rsdoiel@caltech.edu> Copyright (c) 2017, Caltech All rights not granted herein are expressly reserved by Caltech.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL