iws

package
v0.0.0-...-c407d37 Latest Latest
Warning

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

Go to latest
Published: Apr 12, 2024 License: MIT Imports: 16 Imported by: 3

Documentation

Index

Constants

View Source
const SSN = "666839559"

SSN is a test SSN value

Variables

This section is empty.

Functions

This section is empty.

Types

type AdrRecord

type AdrRecord struct {
	// The identifier that is used to represent the person within a Department of Defense Electronic Data Interchange. Externally the EDI-PI is referred to as the DoD ID, or the DoD ID Number.
 XML Tag - dodEdiPersonId
	Edipi *uint64 `xml:"DOD_EDI_PN_ID,omitempty"` // <xsd:element minOccurs="0" name="DOD_EDI_PN_ID" type="tns:DOD_EDI_PN_ID"/>
	// The identifier that is used to represent cross-reference between a person's Department of Defense Electronic Data Interchange identifiers. If the code is invalidated, this is the new DoD EDI PN ID to use instead of the current one. This ID will be zero unless the INVL_DEPI_NTFCN_CD is Y.
	EdipiXRef *uint64 `xml:"DOD_EDI_PN_XR_ID,omitempty"` // <xsd:element minOccurs="0" name="DOD_EDI_PN_XR_ID" type="tns:DOD_EDI_PN_XR_ID"/>
	// The date the customer ended their association with ADR/ADW. - Date format is YYYYMMDD
	CstrAscEndDt string `xml:"CSTR_ASC_END_DT,omitempty"` // <xsd:element minOccurs="0" name="CSTR_ASC_END_DT" type="tns:CSTR_ASC_END_DT"/>
	// The code that represents the reason that the customer's association with ADR/ADW ended or is expected to end (see PN_LOSS_RSN_CD).
	CstrAscErsnCd *CustomerAssocEndReasonCode `xml:"CSTR_ASC_ERSN_CD,omitempty"` // <xsd:element minOccurs="0" name="CSTR_ASC_ERSN_CD" type="tns:CSTR_ASC_ERSN_CD"/>
	PidsRecord    *PidsRecord                 `xml:"PIDSRecord,omitempty"`       // <xsd:element minOccurs="0" name="PIDSRecord" type="tns:PIDSRecord"/>
	TidsRecord    *TidsRecord                 `xml:"TIDSRecord,omitempty"`       // <xsd:element minOccurs="0" name="TIDSRecord" type="tns:TIDSRecord"/>
	ExtsRecord    *ExtsRecord                 `xml:"EXTSRecord,omitempty"`       // <xsd:element minOccurs="0" name="EXTSRecord" type="tns:EXTSRecord"/>
	OldEdipis     []uint64                    `xml:"identifierHistory>OLD_DOD_EDI_PN_ID,omitempty"`
	WorkEmail     *WkEmaRecord                `xml:"WKEMARecord,omitempty"`
	Person        *Person                     `xml:"person,omitempty"`
	Personnel     []Personnel                 `xml:"personnel,omitempty"`
}

AdrRecord is the container tag for the majority of the response data from DMDC's Identity Web Services: Real-time Broker Service REST API

type CustomerAssocEndReasonCode

type CustomerAssocEndReasonCode string

CustomerAssocEndReasonCode represents the reason that the customer's association with ADR/ADW ended or is expected to end (see PN_LOSS_RSN_CD).

const (
	// CustomerAssocEndReasonCodeNotInPopulation means that the provided ID is associated with a person who is not in the population supported by this integration
	CustomerAssocEndReasonCodeNotInPopulation CustomerAssocEndReasonCode = "N"
	// CustomerAssocEndReasonCodeSeparated means that the provided ID is associated with a person who has separated
	CustomerAssocEndReasonCodeSeparated CustomerAssocEndReasonCode = "S"
	// CustomerAssocEndReasonCodeIneligible means that the provided ID is associated with a person who is not eligible
	CustomerAssocEndReasonCodeIneligible CustomerAssocEndReasonCode = "W"
	// CustomerAssocEndReasonCodeNoLongerMatches means that the search no longer matches customer criteria.
	CustomerAssocEndReasonCodeNoLongerMatches CustomerAssocEndReasonCode = "Y"
)

type ExtsRecord

type ExtsRecord struct {
	// SydPnID is the identifier used to identify an individual within a system outside of DMDC.
	SydPnID string `xml:"SYS_PN_ID"`
	// SysPnXRef is the identifier that is used to represent cross-reference between a person's System Person Identifiers. If this field is present, this is the newest System Person Identifier to be applied as the SYS_PN_ID.
	SysPnXRef string `xml:"SYS_PN_XR_ID"`
	// SysPnIDTypeCode represents a specific kind of person identifier.
	SysPnIDTypCd SysPnIDTypeCode `xml:"SYS_PN_ID_TYP_CD"`
	Edipi        uint64          `xml:"DOD_EDI_PN_ID"`
}

ExtsRecord contains information used to identify an individual within a system outside of DMDC

type GetPersonUsingSSNParams

type GetPersonUsingSSNParams struct {
	Ssn       string
	LastName  string
	FirstName string
}

GetPersonUsingSSNParams contains person-specific query parameters for GetPidsUsingSSN

type Identifier

type Identifier struct {
	Edipi *uint64 `xml:"DOD_EDI_PN_ID,omitempty"`
	Pids  *Person `xml:"pids,omitempty"`
}

Identifier repeats back the terms used to query DMDC's Identity Web Services: Real-time Broker Service REST API

type MatchReasonCode

type MatchReasonCode string

MatchReasonCode indicates the reason a DOD_EDI_PN_ID could or could not be returned. Reason codes that start with "P" are returned for Person Inquiries (SRC_DS_CD=P). Reason codes that start with "D" are returned for Dependent Inquiries (SRC_DS_CD = D).

const (
	// MatchReasonCodeDAB means that more than one dependent matched the provided criteria, with sponsor identified by SPN_PN_ID and SPN_PN_ID_TYP_CD only
	MatchReasonCodeDAB MatchReasonCode = "DAB"
	// MatchReasonCodeDAC means that more than one dependent matched the provided criteria, with sponsor identified by SPN_PN_ID, SPN_PN_ID_TYP_CD and at least one additional criterion
	MatchReasonCodeDAC MatchReasonCode = "DAC"
	// MatchReasonCodeMultipleSponsors means that more than one SPN_PN_ID matched the provided criteria
	MatchReasonCodeMultipleSponsors MatchReasonCode = "DAS"
	// MatchReasonCodeDMB means that a dependent matched on at least one criterion, with sponsor identified by SPN_PN_ID and SPN_PN_ID_TYP_CD only
	MatchReasonCodeDMB MatchReasonCode = "DMB"
	// MatchReasonCodeDMC means that a dependent matched on at least one criterion, with sponsor identified by SPN_PN_ID, SPN_PN_ID_TYP_CD and at least one additional criterion
	MatchReasonCodeDMC MatchReasonCode = "DMC"
	// MatchReasonCodeDNB means that a sponsor was found using SPN_PN_ID and SPN_PN_ID_TYP_CD, but no dependents for this sponsor could be found that matched any of the provided criteria
	MatchReasonCodeDNB MatchReasonCode = "DNB"
	// MatchReasonCodeDNC means that a sponsor was found using SPN_PN_ID and SPN_PN_ID_TYP_CD and at least one additional criterion, but no dependents for this sponsor could be found that matched any of the provided criteria
	MatchReasonCodeDNC MatchReasonCode = "DNC"
	// MatchReasonCodeNoMatchingSponsor means that no sponsor matched the provided SPN_PN_ID and SPN_PN_ID_TYP_CD combination
	MatchReasonCodeNoMatchingSponsor MatchReasonCode = "DNS"
	// MatchReasonCodeMultiple means that more than one PN_ID matched the provided criteria
	MatchReasonCodeMultiple MatchReasonCode = "PAB"
	// MatchReasonCodeLimited means that the person matched on PN_ID and PN_ID_TYP_CD only
	MatchReasonCodeLimited MatchReasonCode = "PMB"
	// MatchReasonCodeFull means that the person matched on PN_ID, PN_ID_TYP_CD and at least one additional criterion
	MatchReasonCodeFull MatchReasonCode = "PMC"
	// MatchReasonCodeNone means that no person matched the provided PN_ID and PN_ID_TYP_CD combination
	MatchReasonCodeNone MatchReasonCode = "PNB"
)

type OrgAssocCategoryCode

type OrgAssocCategoryCode string

OrgAssocCategoryCode represents the category of the organization association.

const (
	// OrgAssocCategoryCodeCivil means Civilian Employee
	OrgAssocCategoryCodeCivil OrgAssocCategoryCode = "01"
	// OrgAssocCategoryCodeAppointee means Political Appointee/SES
	OrgAssocCategoryCodeAppointee OrgAssocCategoryCode = "02"
	// OrgAssocCategoryCodeUniformedService means Uniformed Service Member
	OrgAssocCategoryCodeUniformedService OrgAssocCategoryCode = "03"
	// OrgAssocCategoryCodeContractor means Contractor
	OrgAssocCategoryCodeContractor OrgAssocCategoryCode = "04"
	// OrgAssocCategoryCodeAffiliate means Affiliate (e.g., Foreign Military or National / Federal or Non-Federal Agency)
	OrgAssocCategoryCodeAffiliate OrgAssocCategoryCode = "05"
	// OrgAssocCategoryCodeBeneficiary means Beneficiary (e.g., Retiree, Family Member)
	OrgAssocCategoryCodeBeneficiary OrgAssocCategoryCode = "06"
)

type OrgCode

type OrgCode string

OrgCode represents the organization that "owns" the DEERS population to which the sponsor belongs.

const (
	// OrgCodeArmyAffiliate indicates an Army affiliate (used only for reporting, not on PNL)
	OrgCodeArmyAffiliate OrgCode = "01"
	// OrgCodeAirForceAffiliate indicates an Air Force affiliate (used only for reporting, not on PNL)
	OrgCodeAirForceAffiliate OrgCode = "02"
	// OrgCodeNavyAffiliate indicates a Navy affiliate (used only for reporting, not on PNL)
	OrgCodeNavyAffiliate OrgCode = "03"
	// OrgCodeMarineCorpsAffiliate indicates a Marine Corps affiliate (used only for reporting, not on PNL)
	OrgCodeMarineCorpsAffiliate OrgCode = "04"
	// OrgCodeCoastGuardAffiliate indicates a Coast Guard affiliate (used only for reporting, not on PNL)
	OrgCodeCoastGuardAffiliate OrgCode = "05"
	// OrgCodePublicHealthAffiliate indicates a Public Health affiliate (used only for reporting, not on PNL)
	OrgCodePublicHealthAffiliate OrgCode = "06"
	// OrgCodeNOAAAffiliate indicates a NOAA affiliate (used only for reporting, not on PNL)
	OrgCodeNOAAAffiliate OrgCode = "07"
	// OrgCodeArmyActive indicates Army MILPERCEN DEERS Population: Eligible Army Active Duty
	OrgCodeArmyActive OrgCode = "11"
	// OrgCodeAirForceActive indicates Air Force MILPERCEN DEERS Population: Eligible Air Force Active Duty
	OrgCodeAirForceActive OrgCode = "12"
	// OrgCodeNavyActive indicates Navy MILPERCEN DEERS Population: Eligible Navy Active Duty
	OrgCodeNavyActive OrgCode = "13"
	// OrgCodeMarineCorpsActive indicates Marine Corps MILPERCEN DEERS Population: Eligible Marine Corps Active Duty
	OrgCodeMarineCorpsActive OrgCode = "14"
	// OrgCodeCoastGuardActive indicates Coast Guard MILPERCEN DEERS Population: Eligible Coast Guard Active Duty
	OrgCodeCoastGuardActive OrgCode = "15"
	// OrgCodePublicHealthActive indicates Public Health PERCEN DEERS Population: Eligible Public Health Active
	OrgCodePublicHealthActive OrgCode = "16"
	// OrgCodeNOAAActive indicates NOAA PERCEN DEERS Population: Eligible NOAA Active
	OrgCodeNOAAActive OrgCode = "17"
	// OrgCodeArmyRetired indicates Army Retired Finance Center DEERS Population: Eligible Army Retired and Former Members
	OrgCodeArmyRetired OrgCode = "21"
	// OrgCodeAirForceRetired indicates Air Force Retired Finance Center DEERS Population: Eligible Air Force Retired and Former Members
	OrgCodeAirForceRetired OrgCode = "22"
	// OrgCodeNavyRetired indicates Navy Retired Finance Center DEERS Population: Eligible Navy Retired and Former Members
	OrgCodeNavyRetired OrgCode = "23"
	// OrgCodeMarineCorpsRetired indicates Marine Corps Finance Center DEERS Population: Eligible Marine Corps Retired and Former Members
	OrgCodeMarineCorpsRetired OrgCode = "24"
	// OrgCodeCoastGuardRetired indicates Coast Guard Retired Finance Center DEERS Population: Eligible Coast Guard Retired and Former Members
	OrgCodeCoastGuardRetired OrgCode = "25"
	// OrgCodePublicHealthRetired indicates Public Health Finance Center DEERS Population: Eligible Public Health Retired
	OrgCodePublicHealthRetired OrgCode = "26"
	// OrgCodeNOAARetired indicates NOAA Finance Center DEERS Population: Eligible NOAA Retired
	OrgCodeNOAARetired OrgCode = "27"
	// OrgCodeArmyCadet indicates Army Academy DEERS Population: Eligible Army Cadet
	OrgCodeArmyCadet OrgCode = "31"
	// OrgCodeAirForceCadet indicates Air Force Academy DEERS Population: Eligible Air Force Cadet
	OrgCodeAirForceCadet OrgCode = "32"
	// OrgCodeNavyCadet indicates Navy Academy DEERS Population: Eligible Navy Cadet and OCS
	OrgCodeNavyCadet OrgCode = "33"
	// OrgCodeCoastGuardCadet indicates Coast Guard Academy DEERS Population: Eligible Coast Guard Cadet
	OrgCodeCoastGuardCadet OrgCode = "35"
	// OrgCodeArmyReserve indicates Army Reserve DEERS Population: Eligible Army Reserve
	OrgCodeArmyReserve OrgCode = "41"
	// OrgCodeAirForceReserve indicates Air Force Reserve DEERS Population: Eligible Air Force Reserve
	OrgCodeAirForceReserve OrgCode = "42"
	// OrgCodeNavyReserve indicates Navy Reserve DEERS Population: Eligible Navy Reserve
	OrgCodeNavyReserve OrgCode = "43"
	// OrgCodeMarineCorpsReserve indicates Marine Corps Reserve DEERS Population: Eligible Marine Corps Reserve
	OrgCodeMarineCorpsReserve OrgCode = "44"
	// OrgCodeCoastGuardReserve indicates Coast Guard Reserve DEERS Population: Eligible Coast Guard Reserve
	OrgCodeCoastGuardReserve OrgCode = "45"
	// OrgCodePublicHealthReserve indicates Public Health Reserve DEERS Population: Eligible Public Health Reserve - obsolete
	OrgCodePublicHealthReserve OrgCode = "46"
	// OrgCodeArmyGuard indicates Army Guard DEERS Population: Eligible Army Guard
	OrgCodeArmyGuard OrgCode = "51"
	// OrgCodeAirForceGuard indicates Air Force Guard DEERS Population: Eligible Air Force Guard
	OrgCodeAirForceGuard OrgCode = "52"
	// OrgCodeChampva indicates CHAMPVA DEERS Population: Eligible Disabled American Veteran
	OrgCodeChampva OrgCode = "61"
	// OrgCodeCivilService indicates Civil service DEERS Population: Eligible civil service in DoD
	OrgCodeCivilService OrgCode = "62"
	// OrgCodeCivilianVerificationSystem indicates Civilian Verification System (future use)
	OrgCodeCivilianVerificationSystem OrgCode = "63"
	// OrgCodeCoastGuardCivilian indicates Coast Guard Civilian file
	OrgCodeCoastGuardCivilian OrgCode = "64"
	// OrgCodeNOAACivilian indicates NOAA Civilian Personnel File
	OrgCodeNOAACivilian OrgCode = "65"
	// OrgCodePublicHealthCivilian indicates Public Health Service Civilian Personnel File
	OrgCodePublicHealthCivilian OrgCode = "66"
	// OrgCodeSDVA indicates SDVA - State Offices of Veterans Affairs
	OrgCodeSDVA OrgCode = "67"
	// OrgCodeMerchantMarines indicates Merchant Marines
	OrgCodeMerchantMarines OrgCode = "78"
	// OrgCodeDEERSOnly indicates DEERS Population: Eligible and post-eligible personnel with DEERS online as the sole source (e.g., foreign national, foreign military)
	OrgCodeDEERSOnly OrgCode = "80"
	// OrgCodeVeteransFromMilitaryServiceHistory indicates Veterans from Military Service History Load
	OrgCodeVeteransFromMilitaryServiceHistory OrgCode = "86"
)

type OrgID

type OrgID string

OrgID is the 4 digit identifier of the organization.

const (
	// OrgIDNOAA identifies the National Oceanic and Atmospheric Administration (NOAA)
	OrgIDNOAA OrgID = "1330"
	// OrgIDNavy identifies the United States Navy
	OrgIDNavy OrgID = "1700"
	// OrgIDMarineCorps identifies the United States Marine Corps
	OrgIDMarineCorps OrgID = "1727"
	// OrgIDArmy identifies the United States Army
	OrgIDArmy OrgID = "2100"
	// OrgIDAirForce identifies the United States Air Force
	OrgIDAirForce OrgID = "5700"
	// OrgIDCoastGuard identifies the United States Coast Guard
	OrgIDCoastGuard OrgID = "6950"
	// OrgIDPublicHealth identifies the United States Public Health Service
	OrgIDPublicHealth OrgID = "7520"
	// OrgIDDeptOfDefense identifies the Department of Defense
	OrgIDDeptOfDefense OrgID = "9700"
)

type PayGradeCode

type PayGradeCode string

PayGradeCode represents the level of pay. (The combination of pay plan code and pay grade code represents the sponsor's pay category.)

const (
	// PayGradeCodeUnknown00 means unknown paygrade
	PayGradeCodeUnknown00 PayGradeCode = "00"
	// PayGradeCode01 identifies level 01 in a Civil Service, Cadet, Warrant Officer, Enlisted or Officer pay plan
	PayGradeCode01 PayGradeCode = "01"
	// PayGradeCode02 identifies level 02 in a Civil Service, Warrant Officer, Enlisted or Officer pay plan
	PayGradeCode02 PayGradeCode = "02"
	// PayGradeCode03 identifies level 03 in a Civil Service, Warrant Officer, Enlisted or Officer pay plan
	PayGradeCode03 PayGradeCode = "03"
	// PayGradeCode04 identifies level 04 in a Civil Service, Warrant Officer, Enlisted or Officer pay plan
	PayGradeCode04 PayGradeCode = "04"
	// PayGradeCode05 identifies level 05 in a Civil Service, Warrant Officer, Enlisted or Officer pay plan
	PayGradeCode05 PayGradeCode = "05"
	// PayGradeCode06 identifies level 06 in a Civil Service, Enlisted, or Officer pay plan
	PayGradeCode06 PayGradeCode = "06"
	// PayGradeCode07 identifies level 07 in a Civil Service, Enlisted, or Officer pay plan
	PayGradeCode07 PayGradeCode = "07"
	// PayGradeCode08 identifies level 08 in a Civil Service, Enlisted, or Officer pay plan
	PayGradeCode08 PayGradeCode = "08"
	// PayGradeCode09 identifies level 09 in a Civil Service, Enlisted, or Officer pay plan
	PayGradeCode09 PayGradeCode = "09"
	// PayGradeCode10 identifies level 10 in a Civil Service or Officer pay plan
	PayGradeCode10 PayGradeCode = "10"
	// PayGradeCode11 identifies level 11 in a Civil Service or Officer pay plan
	PayGradeCode11 PayGradeCode = "11"
	// PayGradeCode12 identifies level 12 in a Civil Service Pay Plan
	PayGradeCode12 PayGradeCode = "12"
	// PayGradeCode13 identifies level 13 in a Civil Service Pay Plan
	PayGradeCode13 PayGradeCode = "13"
	// PayGradeCode14 identifies level 14 in a Civil Service Pay Plan
	PayGradeCode14 PayGradeCode = "14"
	// PayGradeCode15 identifies level 15 in a Civil Service Pay Plan
	PayGradeCode15 PayGradeCode = "15"
	// PayGradeCode21 identifies level 21 in a Civil Service pay plan
	PayGradeCode21 PayGradeCode = "21"
	// PayGradeCode22 identifies level 22 in a Civil Service pay plan
	PayGradeCode22 PayGradeCode = "22"
	// PayGradeCode23 identifies level 23 in a Civil Service pay plan
	PayGradeCode23 PayGradeCode = "23"
	// PayGradeCode24 identifies level 24 in a Civil Service pay plan
	PayGradeCode24 PayGradeCode = "24"
	// PayGradeCode25 identifies level 25 in a Civil Service pay plan
	PayGradeCode25 PayGradeCode = "25"
	// PayGradeCode26 identifies level 26 in a Civil Service pay plan
	PayGradeCode26 PayGradeCode = "26"
	// PayGradeCode27 identifies level 27 in a Civil Service pay plan
	PayGradeCode27 PayGradeCode = "27"
	// PayGradeCode28 identifies level 28 in a Civil Service pay plan
	PayGradeCode28 PayGradeCode = "28"
	// PayGradeCode29 identifies level 29 in a Civil Service pay plan
	PayGradeCode29 PayGradeCode = "29"
	// PayGradeCode30 identifies level 30 in a Civil Service pay plan
	PayGradeCode30 PayGradeCode = "30"
	// PayGradeCode31 identifies level 31 in a Civil Service pay plan
	PayGradeCode31 PayGradeCode = "31"
	// PayGradeCode32 identifies level 32 in a Civil Service pay plan
	PayGradeCode32 PayGradeCode = "32"
	// PayGradeCode34 identifies level 34 in a Civil Service pay plan
	PayGradeCode34 PayGradeCode = "34"
	// PayGradeCode36 identifies level 36 in a Civil Service pay plan
	PayGradeCode36 PayGradeCode = "36"
	// PayGradeCode39 identifies level 39 in a Civil Service pay plan
	PayGradeCode39 PayGradeCode = "39"
	// PayGradeCode40 identifies level 40 in a Civil Service pay plan
	PayGradeCode40 PayGradeCode = "40"
	// PayGradeCode41 identifies level 41 in a Civil Service pay plan
	PayGradeCode41 PayGradeCode = "41"
	// PayGradeCode44 identifies level 44 in a Civil Service pay plan
	PayGradeCode44 PayGradeCode = "44"
	// PayGradeCode45 identifies level 45 in a Civil Service pay plan
	PayGradeCode45 PayGradeCode = "45"
	// PayGradeCode47 identifies level 47 in a Civil Service pay plan
	PayGradeCode47 PayGradeCode = "47"
	// PayGradeCode48 identifies level 48 in a Civil Service pay plan
	PayGradeCode48 PayGradeCode = "48"
	// PayGradeCode50 identifies level 50 in a Civil Service pay plan
	PayGradeCode50 PayGradeCode = "50"
	// PayGradeCode64 identifies level 64 in a Civil Service pay plan
	PayGradeCode64 PayGradeCode = "64"
	// PayGradeCode66 identifies level 66 in a Civil Service pay plan
	PayGradeCode66 PayGradeCode = "66"
	// PayGradeCode78 identifies level 78 in a Civil Service pay plan
	PayGradeCode78 PayGradeCode = "78"
	// PayGradeCode79 identifies level 79 in a Civil Service pay plan
	PayGradeCode79 PayGradeCode = "79"
	// PayGradeCode80 identifies level 80 in a Civil Service pay plan
	PayGradeCode80 PayGradeCode = "80"
	// PayGradeCode81 identifies level 81 in a Civil Service pay plan
	PayGradeCode81 PayGradeCode = "81"
	// PayGradeCode82 identifies level 82 in a Civil Service pay plan
	PayGradeCode82 PayGradeCode = "82"
	// PayGradeCode99 identifies level 99 in a Civil Service pay plan
	PayGradeCode99 PayGradeCode = "99"
	// PayGradeCodeAA identifies level AA in a Civil Service pay plan
	PayGradeCodeAA PayGradeCode = "AA"
	// PayGradeCodeBA identifies level BA in a Civil Service pay plan
	PayGradeCodeBA PayGradeCode = "BA"
	// PayGradeCodeCB identifies level CB in a Civil Service pay plan
	PayGradeCodeCB PayGradeCode = "CB"
	// PayGradeCodeCC identifies level CC in a Civil Service pay plan
	PayGradeCodeCC PayGradeCode = "CC"
	// PayGradeCodeCD identifies level CD in a Civil Service pay plan
	PayGradeCodeCD PayGradeCode = "CD"
	// PayGradeCodeCE identifies level CE in a Civil Service pay plan
	PayGradeCodeCE PayGradeCode = "CE"
	// PayGradeCodeCG identifies level CG in a Civil Service pay plan
	PayGradeCodeCG PayGradeCode = "CG"
	// PayGradeCodeCL identifies level CL in a Civil Service pay plan
	PayGradeCodeCL PayGradeCode = "CL"
	// PayGradeCodeCM identifies level CM in a Civil Service pay plan
	PayGradeCodeCM PayGradeCode = "CM"
	// PayGradeCodeDD identifies level DD in a Civil Service pay plan
	PayGradeCodeDD PayGradeCode = "DD"
	// PayGradeCodeDE identifies level DE in a Civil Service pay plan
	PayGradeCodeDE PayGradeCode = "DE"
	// PayGradeCodeDG identifies level DG in a Civil Service pay plan
	PayGradeCodeDG PayGradeCode = "DG"
	// PayGradeCodeED identifies level ED in a Civil Service pay plan
	PayGradeCodeED PayGradeCode = "ED"
	// PayGradeCodeEE identifies level EE in a Civil Service pay plan
	PayGradeCodeEE PayGradeCode = "EE"
	// PayGradeCodeEG identifies level EG in a Civil Service pay plan
	PayGradeCodeEG PayGradeCode = "EG"
	// PayGradeCodeEM identifies level EM in a Civil Service pay plan
	PayGradeCodeEM PayGradeCode = "EM"
	// PayGradeCodeFD identifies level FD in a Civil Service pay plan
	PayGradeCodeFD PayGradeCode = "FD"
	// PayGradeCodeFE identifies level FE in a Civil Service pay plan
	PayGradeCodeFE PayGradeCode = "FE"
	// PayGradeCodeFG identifies level FG in a Civil Service pay plan
	PayGradeCodeFG PayGradeCode = "FG"
	// PayGradeCodeFM identifies level FM in a Civil Service pay plan
	PayGradeCodeFM PayGradeCode = "FM"
	// PayGradeCodeGB identifies level GB in a Civil Service pay plan
	PayGradeCodeGB PayGradeCode = "GB"
	// PayGradeCodeGC identifies level GC in a Civil Service pay plan
	PayGradeCodeGC PayGradeCode = "GC"
	// PayGradeCodeGD identifies level GD in a Civil Service pay plan
	PayGradeCodeGD PayGradeCode = "GD"
	// PayGradeCodeGE identifies level GE in a Civil Service pay plan
	PayGradeCodeGE PayGradeCode = "GE"
	// PayGradeCodeGF identifies level GF in a Civil Service pay plan
	PayGradeCodeGF PayGradeCode = "GF"
	// PayGradeCodeGG identifies level GG in a Civil Service pay plan
	PayGradeCodeGG PayGradeCode = "GG"
	// PayGradeCodeKD identifies level KD in a Civil Service pay plan
	PayGradeCodeKD PayGradeCode = "KD"
	// PayGradeCodeKE identifies level KE in a Civil Service pay plan
	PayGradeCodeKE PayGradeCode = "KE"
	// PayGradeCodeKG identifies level KG in a Civil Service pay plan
	PayGradeCodeKG PayGradeCode = "KG"
	// PayGradeCodeLD identifies level LD in a Civil Service pay plan
	PayGradeCodeLD PayGradeCode = "LD"
	// PayGradeCodeLE identifies level LE in a Civil Service pay plan
	PayGradeCodeLE PayGradeCode = "LE"
	// PayGradeCodeLG identifies level LG in a Civil Service pay plan
	PayGradeCodeLG PayGradeCode = "LG"
	// PayGradeCodeMC identifies level MC in a Civil Service pay plan
	PayGradeCodeMC PayGradeCode = "MC"
	// PayGradeCodeMD identifies level MD in a Civil Service pay plan
	PayGradeCodeMD PayGradeCode = "MD"
	// PayGradeCodeME identifies level ME in a Civil Service pay plan
	PayGradeCodeME PayGradeCode = "ME"
	// PayGradeCodeMG identifies level MG in a Civil Service pay plan
	PayGradeCodeMG PayGradeCode = "MG"
	// PayGradeCodeMM identifies level MM in a Civil Service pay plan
	PayGradeCodeMM PayGradeCode = "MM"
	// PayGradeCodeNC identifies level NC in a Civil Service pay plan
	PayGradeCodeNC PayGradeCode = "NC"
	// PayGradeCodeND identifies level ND in a Civil Service pay plan
	PayGradeCodeND PayGradeCode = "ND"
	// PayGradeCodeNE identifies level NE in a Civil Service pay plan
	PayGradeCodeNE PayGradeCode = "NE"
	// PayGradeCodeNG identifies level NG in a Civil Service pay plan
	PayGradeCodeNG PayGradeCode = "NG"
	// PayGradeCodeNM identifies level NM in a Civil Service pay plan
	PayGradeCodeNM PayGradeCode = "NM"
	// PayGradeCodeNonSupervisory is the non-supervisory paygrade code, used for DoD/non-DoD contractors when the Pay Plan Code is "ZZ"
	PayGradeCodeNonSupervisory PayGradeCode = "NS"
	// PayGradeCodeOC identifies level OC in a Civil Service pay plan
	PayGradeCodeOC PayGradeCode = "OC"
	// PayGradeCodeOD identifies level OD in a Civil Service pay plan
	PayGradeCodeOD PayGradeCode = "OD"
	// PayGradeCodeOE identifies level OE in a Civil Service pay plan
	PayGradeCodeOE PayGradeCode = "OE"
	// PayGradeCodeOG identifies level OG in a Civil Service pay plan
	PayGradeCodeOG PayGradeCode = "OG"
	// PayGradeCodeQD identifies level QD in a Civil Service pay plan
	PayGradeCodeQD PayGradeCode = "QD"
	// PayGradeCodeRH identifies level RH in a Civil Service pay plan
	PayGradeCodeRH PayGradeCode = "RH"
	// PayGradeCodeRI identifies level RI in a Civil Service pay plan
	PayGradeCodeRI PayGradeCode = "RI"
	// PayGradeCodeRJ identifies level RJ in a Civil Service pay plan
	PayGradeCodeRJ PayGradeCode = "RJ"
	// PayGradeCodeRK identifies level RK in a Civil Service pay plan
	PayGradeCodeRK PayGradeCode = "RK"
	// PayGradeCodeSH identifies level SH in a Civil Service pay plan
	PayGradeCodeSH PayGradeCode = "SH"
	// PayGradeCodeSI identifies level SI in a Civil Service pay plan
	PayGradeCodeSI PayGradeCode = "SI"
	// PayGradeCodeSJ identifies level SJ in a Civil Service pay plan
	PayGradeCodeSJ PayGradeCode = "SJ"
	// PayGradeCodeSK identifies level SK in a Civil Service pay plan
	PayGradeCodeSK PayGradeCode = "SK"
	// PayGradeCodeSupervisory is the supervisory paygrade code, used for DoD/non-DoD contractors when the Pay Plan Code is "ZZ"
	PayGradeCodeSupervisory PayGradeCode = "SP"
	// PayGradeCodeTH identifies level TH in a Civil Service pay plan
	PayGradeCodeTH PayGradeCode = "TH"
	// PayGradeCodeTI identifies level TI in a Civil Service pay plan
	PayGradeCodeTI PayGradeCode = "TI"
	// PayGradeCodeTJ identifies level TJ in a Civil Service pay plan
	PayGradeCodeTJ PayGradeCode = "TJ"
	// PayGradeCodeUH identifies level UH in a Civil Service pay plan
	PayGradeCodeUH PayGradeCode = "UH"
	// PayGradeCodeUI identifies level UI in a Civil Service pay plan
	PayGradeCodeUI PayGradeCode = "UI"
	// PayGradeCodeUJ identifies level UJ in a Civil Service pay plan
	PayGradeCodeUJ PayGradeCode = "UJ"
	// PayGradeCodeVH identifies level VH in a Civil Service pay plan
	PayGradeCodeVH PayGradeCode = "VH"
	// PayGradeCodeVI identifies level VI in a Civil Service pay plan
	PayGradeCodeVI PayGradeCode = "VI"
	// PayGradeCodeVJ identifies level VJ in a Civil Service pay plan
	PayGradeCodeVJ PayGradeCode = "VJ"
	// PayGradeCodeWE identifies level WE in a Civil Service pay plan
	PayGradeCodeWE PayGradeCode = "WE"
	// PayGradeCodeWF identifies level WF in a Civil Service pay plan
	PayGradeCodeWF PayGradeCode = "WF"
	// PayGradeCodeWG identifies level WG in a Civil Service pay plan
	PayGradeCodeWG PayGradeCode = "WG"
	// PayGradeCodeWW means unknown paygrade
	PayGradeCodeWW PayGradeCode = "WW"
	// PayGradeCodeXF identifies level XF in a Civil Service pay plan
	PayGradeCodeXF PayGradeCode = "XF"
	// PayGradeCodeXG identifies level XG in a Civil Service pay plan
	PayGradeCodeXG PayGradeCode = "XG"
	// PayGradeCodeYF identifies level YF in a Civil Service pay plan
	PayGradeCodeYF PayGradeCode = "YF"
	// PayGradeCodeYG identifies level YG in a Civil Service pay plan
	PayGradeCodeYG PayGradeCode = "YG"
	// PayGradeCodeZG identifies level ZG in a Civil Service pay plan
	PayGradeCodeZG PayGradeCode = "ZG"
)

type PayPlanCode

type PayPlanCode string

PayPlanCode represents the type of pay category. (The combination of pay plan code and pay grade code represents the sponsor's pay category.)

const (
	// PayPlanCode999 means Other Civilian Pay Plan
	PayPlanCode999 PayPlanCode = "999"
	// PayPlanCode99999 means Other Civilian Pay Plan
	PayPlanCode99999 PayPlanCode = "99999"
	// PayPlanCodeAA == Administrative Appeals Judges
	PayPlanCodeAA PayPlanCode = "AA"
	// PayPlanCodeAD == Administratively determined not elsewhere specified.
	PayPlanCodeAD PayPlanCode = "AD"
	// PayPlanCodeAF == American Family Members
	PayPlanCodeAF PayPlanCode = "AF"
	// PayPlanCodeAJ == Administrative judges, Nuclear Regulatory Commission
	PayPlanCodeAJ PayPlanCode = "AJ"
	// PayPlanCodeAL == Administrative Law judges
	PayPlanCodeAL PayPlanCode = "AL"
	// PayPlanCodeAS == Non-appropriated fund, administrative support (to be replaced by NF)
	PayPlanCodeAS PayPlanCode = "AS"
	// PayPlanCodeBB == Non supervisory negotiated pay employees
	PayPlanCodeBB PayPlanCode = "BB"
	// PayPlanCodeBL == Leader negotiated pay employees
	PayPlanCodeBL PayPlanCode = "BL"
	// PayPlanCodeBP == Printing and Lithographic negotiated pay employees
	PayPlanCodeBP PayPlanCode = "BP"
	// PayPlanCodeBS == Supervisory negotiated pay employees
	PayPlanCodeBS PayPlanCode = "BS"
	// PayPlanCodeCA == Board of contract appeals
	PayPlanCodeCA PayPlanCode = "CA"
	// PayPlanCodeCC == Commissioned Corps of Public Health Service
	PayPlanCodeCC PayPlanCode = "CC"
	// PayPlanCodeCE == Contract education
	PayPlanCodeCE PayPlanCode = "CE"
	// PayPlanCodeCG == Corporate graded Federal Deposit Insurance Corp.
	PayPlanCodeCG PayPlanCode = "CG"
	// PayPlanCodeCH == Non-appropriated fund, childcare
	PayPlanCodeCH PayPlanCode = "CH"
	// PayPlanCodeCP == U.S. Capitol Police
	PayPlanCodeCP PayPlanCode = "CP"
	// PayPlanCodeCS == Communications Analyst
	PayPlanCodeCS PayPlanCode = "CS"
	// PayPlanCodeCU == Credit Union employees
	PayPlanCodeCU PayPlanCode = "CU"
	// PayPlanCodeCY == Contract education Bureau of Indian Affairs
	PayPlanCodeCY PayPlanCode = "CY"
	// PayPlanCodeCZ == Canal Area General Schedule type positions
	PayPlanCodeCZ PayPlanCode = "CZ"
	// PayPlanCodeDA == Demonstration Administrative (Navy)
	PayPlanCodeDA PayPlanCode = "DA"
	// PayPlanCodeDB == Demonstration Engineers and Scientists (entire DoD)
	PayPlanCodeDB PayPlanCode = "DB"
	// PayPlanCodeDC == Navy Test Program - Clerical
	PayPlanCodeDC PayPlanCode = "DC"
	// PayPlanCodeDE == Demonstration Engineers and Scientists Technicians (entire DoD)
	PayPlanCodeDE PayPlanCode = "DE"
	// PayPlanCodeDG == Demonstration General (Navy)
	PayPlanCodeDG PayPlanCode = "DG"
	// PayPlanCodeDH == Demonstration hourly Air Force logistics command
	PayPlanCodeDH PayPlanCode = "DH"
	// PayPlanCodeDJ == Demonstration Administrative (entire DoD)
	PayPlanCodeDJ PayPlanCode = "DJ"
	// PayPlanCodeDK == Demonstration General Support (entire DoD)
	PayPlanCodeDK PayPlanCode = "DK"
	// PayPlanCodeDN == Defense Nuclear Facilities Safety Board Excepted Service Employees
	PayPlanCodeDN PayPlanCode = "DN"
	// PayPlanCodeDO == Business Management and Professional Career Path, Air Force Research Laboratory. Code is for use by the Department of the Air Force only.
	PayPlanCodeDO PayPlanCode = "DO"
	// PayPlanCodeDP == Demonstration Professional (Navy)
	PayPlanCodeDP PayPlanCode = "DP"
	// PayPlanCodeDQ == Demonstration Artisan Leader (DoD)
	PayPlanCodeDQ PayPlanCode = "DQ"
	// PayPlanCodeDR == Demonstration Air Force Scientist and Engineer
	PayPlanCodeDR PayPlanCode = "DR"
	// PayPlanCodeDS == Demonstration Specialist (Navy)
	PayPlanCodeDS PayPlanCode = "DS"
	// PayPlanCodeDT == Demonstration Technician (Navy)
	PayPlanCodeDT PayPlanCode = "DT"
	// PayPlanCodeDU == Mission Support Career Path, Air Force Research Laboratory. Code is for use by the Department of the Air Force only.
	PayPlanCodeDU PayPlanCode = "DU"
	// PayPlanCodeDV == Demonstration Artisan (DoD)
	PayPlanCodeDV PayPlanCode = "DV"
	// PayPlanCodeDW == Demonstration salaried Air Force and DLA
	PayPlanCodeDW PayPlanCode = "DW"
	// PayPlanCodeDX == Demonstration Supervisory Air Force and DLA
	PayPlanCodeDX PayPlanCode = "DX"
	// PayPlanCodeDZ == Demonstration Artisan (DoD)
	PayPlanCodeDZ PayPlanCode = "DZ"
	// PayPlanCodeEA == Administrative schedule (excluded) Tennessee Valley Authority
	PayPlanCodeEA PayPlanCode = "EA"
	// PayPlanCodeEB == Clerical schedule (excluded) Tennessee Valley Authority
	PayPlanCodeEB PayPlanCode = "EB"
	// PayPlanCodeEC == Engineering and Computing schedule (excluded) Tennessee Valley Authority
	PayPlanCodeEC PayPlanCode = "EC"
	// PayPlanCodeED == Expert
	PayPlanCodeED PayPlanCode = "ED"
	// PayPlanCodeEE == Expert (other)
	PayPlanCodeEE PayPlanCode = "EE"
	// PayPlanCodeEF == Consultant
	PayPlanCodeEF PayPlanCode = "EF"
	// PayPlanCodeEG == Consultant (other)
	PayPlanCodeEG PayPlanCode = "EG"
	// PayPlanCodeEH == Advisory committee member
	PayPlanCodeEH PayPlanCode = "EH"
	// PayPlanCodeEI == Advisory committee member (other)
	PayPlanCodeEI PayPlanCode = "EI"
	// PayPlanCodeEM == Executive schedule Office of the Comptroller of the currency
	PayPlanCodeEM PayPlanCode = "EM"
	// PayPlanCodeEO == FDIC executive pay
	PayPlanCodeEO PayPlanCode = "EO"
	// PayPlanCodeEP == Defense Intelligence Senior Executive Service
	PayPlanCodeEP PayPlanCode = "EP"
	// PayPlanCodeES == Senior Executive Service (SES)
	PayPlanCodeES PayPlanCode = "ES"
	// PayPlanCodeET == General Accounting Office Senior Executive Service
	PayPlanCodeET PayPlanCode = "ET"
	// PayPlanCodeEX == Executive pay
	PayPlanCodeEX PayPlanCode = "EX"
	// PayPlanCodeFA == Foreign Service Chiefs of mission
	PayPlanCodeFA PayPlanCode = "FA"
	// PayPlanCodeFC == Foreign compensation Agency for International Development
	PayPlanCodeFC PayPlanCode = "FC"
	// PayPlanCodeFD == Foreign defense
	PayPlanCodeFD PayPlanCode = "FD"
	// PayPlanCodeFE == Senior Foreign Service
	PayPlanCodeFE PayPlanCode = "FE"
	// PayPlanCodeFH == Members of the Foreign Service employed by the Department of State
	PayPlanCodeFH PayPlanCode = "FH"
	// PayPlanCodeFO == Foreign Service Officers
	PayPlanCodeFO PayPlanCode = "FO"
	// PayPlanCodeFP == Foreign Service personnel
	PayPlanCodeFP PayPlanCode = "FP"
	// PayPlanCodeFZ == Consular Agent Department of State
	PayPlanCodeFZ PayPlanCode = "FZ"
	// PayPlanCodeGD == Skill based pay demonstration project managers (DLA)
	PayPlanCodeGD PayPlanCode = "GD"
	// PayPlanCodeGG == Grades similar to General Schedule
	PayPlanCodeGG PayPlanCode = "GG"
	// PayPlanCodeGH == GG employees converted to performance and management recognition system
	PayPlanCodeGH PayPlanCode = "GH"
	// PayPlanCodeGL == GS Law Enforcement Officers
	PayPlanCodeGL PayPlanCode = "GL"
	// PayPlanCodeGM == Performance Management and Recognition system
	PayPlanCodeGM PayPlanCode = "GM"
	// PayPlanCodeGN == Nurse at Warren G. Magnuson Clinical Center
	PayPlanCodeGN PayPlanCode = "GN"
	// PayPlanCodeGP == GS Physicians and Dentists
	PayPlanCodeGP PayPlanCode = "GP"
	// PayPlanCodeGR == GM Physicians and Dentists
	PayPlanCodeGR PayPlanCode = "GR"
	// PayPlanCodeGS == General Schedule
	PayPlanCodeGS PayPlanCode = "GS"
	// PayPlanCodeGW == Employment under schedule A paid at GS rate Stay-In-School program
	PayPlanCodeGW PayPlanCode = "GW"
	// PayPlanCodeIA == Defense Civilian Intelligence Personnel System pay-banded compensation structure. Code is for use by the Department of Defense only.
	PayPlanCodeIA PayPlanCode = "IA"
	// PayPlanCodeIE == Senior Intelligence Executive Service (SIES) Program
	PayPlanCodeIE PayPlanCode = "IE"
	// PayPlanCodeIJ == Immigration Judge Schedule
	PayPlanCodeIJ PayPlanCode = "IJ"
	// PayPlanCodeIP == Senior Intelligence Professional Program
	PayPlanCodeIP PayPlanCode = "IP"
	// PayPlanCodeJG == Graded tradesmen and craftsmen United States Courts
	PayPlanCodeJG PayPlanCode = "JG"
	// PayPlanCodeJL == Leaders of tradesmen and craftsmen United States Courts
	PayPlanCodeJL PayPlanCode = "JL"
	// PayPlanCodeJP == Non supervisory lithographers and printers United States Courts
	PayPlanCodeJP PayPlanCode = "JP"
	// PayPlanCodeJQ == Lead lithographers and printers United States Courts
	PayPlanCodeJQ PayPlanCode = "JQ"
	// PayPlanCodeJR == Supervisory lithographers and printers United States Courts
	PayPlanCodeJR PayPlanCode = "JR"
	// PayPlanCodeJT == Supervisors for tradesmen and craftsmen United States Courts
	PayPlanCodeJT PayPlanCode = "JT"
	// PayPlanCodeKA == Kleas Act Government Printing Office
	PayPlanCodeKA PayPlanCode = "KA"
	// PayPlanCodeKG == Non-Craft non supervisory Bureau of Engraving and Printing
	PayPlanCodeKG PayPlanCode = "KG"
	// PayPlanCodeKL == Non-Craft leader Bureau of Engraving and Printing
	PayPlanCodeKL PayPlanCode = "KL"
	// PayPlanCodeKS == Non-Craft supervisory Bureau of Engraving and Printing
	PayPlanCodeKS PayPlanCode = "KS"
	// PayPlanCodeLE == United States Secret Service uniformed division Treasury
	PayPlanCodeLE PayPlanCode = "LE"
	// PayPlanCodeLG == Liquidation graded FDIC
	PayPlanCodeLG PayPlanCode = "LG"
	// PayPlanCodeLX == Senior-level Excepted Service Position (GAO)
	PayPlanCodeLX PayPlanCode = "LX"
	// PayPlanCodeMA == Milk Marketing Department of Agriculture
	PayPlanCodeMA PayPlanCode = "MA"
	// PayPlanCodeMC == Cadet (uniformed service only)
	PayPlanCodeMC PayPlanCode = "MC"
	// PayPlanCodeME == Enlisted (uniformed service only)
	PayPlanCodeME PayPlanCode = "ME"
	// PayPlanCodeMO == Officer (uniformed service only)
	PayPlanCodeMO PayPlanCode = "MO"
	// PayPlanCodeMW == Warrant Officer (uniformed service only)
	PayPlanCodeMW PayPlanCode = "MW"
	// PayPlanCodeNA == Non appropriated funds, non supervisory, non leader Federal Wage System
	PayPlanCodeNA PayPlanCode = "NA"
	// PayPlanCodeNC == Naval Research Lab Administrative Support
	PayPlanCodeNC PayPlanCode = "NC"
	// PayPlanCodeND == Demonstration Scientific and Engineering (Navy Only)
	PayPlanCodeND PayPlanCode = "ND"
	// PayPlanCodeNF == Non-appropriated fund, pay band
	PayPlanCodeNF PayPlanCode = "NF"
	// PayPlanCodeNG == Demonstration General Support (Navy Only)
	PayPlanCodeNG PayPlanCode = "NG"
	// PayPlanCodeNH == Business Management and Technical Management Professional. DOD Acquisition Workforce Demonstration Project (entire DoD)
	PayPlanCodeNH PayPlanCode = "NH"
	// PayPlanCodeNJ == Technical Management Support, DOD Acquisition Workforce
	PayPlanCodeNJ PayPlanCode = "NJ"
	// PayPlanCodeNK == Administration Support, DOD Acquisition Workforce Demonstration Project (entire DoD)
	PayPlanCodeNK PayPlanCode = "NK"
	// PayPlanCodeNL == Non-appropriated fund, crafts and trades worker
	PayPlanCodeNL PayPlanCode = "NL"
	// PayPlanCodeNM == Supervisors and Managers. Code is for use by the Department of the Navy only for the Naval Research Laboratory and similar pay demonstration projects.
	PayPlanCodeNM PayPlanCode = "NM"
	// PayPlanCodeNO == Administrative Specialist/Professional
	PayPlanCodeNO PayPlanCode = "NO"
	// PayPlanCodeNP == Science and Engineering Professional
	PayPlanCodeNP PayPlanCode = "NP"
	// PayPlanCodeNR == Science and Engineering Technical
	PayPlanCodeNR PayPlanCode = "NR"
	// PayPlanCodeNS == Non appropriated funds, supervisory, Federal Wage System
	PayPlanCodeNS PayPlanCode = "NS"
	// PayPlanCodeNT == Demonstration Administrative and Technical (Navy Only)
	PayPlanCodeNT PayPlanCode = "NT"
	// PayPlanCodeOC == Office of the Comptroller of the Currency
	PayPlanCodeOC PayPlanCode = "OC"
	// PayPlanCodePA == Attorneys and law clerks General Accounting Office
	PayPlanCodePA PayPlanCode = "PA"
	// PayPlanCodePE == Evaluator and evaluator related General Accounting Office
	PayPlanCodePE PayPlanCode = "PE"
	// PayPlanCodePG == Printing Office grades
	PayPlanCodePG PayPlanCode = "PG"
	// PayPlanCodePS == Non-appropriated fund, patron service (to be replaced by NF)
	PayPlanCodePS PayPlanCode = "PS"
	// PayPlanCodeRS == Senior Biomedical Service
	PayPlanCodeRS PayPlanCode = "RS"
	// PayPlanCodeSA == Administrative schedule Tennessee Valley Authority
	PayPlanCodeSA PayPlanCode = "SA"
	// PayPlanCodeSB == Clerical schedule (excluded) Tennessee Valley Authority
	PayPlanCodeSB PayPlanCode = "SB"
	// PayPlanCodeSC == Engineering and Computing schedule Tennessee Valley Authority
	PayPlanCodeSC PayPlanCode = "SC"
	// PayPlanCodeSD == Scientific and Programming schedule Tennessee Valley Authority
	PayPlanCodeSD PayPlanCode = "SD"
	// PayPlanCodeSE == Aide and Technician schedule Tennessee Valley Authority
	PayPlanCodeSE PayPlanCode = "SE"
	// PayPlanCodeSF == Custodial schedule Tennessee Valley Authority
	PayPlanCodeSF PayPlanCode = "SF"
	// PayPlanCodeSG == Public Safety schedule Tennessee Valley Authority
	PayPlanCodeSG PayPlanCode = "SG"
	// PayPlanCodeSH == Physicians schedule Tennessee Valley Authority
	PayPlanCodeSH PayPlanCode = "SH"
	// PayPlanCodeSJ == Scientific and Programming schedule (excluded) Tennessee Valley Authority
	PayPlanCodeSJ PayPlanCode = "SJ"
	// PayPlanCodeSL == Senior Level Positions
	PayPlanCodeSL PayPlanCode = "SL"
	// PayPlanCodeSM == Management Schedule Tennessee Valley Authority
	PayPlanCodeSM PayPlanCode = "SM"
	// PayPlanCodeSN == Senior Level System Nuclear Regulatory Commission
	PayPlanCodeSN PayPlanCode = "SN"
	// PayPlanCodeSP == Park Police Department of the Interior
	PayPlanCodeSP PayPlanCode = "SP"
	// PayPlanCodeSQ == Physicians and dentists paid under Scientific and Professional (ST) pay
	PayPlanCodeSQ PayPlanCode = "SQ"
	// PayPlanCodeSR == Statutory rates not elsewhere specified
	PayPlanCodeSR PayPlanCode = "SR"
	// PayPlanCodeSS == Senior Staff positions
	PayPlanCodeSS PayPlanCode = "SS"
	// PayPlanCodeST == Scientific and professional
	PayPlanCodeST PayPlanCode = "ST"
	// PayPlanCodeSZ == Canal Area Special category type positions
	PayPlanCodeSZ PayPlanCode = "SZ"
	// PayPlanCodeTA == Construction schedule
	PayPlanCodeTA PayPlanCode = "TA"
	// PayPlanCodeTB == Operating and Maintenance (power facilities) Tennessee Valley Authority
	PayPlanCodeTB PayPlanCode = "TB"
	// PayPlanCodeTC == Chemical Operators Tennessee Valley Authority
	PayPlanCodeTC PayPlanCode = "TC"
	// PayPlanCodeTD == Plant Operators schedule Tennessee Valley Authority
	PayPlanCodeTD PayPlanCode = "TD"
	// PayPlanCodeTE == Operating and Maintenance (nonpower facilities) Tennessee Valley Authority
	PayPlanCodeTE PayPlanCode = "TE"
	// PayPlanCodeTM == Federal Housing Finance board Executive level
	PayPlanCodeTM PayPlanCode = "TM"
	// PayPlanCodeTP == Teaching positions DoD schools only
	PayPlanCodeTP PayPlanCode = "TP"
	// PayPlanCodeTR == Police Forces US Mint and Bureau of Engraving and Printing
	PayPlanCodeTR PayPlanCode = "TR"
	// PayPlanCodeTS == Step System Federal Housing Finance board
	PayPlanCodeTS PayPlanCode = "TS"
	// PayPlanCodeVC == Canteen Service Department of Veterans Affairs
	PayPlanCodeVC PayPlanCode = "VC"
	// PayPlanCodeVE == Canteen Service Executives Department of Veterans Affairs
	PayPlanCodeVE PayPlanCode = "VE"
	// PayPlanCodeVG == Clerical and Administrative support Farm Credit
	PayPlanCodeVG PayPlanCode = "VG"
	// PayPlanCodeVH == Professional, Administrative, and Managerial Farm Credit
	PayPlanCodeVH PayPlanCode = "VH"
	// PayPlanCodeVM == Medical and Dental Department of Veterans Affairs
	PayPlanCodeVM PayPlanCode = "VM"
	// PayPlanCodeVN == Nurses Department of Veterans Affairs
	PayPlanCodeVN PayPlanCode = "VN"
	// PayPlanCodeVP == Clinical Podiatrists and Optometrists Department of Veterans Affairs
	PayPlanCodeVP PayPlanCode = "VP"
	// PayPlanCodeWA == Navigation Lock and Dam Operation and maintenance supervisory USACE
	PayPlanCodeWA PayPlanCode = "WA"
	// PayPlanCodeWB == Wage positions under Federal Wage System otherwise not designated (obsolete)
	PayPlanCodeWB PayPlanCode = "WB"
	// PayPlanCodeWD == Production facilitating non supervisory Federal Wage System (obsolete)
	PayPlanCodeWD PayPlanCode = "WD"
	// PayPlanCodeWE == Currency manufacturing Department of the Treasury
	PayPlanCodeWE PayPlanCode = "WE"
	// PayPlanCodeWF == Motion Picture Production
	PayPlanCodeWF PayPlanCode = "WF"
	// PayPlanCodeWG == Non supervisory pay schedule Federal Wage System (obsolete)
	PayPlanCodeWG PayPlanCode = "WG"
	// PayPlanCodeWI == Printing and Lithographic (D.C.)
	PayPlanCodeWI PayPlanCode = "WI"
	// PayPlanCodeWJ == Hopper Dredge Schedule Supervisory Federal Wage System Dept of Army
	PayPlanCodeWJ PayPlanCode = "WJ"
	// PayPlanCodeWK == Hopper Dredge Schedule non supervisory Federal Wage System Dept of Army
	PayPlanCodeWK PayPlanCode = "WK"
	// PayPlanCodeWL == Leader pay schedules Federal Wage System
	PayPlanCodeWL PayPlanCode = "WL"
	// PayPlanCodeWM == Maritime pay schedules
	PayPlanCodeWM PayPlanCode = "WM"
	// PayPlanCodeWN == Production facilitating supervisory Federal Wage System
	PayPlanCodeWN PayPlanCode = "WN"
	// PayPlanCodeWO == Navigation Lock and Dam Operation and maintenance leader USACE
	PayPlanCodeWO PayPlanCode = "WO"
	// PayPlanCodeWP == Printing and Lithographic (other than D.C.)
	PayPlanCodeWP PayPlanCode = "WP"
	// PayPlanCodeWQ == Aircraft Electronic Equipment and Optical Inst. repair supervisory
	PayPlanCodeWQ PayPlanCode = "WQ"
	// PayPlanCodeWR == Aircraft Electronic Equipment and Optical Inst. repair leader
	PayPlanCodeWR PayPlanCode = "WR"
	// PayPlanCodeWS == Supervisor Federal Wage System (obsolete)
	PayPlanCodeWS PayPlanCode = "WS"
	// PayPlanCodeWT == Apprentices and Shop trainees Federal Wage System (obsolete)
	PayPlanCodeWT PayPlanCode = "WT"
	// PayPlanCodeWU == Aircraft Electronic Equipment and Optical Inst. repair non supervisory
	PayPlanCodeWU PayPlanCode = "WU"
	// PayPlanCodeWW == Wage type excepted Stay-In-School Federal Wage System (obsolete)
	PayPlanCodeWW PayPlanCode = "WW"
	// PayPlanCodeWY == Navigation Lock and Dam Operation and maintenance non supervisory USACE
	PayPlanCodeWY PayPlanCode = "WY"
	// PayPlanCodeWZ == Canal Area Wage System type positions (obsolete)
	PayPlanCodeWZ PayPlanCode = "WZ"
	// PayPlanCodeXA == Special Overlap Area Rate Schedule non supervisory Dept of the Interior
	PayPlanCodeXA PayPlanCode = "XA"
	// PayPlanCodeXB == Special Overlap Area Rate Schedule leader Dept of the Interior
	PayPlanCodeXB PayPlanCode = "XB"
	// PayPlanCodeXC == Special Overlap Area Rate Schedule supervisory Dept of the Interior
	PayPlanCodeXC PayPlanCode = "XC"
	// PayPlanCodeXD == Non supervisory production facilitating special schedule printing employees
	PayPlanCodeXD PayPlanCode = "XD"
	// PayPlanCodeXF == Floating Plant Schedule non supervisory Dept of Army
	PayPlanCodeXF PayPlanCode = "XF"
	// PayPlanCodeXG == Floating Plant Schedule leader Dept of Army
	PayPlanCodeXG PayPlanCode = "XG"
	// PayPlanCodeXH == Floating Plant Schedule supervisory Dept of Army
	PayPlanCodeXH PayPlanCode = "XH"
	// PayPlanCodeXL == Leader special schedule printing employees
	PayPlanCodeXL PayPlanCode = "XL"
	// PayPlanCodeXN == Supervisory production facilitating special schedule printing employees
	PayPlanCodeXN PayPlanCode = "XN"
	// PayPlanCodeXP == Non supervisory special schedule printing employees
	PayPlanCodeXP PayPlanCode = "XP"
	// PayPlanCodeXS == Supervisory special schedule printing employees
	PayPlanCodeXS PayPlanCode = "XS"
	// PayPlanCodeXW == Automotive Mechanic, Non-Supervisory (NAF)
	PayPlanCodeXW PayPlanCode = "XW"
	// PayPlanCodeXY == Automotive Mechanic, Leader (NAF)
	PayPlanCodeXY PayPlanCode = "XY"
	// PayPlanCodeXZ == Automotive Mechanic, Supervisory NAF)
	PayPlanCodeXZ PayPlanCode = "XZ"
	// PayPlanCodeYA == NSPS Standard Career Group - Professional/Analytical Pay Schedule
	PayPlanCodeYA PayPlanCode = "YA"
	// PayPlanCodeYB == NSPS Standard Career Group - Technician/Support Pay Schedule
	PayPlanCodeYB PayPlanCode = "YB"
	// PayPlanCodeYC == NSPS Standard Career Group - Supervisor/Manager Pay Schedule
	PayPlanCodeYC PayPlanCode = "YC"
	// PayPlanCodeYD == NSPS Scientific and Engineering Career Group - Professional Pay Schedule
	PayPlanCodeYD PayPlanCode = "YD"
	// PayPlanCodeYE == NSPS Scientific and Engineering Career Group - Technician/Support Pay Schedule
	PayPlanCodeYE PayPlanCode = "YE"
	// PayPlanCodeYF == NSPS Scientific and Engineering Career Group - Supervisor/Manager Pay Schedule
	PayPlanCodeYF PayPlanCode = "YF"
	// PayPlanCodeYG == NSPS Medical Career Group - Physician/Dentist Pay Schedule
	PayPlanCodeYG PayPlanCode = "YG"
	// PayPlanCodeYH == NSPS Medical Career Group - Professional Pay Schedule
	PayPlanCodeYH PayPlanCode = "YH"
	// PayPlanCodeYI == NSPS Medical Career Group - Technician/Support Pay Schedule
	PayPlanCodeYI PayPlanCode = "YI"
	// PayPlanCodeYJ == NSPS Medical Career Group - Supervisor/Manager Pay Schedule
	PayPlanCodeYJ PayPlanCode = "YJ"
	// PayPlanCodeYK == NSPS Investigative and Protective Career Group - Investigative Pay Schedule
	PayPlanCodeYK PayPlanCode = "YK"
	// PayPlanCodeYL == NSPS Investigative and Protective Career Group - Fire Protection Pay Schedule
	PayPlanCodeYL PayPlanCode = "YL"
	// PayPlanCodeYM == NSPS Investigative and Protective Career Group - Police/Security Guard Pay Schedule
	PayPlanCodeYM PayPlanCode = "YM"
	// PayPlanCodeYN == NSPS Investigative and Protective Career Group - Supervisor/Manager Pay Schedule
	PayPlanCodeYN PayPlanCode = "YN"
	// PayPlanCodeYO == Undefined DoD, DON, DOA, DAF
	PayPlanCodeYO PayPlanCode = "YO"
	// PayPlanCodeYP == NSPS Standard Career Group - Student Educational Employment Program Pay Schedule
	PayPlanCodeYP PayPlanCode = "YP"
	// PayPlanCodeYQ == Undefined DoD, DON, DOA, DAF
	PayPlanCodeYQ PayPlanCode = "YQ"
	// PayPlanCodeYR == Undefined DoD, DON, DOA, DAF
	PayPlanCodeYR PayPlanCode = "YR"
	// PayPlanCodeYS == Undefined DoD, DON, DOA, DAF
	PayPlanCodeYS PayPlanCode = "YS"
	// PayPlanCodeYT == Undefined DoD, DON, DOA, DAF
	PayPlanCodeYT PayPlanCode = "YT"
	// PayPlanCodeYU == Undefined DoD, DON, DOA, DAF
	PayPlanCodeYU PayPlanCode = "YU"
	// PayPlanCodeYV == Temporary summer aid employment
	PayPlanCodeYV PayPlanCode = "YV"
	// PayPlanCodeYW == Student aid employment Stay-In-School
	PayPlanCodeYW PayPlanCode = "YW"
	// PayPlanCodeYX == Undefined DoD, DON, DOA, DAF
	PayPlanCodeYX PayPlanCode = "YX"
	// PayPlanCodeYY == Undefined DoD, DON, DOA, DAF
	PayPlanCodeYY PayPlanCode = "YY"
	// PayPlanCodeYZ == Undefined DoD, DON, DOA, DAF
	PayPlanCodeYZ PayPlanCode = "YZ"
	// PayPlanCodeZA == Administrative (Department of Commerce)
	PayPlanCodeZA PayPlanCode = "ZA"
	// PayPlanCodeZP == Scientific and Engineering Professional National Institute of Standards and Technology
	PayPlanCodeZP PayPlanCode = "ZP"
	// PayPlanCodeZS == Administrative Support (Department of Commerce)
	PayPlanCodeZS PayPlanCode = "ZS"
	// PayPlanCodeZT == Scientific and Engineering Technician (Department of Commerce)
	PayPlanCodeZT PayPlanCode = "ZT"
	// PayPlanCodeZZ == Not applicable. Use only with pay basis WC (without compensation) when other Pay Plan Codes are not applicable.
	PayPlanCodeZZ PayPlanCode = "ZZ"
)

type Person

type Person struct {
	ID         string         `xml:"PN_ID"`
	TypeCode   PersonTypeCode `xml:"PN_ID_TYP_CD"`
	LastName   string         `xml:"PN_LST_NM,omitempty"`
	FirstName  string         `xml:"PN_1ST_NM,omitempty"`
	MiddleName string         `xml:"PN_MID_NM,omitempty"`
	CdncyName  string         `xml:"PN_CDNCY_NM,omitempty"`
	BirthDate  string         `xml:"PN_BRTH_DT,omitempty"`
}

Person contains the PII returned by an EDI query or use to search in a PIDS query with DMDC's Identity Web Services: Real-time Broker Service REST API

type PersonLookup

type PersonLookup interface {
	GetPersonUsingEDIPI(edipi uint64) (*Person, []Personnel, error)
	GetPersonUsingSSN(params GetPersonUsingSSNParams) (MatchReasonCode, uint64, *Person, []Personnel, error)
	GetPersonUsingWorkEmail(workEmail string) (uint64, *Person, []Personnel, error)
}

PersonLookup is the interface used to look up a service member in DEERS

func InitRBSPersonLookup

func InitRBSPersonLookup(appCtx appcontext.AppContext, v *viper.Viper) (PersonLookup, error)

InitRBSPersonLookup is the RBS Person Lookup service

type PersonTypeCode

type PersonTypeCode string

PersonTypeCode is the code that represents a specific kind of person identifier.

const (
	// PersonTypeCodeDODBenefitNum indicates a DOD Benefit Number
	PersonTypeCodeDODBenefitNum PersonTypeCode = "B"
	// PersonTypeCodePlaceholder indicates a special 9-digit code created for individuals (i.e., babies) who do not have or have not provided an SSN when the record is added to DEERS (dependents only)
	PersonTypeCodePlaceholder PersonTypeCode = "D"
	// PersonTypeCodeEDIPI indicates a 10-digit Electronic Data Interchange Identifier; i.e., a DoD ID Number
	PersonTypeCodeEDIPI PersonTypeCode = "E"
	// PersonTypeCodeForeign indicates a special 9-digit code created for foreign military and nationals
	PersonTypeCodeForeign PersonTypeCode = "F"
	// PersonTypeCodeTaxID indicates a tax identification number
	PersonTypeCodeTaxID PersonTypeCode = "I"
	// PersonTypeCodePatient indicates a Patient Identifier
	PersonTypeCodePatient PersonTypeCode = "M"
	// PersonTypeCodeInvalid indicates an invalid SSN. The PN_ID was submitted as an SSN, but does not conform to the valid SSN structure. Obsolete value, no longer applied.
	PersonTypeCodeInvalid PersonTypeCode = "N"
	// PersonTypeCodePreSSNMilitary indicates a special 9-digit code created for U.S. military personnel from Service Numbers before the switch to Social Security Numbers
	PersonTypeCodePreSSNMilitary PersonTypeCode = "P"
	// PersonTypeCodeShyContractor indicates a special 9-digit code created for a DoD contractor who refused to give his or her SSN to RAPIDS; the associated PN_ID will begin with 99
	PersonTypeCodeShyContractor PersonTypeCode = "R"
	// PersonTypeCodeSSN indicates a 9-digit Social Security Number
	PersonTypeCodeSSN PersonTypeCode = "S"
	// PersonTypeCodeTest indicates a Test (858 series) identifier
	PersonTypeCodeTest PersonTypeCode = "T"
	// PersonTypeCodeNotAPersonID indicates "Not a Person Identifier" (Used only in DoD Bar Codes)
	PersonTypeCodeNotAPersonID PersonTypeCode = "X"
)

type Personnel

type Personnel struct {
	// The code that represents how the DoD personnel and/or finance center views the sponsor based on accountability and reporting strengths. (This attribute is similar to Member Category Code.)
	PnlCatCd PersonnelCategoryCode `xml:"PNL_CAT_CD,omitempty"`
	// The code that represents the organization that "owns" the DEERS population to which the sponsor belongs.
	OrgCd OrgCode `xml:"ORG_CD,omitempty"`
	// The text of a person's or organization's email address in the format xxx@xxxxxx.
	Email string `xml:"EMA_TX,omitempty"`
	// The code that represents the sponsor's rank.
	RankCd string `xml:"RANK_CD,omitempty"`
	// The code that represents the level of pay. (The combination of pay plan code and pay grade code represents the sponsor's pay category.)
	PgCd PayGradeCode `xml:"PG_CD,omitempty"`
	// The code that represents the type of pay category. (The combination of pay plan code and pay grade code represents the sponsor's pay category.)
	PayPlanCd PayPlanCode `xml:"PAY_PLN_CD,omitempty"`
	// The code that represents the branch classification of Service with which the sponsor is affiliated.
	SvcCd ServiceCode `xml:"SVC_CD,omitempty"`
}

Personnel contains the organizational and pay information corresponding to a Person

type PersonnelCategoryCode

type PersonnelCategoryCode string

PersonnelCategoryCode represents how the DoD personnel and/or finance center views the sponsor based on accountability and reporting strengths. (This attribute is similar to Member Category Code.)

const (
	// PersonnelCategoryCodeActiveDuty indicates an active duty member
	PersonnelCategoryCodeActiveDuty PersonnelCategoryCode = "A"
	// PersonnelCategoryCodeAppointee indicates Presidential Appointees of all Federal Government agencies
	PersonnelCategoryCodeAppointee PersonnelCategoryCode = "B"
	// PersonnelCategoryCodeDODCivilService indicates a DoD and Uniformed Service civil service employee, except Presidential appointee
	PersonnelCategoryCodeDODCivilService PersonnelCategoryCode = "C"
	// PersonnelCategoryCodeDisabled indicates a disabled American veteran
	PersonnelCategoryCodeDisabled PersonnelCategoryCode = "D"
	// PersonnelCategoryCodeDODContractEmployee indicates a DoD and Uniformed Service contract employee
	PersonnelCategoryCodeDODContractEmployee PersonnelCategoryCode = "E"
	// PersonnelCategoryCodeFormer indicates a former member (Reserve service, discharged from RR or SR following notification of retirement eligibility)
	PersonnelCategoryCodeFormer PersonnelCategoryCode = "F"
	// PersonnelCategoryCodeMedalOfHonor indicates a Medal of Honor recipient
	PersonnelCategoryCodeMedalOfHonor PersonnelCategoryCode = "H"
	// PersonnelCategoryCodeNonDODCivilService indicates a Non-DoD civil service employee, except Presidential appointee
	PersonnelCategoryCodeNonDODCivilService PersonnelCategoryCode = "I"
	// PersonnelCategoryCodeAcademyStudent indicates a Service Academy student
	PersonnelCategoryCodeAcademyStudent PersonnelCategoryCode = "J"
	// PersonnelCategoryCodeNAF indicates a non-appropriated fund DoD and Uniformed Service employee (NAF)
	PersonnelCategoryCodeNAF PersonnelCategoryCode = "K"
	// PersonnelCategoryCodeLighthouse indicates Lighthouse service - Obsolete
	PersonnelCategoryCodeLighthouse PersonnelCategoryCode = "L"
	// PersonnelCategoryCodeCivilianAssociate indicates non-federal Agency civilian associates
	PersonnelCategoryCodeCivilianAssociate PersonnelCategoryCode = "M"
	// PersonnelCategoryCodeNationalGuard indicates a National Guard member
	PersonnelCategoryCodeNationalGuard PersonnelCategoryCode = "N"
	// PersonnelCategoryCodeNonDODContractEmployee indicates a Non-DoD contract employee
	PersonnelCategoryCodeNonDODContractEmployee PersonnelCategoryCode = "O"
	// PersonnelCategoryCodeGrayAreaRetiree indicates a Reserve retiree not yet eligible for retired pay ("Gray Area Retiree")
	PersonnelCategoryCodeGrayAreaRetiree PersonnelCategoryCode = "Q"
	// PersonnelCategoryCodeRetiree indicates a retired military member eligible for retired pay
	PersonnelCategoryCodeRetiree PersonnelCategoryCode = "R"
	// PersonnelCategoryCodeForeignAffiliate indicates a Foreign Affiliate
	PersonnelCategoryCodeForeignAffiliate PersonnelCategoryCode = "T"
	// PersonnelCategoryCodeOCONUSHire indicates a DoD OCONUS Hire
	PersonnelCategoryCodeOCONUSHire PersonnelCategoryCode = "U"
	// PersonnelCategoryCodeReservist indicates a Reserve member
	PersonnelCategoryCodeReservist PersonnelCategoryCode = "V"
	// PersonnelCategoryCodeBeneficiary indicates a DoD Beneficiary, a person who receives benefits from the DoD based on prior association, condition or authorization, an example is a former spouse
	PersonnelCategoryCodeBeneficiary PersonnelCategoryCode = "W"
	// PersonnelCategoryCodeCivilianRetiree indicates a Civilian Retiree
	PersonnelCategoryCodeCivilianRetiree PersonnelCategoryCode = "Y"
)

type PidsRecord

type PidsRecord struct {
	MtchRsnCd MatchReasonCode `xml:"MTCH_RSN_CD"`
	Edipi     uint64          `xml:"DOD_EDI_PN_ID,omitempty"`
}

PidsRecord contains the match reason code and optionally the matched EDIPI for a PIDS query to IWS: RBS

type RBSPersonLookup

type RBSPersonLookup struct {
	Client http.Client
	Host   string
}

RBSPersonLookup handles requests to the Real-Time Broker Service

func NewRBSPersonLookup

func NewRBSPersonLookup(host string, dodCACertPackage string, certString string, keyString string) (*RBSPersonLookup, error)

NewRBSPersonLookup creates a new instance of RBSPersonLookup. This should only be instantiated once

func (RBSPersonLookup) GetPersonUsingEDIPI

func (r RBSPersonLookup) GetPersonUsingEDIPI(edipi uint64) (*Person, []Personnel, error)

GetPersonUsingEDIPI retrieves personal information through the IWS:RBS REST API using that person's EDIPI (aka DOD ID number). If matched succesfully, it returns the full name and SSN information, as well as the personnel information for each of the organizations the person belongs to

func (RBSPersonLookup) GetPersonUsingSSN

GetPersonUsingSSN retrieves personal information (including EDIPI) through the IWS:RBS REST API using a SSN, last name, and optionally a first name If matched succesfully, it returns the EDIPI, the full name and SSN information, and the personnel information for each of the organizations the person belongs to

func (RBSPersonLookup) GetPersonUsingWorkEmail

func (r RBSPersonLookup) GetPersonUsingWorkEmail(workEmail string) (uint64, *Person, []Personnel, error)

GetPersonUsingWorkEmail retrieves personal information (including SSN and EDIPI) through the IWS:RBS REST API using a work e-mail address. If matched succesfully, it returns the EDIPI, the full name and SSN information, and the personnel information for each of the organizations the person belongs to

type RbsError

type RbsError struct {
	XMLName      xml.Name `xml:"RbsError"`
	FaultCode    uint64   `xml:"faultCode"`
	FaultMessage string   `xml:"faultMessage"`
}

RbsError is the XML root tag for error replies from DMDC's Identity Web Services: Real-time Broker Service REST API

func (*RbsError) Error

func (e *RbsError) Error() string

type Record

type Record struct {
	XMLName    xml.Name   `xml:"record"`
	Rule       Rule       `xml:"rule"`
	Identifier Identifier `xml:"identifier"`
	AdrRecord  AdrRecord  `xml:"adrRecord"`
}

Record is the XML root tag for responses from DMDC's Identity Web Services: Real-time Broker Service REST API.

type Rule

type Rule struct {
	Customer      uint32 `xml:"customer"`
	SchemaName    string `xml:"schemaName"`
	SchemaVersion string `xml:"schemaVersion"`
}

Rule repeats back the ruleset used to query DMDC's Identity Web Services: Real-time Broker Service REST API

type ServiceCode

type ServiceCode string

ServiceCode represents the branch classification of Service with which the sponsor is affiliated.

const (
	// ServiceCodeForeignArmy means Foreign Army
	ServiceCodeForeignArmy ServiceCode = "1"
	// ServiceCodeForeignNavy means Foreign Navy
	ServiceCodeForeignNavy ServiceCode = "2"
	// ServiceCodeForeignMarineCorps means Foreign Marine Corps
	ServiceCodeForeignMarineCorps ServiceCode = "3"
	// ServiceCodeForeignAirForce means Foreign Air Force
	ServiceCodeForeignAirForce ServiceCode = "4"
	// ServiceCodeForeignCoastGuard means Foreign Coast Guard
	ServiceCodeForeignCoastGuard ServiceCode = "6"
	// ServiceCodeArmy means the United States Army
	ServiceCodeArmy ServiceCode = "A"
	// ServiceCodeCoastGuard means the United States Coast Guard
	ServiceCodeCoastGuard ServiceCode = "C"
	// ServiceCodeOSD means the Office of the Secretary of Defense
	ServiceCodeOSD ServiceCode = "D"
	// ServiceCodeAirForce means the United States Air Force
	ServiceCodeAirForce ServiceCode = "F"
	// ServiceCodePublicHealth means the Commissioned Corps of the Public Health Service
	ServiceCodePublicHealth ServiceCode = "H"
	// ServiceCodeMarineCorps means the United States Marine Corps
	ServiceCodeMarineCorps ServiceCode = "M"
	// ServiceCodeNavy means the United States Navy
	ServiceCodeNavy ServiceCode = "N"
	// ServiceCodeNOAA means the Commissioned Corps of the National Oceanic and Atmospheric Administration
	ServiceCodeNOAA ServiceCode = "O"
	// ServiceCodeNotApplicable means Not applicable
	ServiceCodeNotApplicable ServiceCode = "X"
	// ServiceCodeUnknown means Unknown
	ServiceCodeUnknown ServiceCode = "Z"
)

type SysPnIDTypeCode

type SysPnIDTypeCode string

SysPnIDTypeCode represents a specific kind of person identifier.

const (
	// SysPnIDTypeCodeVAIC indicates a Veterans Administration Integration Control Number
	SysPnIDTypeCodeVAIC SysPnIDTypeCode = "IC"
	// SysPnIDTypeCodeInterim indicates an Interim Person Identifier
	SysPnIDTypeCodeInterim SysPnIDTypeCode = "IP"
)

type TestingPersonLookup

type TestingPersonLookup struct{}

TestingPersonLookup is a mock of RBS that returns dummy data

func NewTestingPersonLookup

func NewTestingPersonLookup() (*TestingPersonLookup, error)

NewTestingPersonLookup returns a new Testing Person Lookup

func (TestingPersonLookup) GetPersonUsingEDIPI

func (r TestingPersonLookup) GetPersonUsingEDIPI(_ uint64) (*Person, []Personnel, error)

GetPersonUsingEDIPI returns a static dummy RBS result

func (TestingPersonLookup) GetPersonUsingSSN

GetPersonUsingSSN returns a static dummy RBS result

func (TestingPersonLookup) GetPersonUsingWorkEmail

func (r TestingPersonLookup) GetPersonUsingWorkEmail(_ string) (uint64, *Person, []Personnel, error)

GetPersonUsingWorkEmail returns a static dummy RBS result

type TidsMatchReasonCode

type TidsMatchReasonCode string

TidsMatchReasonCode is the reason code a TOKEN could or could not be returned.

const (
	// TidsMatchReasonCodeValid indicates that the Token is valid and current.
	TidsMatchReasonCodeValid TidsMatchReasonCode = "M"
	// TidsMatchReasonCodeValidMultiple indicates that the Token(s) is valid for multiple individuals (data for most recently issued token is returned; token may be a partial match).
	TidsMatchReasonCodeValidMultiple TidsMatchReasonCode = "A"
	// TidsMatchReasonCodeLimited indicates that the Token is valid and current for person & ORG_ID only.
	TidsMatchReasonCodeLimited TidsMatchReasonCode = "P"
	// TidsMatchReasonCodeInvalid indicates that the Token is invalid or expired.
	TidsMatchReasonCodeInvalid TidsMatchReasonCode = "N"
	// TidsMatchReasonCodeLost that the Token is Lost or Stolen.
	TidsMatchReasonCodeLost TidsMatchReasonCode = "L"
	// TidsMatchReasonCodeTerminated indicates that the Token has been Terminated.
	TidsMatchReasonCodeTerminated TidsMatchReasonCode = "T"
	// TidsMatchReasonCodeExpired indicates that the Token has Expired.
	TidsMatchReasonCodeExpired TidsMatchReasonCode = "E"
)

type TidsRecord

type TidsRecord struct {
	// TidsMtchRsnCd indicates the reason code a TOKEN could or could not be returned.
	TidsMtchRsnCd TidsMatchReasonCode `xml:"TIDS_MTCH_RSN_CD"`
	Edipi         uint64              `xml:"DOD_EDI_PN_ID"`
	// OrgID is the identifier of the organization.
	OrgID       OrgID                `xml:"ORG_ID"`
	OrgAscCatCd OrgAssocCategoryCode `xml:"ORG_ASC_CAT_CD"`
}

TidsRecord contains information related to a TOKEN query

type WkEmaRecord

type WkEmaRecord struct {
	Edipi uint64 `xml:"DOD_EDI_PN_ID"`
	Email string `xml:"EMA_TX"`
}

WkEmaRecord contains the EDIPI and work e-mail address of an individual

Jump to

Keyboard shortcuts

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