-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Google Maps Coordinate SDK.
--   
--   Lets you view and manage jobs in a Coordinate team.
--   
--   <i>Warning:</i> This is an experimental prototype/preview release
--   which is still under exploratory development and not intended for
--   public use, caveat emptor!
--   
--   This library is compatible with version <tt>v1</tt> of the API.
@package gogol-maps-coordinate
@version 0.3.0


module Network.Google.MapsCoordinate.Types

-- | Default request referring to version <tt>v1</tt> of the Google Maps
--   Coordinate API. This contains the host and root path used as a
--   starting point for constructing service requests.
mapsCoordinateService :: ServiceConfig

-- | View and manage your Google Maps Coordinate jobs
coordinateScope :: Proxy '["https://www.googleapis.com/auth/coordinate"]

-- | View your Google Coordinate jobs
coordinateReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/coordinate.readonly"]

-- | Response from a List Locations request.
--   
--   <i>See:</i> <a>locationListResponse</a> smart constructor.
data LocationListResponse

-- | Creates a value of <a>LocationListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>llrTokenPagination</a></li>
--   <li><a>llrNextPageToken</a></li>
--   <li><a>llrKind</a></li>
--   <li><a>llrItems</a></li>
--   </ul>
locationListResponse :: LocationListResponse

-- | Pagination information for token pagination.
llrTokenPagination :: Lens' LocationListResponse (Maybe TokenPagination)

-- | A token to provide to get the next page of results.
llrNextPageToken :: Lens' LocationListResponse (Maybe Text)

-- | Identifies this object as a list of locations.
llrKind :: Lens' LocationListResponse Text

-- | Locations in the collection.
llrItems :: Lens' LocationListResponse [LocationRecord]

-- | Job progress
data JobsPatchProgress

-- | <tt>COMPLETED</tt> Completed
Completed :: JobsPatchProgress

-- | <tt>IN_PROGRESS</tt> In progress
InProgress :: JobsPatchProgress

-- | <tt>NOT_ACCEPTED</tt> Not accepted
NotAccepted :: JobsPatchProgress

-- | <tt>NOT_STARTED</tt> Not started
NotStarted :: JobsPatchProgress

-- | <tt>OBSOLETE</tt> Obsolete
Obsolete :: JobsPatchProgress

-- | Pagination information.
--   
--   <i>See:</i> <a>tokenPagination</a> smart constructor.
data TokenPagination

-- | Creates a value of <a>TokenPagination</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tpNextPageToken</a></li>
--   <li><a>tpKind</a></li>
--   <li><a>tpPreviousPageToken</a></li>
--   </ul>
tokenPagination :: TokenPagination

-- | A token to provide to get the next page of results.
tpNextPageToken :: Lens' TokenPagination (Maybe Text)

-- | Identifies this object as pagination information.
tpKind :: Lens' TokenPagination Text

-- | A token to provide to get the previous page of results.
tpPreviousPageToken :: Lens' TokenPagination (Maybe Text)

-- | Response from a List Workers request.
--   
--   <i>See:</i> <a>workerListResponse</a> smart constructor.
data WorkerListResponse

-- | Creates a value of <a>WorkerListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wlrKind</a></li>
--   <li><a>wlrItems</a></li>
--   </ul>
workerListResponse :: WorkerListResponse

-- | Identifies this object as a list of workers.
wlrKind :: Lens' WorkerListResponse Text

-- | Workers in the collection.
wlrItems :: Lens' WorkerListResponse [Worker]

-- | Job schedule.
--   
--   <i>See:</i> <a>schedule</a> smart constructor.
data Schedule

-- | Creates a value of <a>Schedule</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sAllDay</a></li>
--   <li><a>sStartTime</a></li>
--   <li><a>sKind</a></li>
--   <li><a>sEndTime</a></li>
--   <li><a>sDuration</a></li>
--   </ul>
schedule :: Schedule

-- | Whether the job is scheduled for the whole day. Time of day in
--   start/end times is ignored if this is true.
sAllDay :: Lens' Schedule (Maybe Bool)

-- | Scheduled start time in milliseconds since epoch.
sStartTime :: Lens' Schedule (Maybe Word64)

-- | Identifies this object as a job schedule.
sKind :: Lens' Schedule Text

-- | Scheduled end time in milliseconds since epoch.
sEndTime :: Lens' Schedule (Maybe Word64)

-- | Job duration in milliseconds.
sDuration :: Lens' Schedule (Maybe Word64)

-- | Location of a job.
--   
--   <i>See:</i> <a>location</a> smart constructor.
data Location

-- | Creates a value of <a>Location</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lAddressLine</a></li>
--   <li><a>lKind</a></li>
--   <li><a>lLat</a></li>
--   <li><a>lLng</a></li>
--   </ul>
location :: Location

-- | Address.
lAddressLine :: Lens' Location [Text]

-- | Identifies this object as a location.
lKind :: Lens' Location Text

-- | Latitude.
lLat :: Lens' Location (Maybe Double)

-- | Longitude.
lLng :: Lens' Location (Maybe Double)

-- | Job progress
data JobsUpdateProgress

-- | <tt>COMPLETED</tt> Completed
JUPCompleted :: JobsUpdateProgress

-- | <tt>IN_PROGRESS</tt> In progress
JUPInProgress :: JobsUpdateProgress

-- | <tt>NOT_ACCEPTED</tt> Not accepted
JUPNotAccepted :: JobsUpdateProgress

-- | <tt>NOT_STARTED</tt> Not started
JUPNotStarted :: JobsUpdateProgress

-- | <tt>OBSOLETE</tt> Obsolete
JUPObsolete :: JobsUpdateProgress

-- | Current state of a job.
--   
--   <i>See:</i> <a>jobState</a> smart constructor.
data JobState

-- | Creates a value of <a>JobState</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jsLocation</a></li>
--   <li><a>jsProgress</a></li>
--   <li><a>jsNote</a></li>
--   <li><a>jsKind</a></li>
--   <li><a>jsCustomerPhoneNumber</a></li>
--   <li><a>jsCustomerName</a></li>
--   <li><a>jsAssignee</a></li>
--   <li><a>jsCustomFields</a></li>
--   <li><a>jsTitle</a></li>
--   </ul>
jobState :: JobState

-- | Job location.
jsLocation :: Lens' JobState (Maybe Location)

-- | Job progress.
jsProgress :: Lens' JobState (Maybe Text)

-- | Note added to the job.
jsNote :: Lens' JobState [Text]

-- | Identifies this object as a job state.
jsKind :: Lens' JobState Text

-- | Customer phone number.
jsCustomerPhoneNumber :: Lens' JobState (Maybe Text)

-- | Customer name.
jsCustomerName :: Lens' JobState (Maybe Text)

-- | Email address of the assignee, or the string "DELETED_USER" if the
--   account is no longer available.
jsAssignee :: Lens' JobState (Maybe Text)

-- | Custom fields.
jsCustomFields :: Lens' JobState (Maybe CustomFields)

-- | Job title.
jsTitle :: Lens' JobState (Maybe Text)

-- | Custom field definition.
--   
--   <i>See:</i> <a>customFieldDef</a> smart constructor.
data CustomFieldDef

-- | Creates a value of <a>CustomFieldDef</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cfdEnabled</a></li>
--   <li><a>cfdKind</a></li>
--   <li><a>cfdName</a></li>
--   <li><a>cfdRequiredForCheckout</a></li>
--   <li><a>cfdId</a></li>
--   <li><a>cfdEnumitems</a></li>
--   <li><a>cfdType</a></li>
--   </ul>
customFieldDef :: CustomFieldDef

-- | Whether the field is enabled.
cfdEnabled :: Lens' CustomFieldDef (Maybe Bool)

-- | Identifies this object as a custom field definition.
cfdKind :: Lens' CustomFieldDef Text

-- | Custom field name.
cfdName :: Lens' CustomFieldDef (Maybe Text)

-- | Whether the field is required for checkout.
cfdRequiredForCheckout :: Lens' CustomFieldDef (Maybe Bool)

-- | Custom field id.
cfdId :: Lens' CustomFieldDef (Maybe Int64)

-- | List of enum items for this custom field. Populated only if the field
--   type is enum. Enum fields appear as 'lists' in the Coordinate web and
--   mobile UI.
cfdEnumitems :: Lens' CustomFieldDef [EnumItemDef]

-- | Custom field type.
cfdType :: Lens' CustomFieldDef (Maybe Text)

-- | Response from a List Jobs request.
--   
--   <i>See:</i> <a>jobListResponse</a> smart constructor.
data JobListResponse

-- | Creates a value of <a>JobListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jlrNextPageToken</a></li>
--   <li><a>jlrKind</a></li>
--   <li><a>jlrItems</a></li>
--   </ul>
jobListResponse :: JobListResponse

-- | A token to provide to get the next page of results.
jlrNextPageToken :: Lens' JobListResponse (Maybe Text)

-- | Identifies this object as a list of jobs.
jlrKind :: Lens' JobListResponse Text

-- | Jobs in the collection.
jlrItems :: Lens' JobListResponse [Job]

-- | Change to a job. For example assigning the job to a different worker.
--   
--   <i>See:</i> <a>jobChange</a> smart constructor.
data JobChange

-- | Creates a value of <a>JobChange</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jcState</a></li>
--   <li><a>jcKind</a></li>
--   <li><a>jcTimestamp</a></li>
--   </ul>
jobChange :: JobChange

-- | Change applied to the job. Only the fields that were changed are set.
jcState :: Lens' JobChange (Maybe JobState)

-- | Identifies this object as a job change.
jcKind :: Lens' JobChange Text

-- | Time at which this change was applied.
jcTimestamp :: Lens' JobChange (Maybe Word64)

-- | Response from a List Teams request.
--   
--   <i>See:</i> <a>teamListResponse</a> smart constructor.
data TeamListResponse

-- | Creates a value of <a>TeamListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tlrKind</a></li>
--   <li><a>tlrItems</a></li>
--   </ul>
teamListResponse :: TeamListResponse

-- | Identifies this object as a list of teams.
tlrKind :: Lens' TeamListResponse Text

-- | Teams in the collection.
tlrItems :: Lens' TeamListResponse [Team]

-- | Collection of custom field definitions for a team.
--   
--   <i>See:</i> <a>customFieldDefListResponse</a> smart constructor.
data CustomFieldDefListResponse

-- | Creates a value of <a>CustomFieldDefListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cfdlrKind</a></li>
--   <li><a>cfdlrItems</a></li>
--   </ul>
customFieldDefListResponse :: CustomFieldDefListResponse

-- | Identifies this object as a collection of custom field definitions in
--   a team.
cfdlrKind :: Lens' CustomFieldDefListResponse Text

-- | Collection of custom field definitions in a team.
cfdlrItems :: Lens' CustomFieldDefListResponse [CustomFieldDef]

-- | A job.
--   
--   <i>See:</i> <a>job</a> smart constructor.
data Job

-- | Creates a value of <a>Job</a> with the minimum fields required to make
--   a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jState</a></li>
--   <li><a>jKind</a></li>
--   <li><a>jJobChange</a></li>
--   <li><a>jId</a></li>
--   </ul>
job :: Job

-- | Current job state.
jState :: Lens' Job (Maybe JobState)

-- | Identifies this object as a job.
jKind :: Lens' Job Text

-- | List of job changes since it was created. The first change corresponds
--   to the state of the job when it was created.
jJobChange :: Lens' Job [JobChange]

-- | Job id.
jId :: Lens' Job (Maybe Word64)

-- | Collection of custom fields.
--   
--   <i>See:</i> <a>customFields</a> smart constructor.
data CustomFields

-- | Creates a value of <a>CustomFields</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cfKind</a></li>
--   <li><a>cfCustomField</a></li>
--   </ul>
customFields :: CustomFields

-- | Identifies this object as a collection of custom fields.
cfKind :: Lens' CustomFields Text

-- | Collection of custom fields.
cfCustomField :: Lens' CustomFields [CustomField]

-- | A Coordinate team.
--   
--   <i>See:</i> <a>team</a> smart constructor.
data Team

-- | Creates a value of <a>Team</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tKind</a></li>
--   <li><a>tName</a></li>
--   <li><a>tId</a></li>
--   </ul>
team :: Team

-- | Identifies this object as a team.
tKind :: Lens' Team Text

-- | Team name
tName :: Lens' Team (Maybe Text)

-- | Team id, as found in a coordinate team url e.g.
--   https://coordinate.google.com/f/xyz where "xyz" is the team id.
tId :: Lens' Team (Maybe Text)

-- | Recorded location of a worker.
--   
--   <i>See:</i> <a>locationRecord</a> smart constructor.
data LocationRecord

-- | Creates a value of <a>LocationRecord</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lrKind</a></li>
--   <li><a>lrLatitude</a></li>
--   <li><a>lrConfidenceRadius</a></li>
--   <li><a>lrLongitude</a></li>
--   <li><a>lrCollectionTime</a></li>
--   </ul>
locationRecord :: LocationRecord

-- | Identifies this object as a location.
lrKind :: Lens' LocationRecord Text

-- | Latitude.
lrLatitude :: Lens' LocationRecord (Maybe Double)

-- | The location accuracy in meters. This is the radius of a 95%
--   confidence interval around the location measurement.
lrConfidenceRadius :: Lens' LocationRecord (Maybe Double)

-- | Longitude.
lrLongitude :: Lens' LocationRecord (Maybe Double)

-- | The collection time in milliseconds since the epoch.
lrCollectionTime :: Lens' LocationRecord (Maybe Int64)

-- | A worker in a Coordinate team.
--   
--   <i>See:</i> <a>worker</a> smart constructor.
data Worker

-- | Creates a value of <a>Worker</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wKind</a></li>
--   <li><a>wId</a></li>
--   </ul>
worker :: Worker

-- | Identifies this object as a worker.
wKind :: Lens' Worker Text

-- | Worker email address. If a worker has been deleted from your team, the
--   email address will appear as DELETED_USER.
wId :: Lens' Worker (Maybe Text)

-- | Custom field.
--   
--   <i>See:</i> <a>customField</a> smart constructor.
data CustomField

-- | Creates a value of <a>CustomField</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cCustomFieldId</a></li>
--   <li><a>cKind</a></li>
--   <li><a>cValue</a></li>
--   </ul>
customField :: CustomField

-- | Custom field id.
cCustomFieldId :: Lens' CustomField (Maybe Int64)

-- | Identifies this object as a custom field.
cKind :: Lens' CustomField Text

-- | Custom field value.
cValue :: Lens' CustomField (Maybe Text)

-- | Enum Item definition.
--   
--   <i>See:</i> <a>enumItemDef</a> smart constructor.
data EnumItemDef

-- | Creates a value of <a>EnumItemDef</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eidKind</a></li>
--   <li><a>eidValue</a></li>
--   <li><a>eidActive</a></li>
--   </ul>
enumItemDef :: EnumItemDef

-- | Identifies this object as an enum item definition.
eidKind :: Lens' EnumItemDef Text

-- | Custom field value.
eidValue :: Lens' EnumItemDef (Maybe Text)

-- | Whether the enum item is active. Jobs may contain inactive enum
--   values; however, setting an enum to an inactive value when creating or
--   updating a job will result in a 500 error.
eidActive :: Lens' EnumItemDef (Maybe Bool)


-- | Retrieves a list of custom field definitions for a team.
--   
--   <i>See:</i> <a>Google Maps Coordinate API Reference</a> for
--   <tt>coordinate.customFieldDef.list</tt>.
module Network.Google.Resource.Coordinate.CustomFieldDef.List

-- | A resource alias for <tt>coordinate.customFieldDef.list</tt> method
--   which the <a>CustomFieldDefList</a> request conforms to.
type CustomFieldDefListResource = "coordinate" :> ("v1" :> ("teams" :> (Capture "teamId" Text :> ("custom_fields" :> (QueryParam "alt" AltJSON :> Get '[JSON] CustomFieldDefListResponse)))))

-- | Creates a value of <a>CustomFieldDefList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cfdlTeamId</a></li>
--   </ul>
customFieldDefList :: Text -> CustomFieldDefList

-- | Retrieves a list of custom field definitions for a team.
--   
--   <i>See:</i> <a>customFieldDefList</a> smart constructor.
data CustomFieldDefList

-- | Team ID
cfdlTeamId :: Lens' CustomFieldDefList Text
instance GHC.Generics.Generic Network.Google.Resource.Coordinate.CustomFieldDef.List.CustomFieldDefList
instance Data.Data.Data Network.Google.Resource.Coordinate.CustomFieldDef.List.CustomFieldDefList
instance GHC.Show.Show Network.Google.Resource.Coordinate.CustomFieldDef.List.CustomFieldDefList
instance GHC.Classes.Eq Network.Google.Resource.Coordinate.CustomFieldDef.List.CustomFieldDefList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Coordinate.CustomFieldDef.List.CustomFieldDefList


-- | Retrieves a job, including all the changes made to the job.
--   
--   <i>See:</i> <a>Google Maps Coordinate API Reference</a> for
--   <tt>coordinate.jobs.get</tt>.
module Network.Google.Resource.Coordinate.Jobs.Get

-- | A resource alias for <tt>coordinate.jobs.get</tt> method which the
--   <a>JobsGet</a> request conforms to.
type JobsGetResource = "coordinate" :> ("v1" :> ("teams" :> (Capture "teamId" Text :> ("jobs" :> (Capture "jobId" (Textual Word64) :> (QueryParam "alt" AltJSON :> Get '[JSON] Job))))))

-- | Creates a value of <a>JobsGet</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jgJobId</a></li>
--   <li><a>jgTeamId</a></li>
--   </ul>
jobsGet :: Word64 -> Text -> JobsGet

-- | Retrieves a job, including all the changes made to the job.
--   
--   <i>See:</i> <a>jobsGet</a> smart constructor.
data JobsGet

-- | Job number
jgJobId :: Lens' JobsGet Word64

-- | Team ID
jgTeamId :: Lens' JobsGet Text
instance GHC.Generics.Generic Network.Google.Resource.Coordinate.Jobs.Get.JobsGet
instance Data.Data.Data Network.Google.Resource.Coordinate.Jobs.Get.JobsGet
instance GHC.Show.Show Network.Google.Resource.Coordinate.Jobs.Get.JobsGet
instance GHC.Classes.Eq Network.Google.Resource.Coordinate.Jobs.Get.JobsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Coordinate.Jobs.Get.JobsGet


-- | Inserts a new job. Only the state field of the job should be set.
--   
--   <i>See:</i> <a>Google Maps Coordinate API Reference</a> for
--   <tt>coordinate.jobs.insert</tt>.
module Network.Google.Resource.Coordinate.Jobs.Insert

-- | A resource alias for <tt>coordinate.jobs.insert</tt> method which the
--   <a>JobsInsert</a> request conforms to.
type JobsInsertResource = "coordinate" :> ("v1" :> ("teams" :> (Capture "teamId" Text :> ("jobs" :> (QueryParam "address" Text :> (QueryParam "lat" (Textual Double) :> (QueryParam "lng" (Textual Double) :> (QueryParam "title" Text :> (QueryParam "note" Text :> (QueryParam "customerPhoneNumber" Text :> (QueryParam "customerName" Text :> (QueryParam "assignee" Text :> (QueryParams "customField" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Job :> Post '[JSON] Job)))))))))))))))

-- | Creates a value of <a>JobsInsert</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jiNote</a></li>
--   <li><a>jiTeamId</a></li>
--   <li><a>jiCustomerPhoneNumber</a></li>
--   <li><a>jiCustomerName</a></li>
--   <li><a>jiAddress</a></li>
--   <li><a>jiPayload</a></li>
--   <li><a>jiAssignee</a></li>
--   <li><a>jiLat</a></li>
--   <li><a>jiLng</a></li>
--   <li><a>jiTitle</a></li>
--   <li><a>jiCustomField</a></li>
--   </ul>
jobsInsert :: Text -> Text -> Job -> Double -> Double -> Text -> JobsInsert

-- | Inserts a new job. Only the state field of the job should be set.
--   
--   <i>See:</i> <a>jobsInsert</a> smart constructor.
data JobsInsert

-- | Job note as newline (Unix) separated string
jiNote :: Lens' JobsInsert (Maybe Text)

-- | Team ID
jiTeamId :: Lens' JobsInsert Text

-- | Customer phone number
jiCustomerPhoneNumber :: Lens' JobsInsert (Maybe Text)

-- | Customer name
jiCustomerName :: Lens' JobsInsert (Maybe Text)

-- | Job address as newline (Unix) separated string
jiAddress :: Lens' JobsInsert Text

-- | Multipart request metadata.
jiPayload :: Lens' JobsInsert Job

-- | Assignee email address, or empty string to unassign.
jiAssignee :: Lens' JobsInsert (Maybe Text)

-- | The latitude coordinate of this job's location.
jiLat :: Lens' JobsInsert Double

-- | The longitude coordinate of this job's location.
jiLng :: Lens' JobsInsert Double

-- | Job title
jiTitle :: Lens' JobsInsert Text

-- | Sets the value of custom fields. To set a custom field, pass the field
--   id (from /team/teamId/custom_fields), a URL escaped '=' character, and
--   the desired value as a parameter. For example, customField=12%3DAlice.
--   Repeat the parameter for each custom field. Note that '=' cannot
--   appear in the parameter value. Specifying an invalid, or inactive enum
--   field will result in an error 500.
jiCustomField :: Lens' JobsInsert [Text]
instance GHC.Generics.Generic Network.Google.Resource.Coordinate.Jobs.Insert.JobsInsert
instance Data.Data.Data Network.Google.Resource.Coordinate.Jobs.Insert.JobsInsert
instance GHC.Show.Show Network.Google.Resource.Coordinate.Jobs.Insert.JobsInsert
instance GHC.Classes.Eq Network.Google.Resource.Coordinate.Jobs.Insert.JobsInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Coordinate.Jobs.Insert.JobsInsert


-- | Retrieves jobs created or modified since the given timestamp.
--   
--   <i>See:</i> <a>Google Maps Coordinate API Reference</a> for
--   <tt>coordinate.jobs.list</tt>.
module Network.Google.Resource.Coordinate.Jobs.List

-- | A resource alias for <tt>coordinate.jobs.list</tt> method which the
--   <a>JobsList</a> request conforms to.
type JobsListResource = "coordinate" :> ("v1" :> ("teams" :> (Capture "teamId" Text :> ("jobs" :> (QueryParam "minModifiedTimestampMs" (Textual Word64) :> (QueryParam "omitJobChanges" Bool :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] JobListResponse)))))))))

-- | Creates a value of <a>JobsList</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jlTeamId</a></li>
--   <li><a>jlMinModifiedTimestampMs</a></li>
--   <li><a>jlOmitJobChanges</a></li>
--   <li><a>jlPageToken</a></li>
--   <li><a>jlMaxResults</a></li>
--   </ul>
jobsList :: Text -> JobsList

-- | Retrieves jobs created or modified since the given timestamp.
--   
--   <i>See:</i> <a>jobsList</a> smart constructor.
data JobsList

-- | Team ID
jlTeamId :: Lens' JobsList Text

-- | Minimum time a job was modified in milliseconds since epoch.
jlMinModifiedTimestampMs :: Lens' JobsList (Maybe Word64)

-- | Whether to omit detail job history information.
jlOmitJobChanges :: Lens' JobsList (Maybe Bool)

-- | Continuation token
jlPageToken :: Lens' JobsList (Maybe Text)

-- | Maximum number of results to return in one page.
jlMaxResults :: Lens' JobsList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.Coordinate.Jobs.List.JobsList
instance Data.Data.Data Network.Google.Resource.Coordinate.Jobs.List.JobsList
instance GHC.Show.Show Network.Google.Resource.Coordinate.Jobs.List.JobsList
instance GHC.Classes.Eq Network.Google.Resource.Coordinate.Jobs.List.JobsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Coordinate.Jobs.List.JobsList


-- | Updates a job. Fields that are set in the job state will be updated.
--   This method supports patch semantics.
--   
--   <i>See:</i> <a>Google Maps Coordinate API Reference</a> for
--   <tt>coordinate.jobs.patch</tt>.
module Network.Google.Resource.Coordinate.Jobs.Patch

-- | A resource alias for <tt>coordinate.jobs.patch</tt> method which the
--   <a>JobsPatch</a> request conforms to.
type JobsPatchResource = "coordinate" :> ("v1" :> ("teams" :> (Capture "teamId" Text :> ("jobs" :> (Capture "jobId" (Textual Word64) :> (QueryParam "progress" JobsPatchProgress :> (QueryParam "note" Text :> (QueryParam "customerPhoneNumber" Text :> (QueryParam "customerName" Text :> (QueryParam "address" Text :> (QueryParam "assignee" Text :> (QueryParam "lat" (Textual Double) :> (QueryParam "lng" (Textual Double) :> (QueryParam "title" Text :> (QueryParams "customField" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Job :> Patch '[JSON] Job)))))))))))))))))

-- | Creates a value of <a>JobsPatch</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jpJobId</a></li>
--   <li><a>jpProgress</a></li>
--   <li><a>jpNote</a></li>
--   <li><a>jpTeamId</a></li>
--   <li><a>jpCustomerPhoneNumber</a></li>
--   <li><a>jpCustomerName</a></li>
--   <li><a>jpAddress</a></li>
--   <li><a>jpPayload</a></li>
--   <li><a>jpAssignee</a></li>
--   <li><a>jpLat</a></li>
--   <li><a>jpLng</a></li>
--   <li><a>jpTitle</a></li>
--   <li><a>jpCustomField</a></li>
--   </ul>
jobsPatch :: Word64 -> Text -> Job -> JobsPatch

-- | Updates a job. Fields that are set in the job state will be updated.
--   This method supports patch semantics.
--   
--   <i>See:</i> <a>jobsPatch</a> smart constructor.
data JobsPatch

-- | Job number
jpJobId :: Lens' JobsPatch Word64

-- | Job progress
jpProgress :: Lens' JobsPatch (Maybe JobsPatchProgress)

-- | Job note as newline (Unix) separated string
jpNote :: Lens' JobsPatch (Maybe Text)

-- | Team ID
jpTeamId :: Lens' JobsPatch Text

-- | Customer phone number
jpCustomerPhoneNumber :: Lens' JobsPatch (Maybe Text)

-- | Customer name
jpCustomerName :: Lens' JobsPatch (Maybe Text)

-- | Job address as newline (Unix) separated string
jpAddress :: Lens' JobsPatch (Maybe Text)

-- | Multipart request metadata.
jpPayload :: Lens' JobsPatch Job

-- | Assignee email address, or empty string to unassign.
jpAssignee :: Lens' JobsPatch (Maybe Text)

-- | The latitude coordinate of this job's location.
jpLat :: Lens' JobsPatch (Maybe Double)

-- | The longitude coordinate of this job's location.
jpLng :: Lens' JobsPatch (Maybe Double)

-- | Job title
jpTitle :: Lens' JobsPatch (Maybe Text)

-- | Sets the value of custom fields. To set a custom field, pass the field
--   id (from /team/teamId/custom_fields), a URL escaped '=' character, and
--   the desired value as a parameter. For example, customField=12%3DAlice.
--   Repeat the parameter for each custom field. Note that '=' cannot
--   appear in the parameter value. Specifying an invalid, or inactive enum
--   field will result in an error 500.
jpCustomField :: Lens' JobsPatch [Text]
instance GHC.Generics.Generic Network.Google.Resource.Coordinate.Jobs.Patch.JobsPatch
instance Data.Data.Data Network.Google.Resource.Coordinate.Jobs.Patch.JobsPatch
instance GHC.Show.Show Network.Google.Resource.Coordinate.Jobs.Patch.JobsPatch
instance GHC.Classes.Eq Network.Google.Resource.Coordinate.Jobs.Patch.JobsPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Coordinate.Jobs.Patch.JobsPatch


-- | Updates a job. Fields that are set in the job state will be updated.
--   
--   <i>See:</i> <a>Google Maps Coordinate API Reference</a> for
--   <tt>coordinate.jobs.update</tt>.
module Network.Google.Resource.Coordinate.Jobs.Update

-- | A resource alias for <tt>coordinate.jobs.update</tt> method which the
--   <a>JobsUpdate</a> request conforms to.
type JobsUpdateResource = "coordinate" :> ("v1" :> ("teams" :> (Capture "teamId" Text :> ("jobs" :> (Capture "jobId" (Textual Word64) :> (QueryParam "progress" JobsUpdateProgress :> (QueryParam "note" Text :> (QueryParam "customerPhoneNumber" Text :> (QueryParam "customerName" Text :> (QueryParam "address" Text :> (QueryParam "assignee" Text :> (QueryParam "lat" (Textual Double) :> (QueryParam "lng" (Textual Double) :> (QueryParam "title" Text :> (QueryParams "customField" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Job :> Put '[JSON] Job)))))))))))))))))

-- | Creates a value of <a>JobsUpdate</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>juJobId</a></li>
--   <li><a>juProgress</a></li>
--   <li><a>juNote</a></li>
--   <li><a>juTeamId</a></li>
--   <li><a>juCustomerPhoneNumber</a></li>
--   <li><a>juCustomerName</a></li>
--   <li><a>juAddress</a></li>
--   <li><a>juPayload</a></li>
--   <li><a>juAssignee</a></li>
--   <li><a>juLat</a></li>
--   <li><a>juLng</a></li>
--   <li><a>juTitle</a></li>
--   <li><a>juCustomField</a></li>
--   </ul>
jobsUpdate :: Word64 -> Text -> Job -> JobsUpdate

-- | Updates a job. Fields that are set in the job state will be updated.
--   
--   <i>See:</i> <a>jobsUpdate</a> smart constructor.
data JobsUpdate

-- | Job number
juJobId :: Lens' JobsUpdate Word64

-- | Job progress
juProgress :: Lens' JobsUpdate (Maybe JobsUpdateProgress)

-- | Job note as newline (Unix) separated string
juNote :: Lens' JobsUpdate (Maybe Text)

-- | Team ID
juTeamId :: Lens' JobsUpdate Text

-- | Customer phone number
juCustomerPhoneNumber :: Lens' JobsUpdate (Maybe Text)

-- | Customer name
juCustomerName :: Lens' JobsUpdate (Maybe Text)

-- | Job address as newline (Unix) separated string
juAddress :: Lens' JobsUpdate (Maybe Text)

-- | Multipart request metadata.
juPayload :: Lens' JobsUpdate Job

-- | Assignee email address, or empty string to unassign.
juAssignee :: Lens' JobsUpdate (Maybe Text)

-- | The latitude coordinate of this job's location.
juLat :: Lens' JobsUpdate (Maybe Double)

-- | The longitude coordinate of this job's location.
juLng :: Lens' JobsUpdate (Maybe Double)

-- | Job title
juTitle :: Lens' JobsUpdate (Maybe Text)

-- | Sets the value of custom fields. To set a custom field, pass the field
--   id (from /team/teamId/custom_fields), a URL escaped '=' character, and
--   the desired value as a parameter. For example, customField=12%3DAlice.
--   Repeat the parameter for each custom field. Note that '=' cannot
--   appear in the parameter value. Specifying an invalid, or inactive enum
--   field will result in an error 500.
juCustomField :: Lens' JobsUpdate [Text]
instance GHC.Generics.Generic Network.Google.Resource.Coordinate.Jobs.Update.JobsUpdate
instance Data.Data.Data Network.Google.Resource.Coordinate.Jobs.Update.JobsUpdate
instance GHC.Show.Show Network.Google.Resource.Coordinate.Jobs.Update.JobsUpdate
instance GHC.Classes.Eq Network.Google.Resource.Coordinate.Jobs.Update.JobsUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Coordinate.Jobs.Update.JobsUpdate


-- | Retrieves a list of locations for a worker.
--   
--   <i>See:</i> <a>Google Maps Coordinate API Reference</a> for
--   <tt>coordinate.location.list</tt>.
module Network.Google.Resource.Coordinate.Location.List

-- | A resource alias for <tt>coordinate.location.list</tt> method which
--   the <a>LocationList</a> request conforms to.
type LocationListResource = "coordinate" :> ("v1" :> ("teams" :> (Capture "teamId" Text :> ("workers" :> (Capture "workerEmail" Text :> ("locations" :> (QueryParam "startTimestampMs" (Textual Word64) :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] LocationListResponse))))))))))

-- | Creates a value of <a>LocationList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>llWorkerEmail</a></li>
--   <li><a>llStartTimestampMs</a></li>
--   <li><a>llTeamId</a></li>
--   <li><a>llPageToken</a></li>
--   <li><a>llMaxResults</a></li>
--   </ul>
locationList :: Text -> Word64 -> Text -> LocationList

-- | Retrieves a list of locations for a worker.
--   
--   <i>See:</i> <a>locationList</a> smart constructor.
data LocationList

-- | Worker email address.
llWorkerEmail :: Lens' LocationList Text

-- | Start timestamp in milliseconds since the epoch.
llStartTimestampMs :: Lens' LocationList Word64

-- | Team ID
llTeamId :: Lens' LocationList Text

-- | Continuation token
llPageToken :: Lens' LocationList (Maybe Text)

-- | Maximum number of results to return in one page.
llMaxResults :: Lens' LocationList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.Coordinate.Location.List.LocationList
instance Data.Data.Data Network.Google.Resource.Coordinate.Location.List.LocationList
instance GHC.Show.Show Network.Google.Resource.Coordinate.Location.List.LocationList
instance GHC.Classes.Eq Network.Google.Resource.Coordinate.Location.List.LocationList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Coordinate.Location.List.LocationList


-- | Retrieves the schedule for a job.
--   
--   <i>See:</i> <a>Google Maps Coordinate API Reference</a> for
--   <tt>coordinate.schedule.get</tt>.
module Network.Google.Resource.Coordinate.Schedule.Get

-- | A resource alias for <tt>coordinate.schedule.get</tt> method which the
--   <a>ScheduleGet</a> request conforms to.
type ScheduleGetResource = "coordinate" :> ("v1" :> ("teams" :> (Capture "teamId" Text :> ("jobs" :> (Capture "jobId" (Textual Word64) :> ("schedule" :> (QueryParam "alt" AltJSON :> Get '[JSON] Schedule)))))))

-- | Creates a value of <a>ScheduleGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sgJobId</a></li>
--   <li><a>sgTeamId</a></li>
--   </ul>
scheduleGet :: Word64 -> Text -> ScheduleGet

-- | Retrieves the schedule for a job.
--   
--   <i>See:</i> <a>scheduleGet</a> smart constructor.
data ScheduleGet

-- | Job number
sgJobId :: Lens' ScheduleGet Word64

-- | Team ID
sgTeamId :: Lens' ScheduleGet Text
instance GHC.Generics.Generic Network.Google.Resource.Coordinate.Schedule.Get.ScheduleGet
instance Data.Data.Data Network.Google.Resource.Coordinate.Schedule.Get.ScheduleGet
instance GHC.Show.Show Network.Google.Resource.Coordinate.Schedule.Get.ScheduleGet
instance GHC.Classes.Eq Network.Google.Resource.Coordinate.Schedule.Get.ScheduleGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Coordinate.Schedule.Get.ScheduleGet


-- | Replaces the schedule of a job with the provided schedule. This method
--   supports patch semantics.
--   
--   <i>See:</i> <a>Google Maps Coordinate API Reference</a> for
--   <tt>coordinate.schedule.patch</tt>.
module Network.Google.Resource.Coordinate.Schedule.Patch

-- | A resource alias for <tt>coordinate.schedule.patch</tt> method which
--   the <a>SchedulePatch</a> request conforms to.
type SchedulePatchResource = "coordinate" :> ("v1" :> ("teams" :> (Capture "teamId" Text :> ("jobs" :> (Capture "jobId" (Textual Word64) :> ("schedule" :> (QueryParam "allDay" Bool :> (QueryParam "startTime" (Textual Word64) :> (QueryParam "endTime" (Textual Word64) :> (QueryParam "duration" (Textual Word64) :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Schedule :> Patch '[JSON] Schedule))))))))))))

-- | Creates a value of <a>SchedulePatch</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>spJobId</a></li>
--   <li><a>spAllDay</a></li>
--   <li><a>spStartTime</a></li>
--   <li><a>spTeamId</a></li>
--   <li><a>spPayload</a></li>
--   <li><a>spEndTime</a></li>
--   <li><a>spDuration</a></li>
--   </ul>
schedulePatch :: Word64 -> Text -> Schedule -> SchedulePatch

-- | Replaces the schedule of a job with the provided schedule. This method
--   supports patch semantics.
--   
--   <i>See:</i> <a>schedulePatch</a> smart constructor.
data SchedulePatch

-- | Job number
spJobId :: Lens' SchedulePatch Word64

-- | Whether the job is scheduled for the whole day. Time of day in
--   start/end times is ignored if this is true.
spAllDay :: Lens' SchedulePatch (Maybe Bool)

-- | Scheduled start time in milliseconds since epoch.
spStartTime :: Lens' SchedulePatch (Maybe Word64)

-- | Team ID
spTeamId :: Lens' SchedulePatch Text

-- | Multipart request metadata.
spPayload :: Lens' SchedulePatch Schedule

-- | Scheduled end time in milliseconds since epoch.
spEndTime :: Lens' SchedulePatch (Maybe Word64)

-- | Job duration in milliseconds.
spDuration :: Lens' SchedulePatch (Maybe Word64)
instance GHC.Generics.Generic Network.Google.Resource.Coordinate.Schedule.Patch.SchedulePatch
instance Data.Data.Data Network.Google.Resource.Coordinate.Schedule.Patch.SchedulePatch
instance GHC.Show.Show Network.Google.Resource.Coordinate.Schedule.Patch.SchedulePatch
instance GHC.Classes.Eq Network.Google.Resource.Coordinate.Schedule.Patch.SchedulePatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Coordinate.Schedule.Patch.SchedulePatch


-- | Replaces the schedule of a job with the provided schedule.
--   
--   <i>See:</i> <a>Google Maps Coordinate API Reference</a> for
--   <tt>coordinate.schedule.update</tt>.
module Network.Google.Resource.Coordinate.Schedule.Update

-- | A resource alias for <tt>coordinate.schedule.update</tt> method which
--   the <a>ScheduleUpdate</a> request conforms to.
type ScheduleUpdateResource = "coordinate" :> ("v1" :> ("teams" :> (Capture "teamId" Text :> ("jobs" :> (Capture "jobId" (Textual Word64) :> ("schedule" :> (QueryParam "allDay" Bool :> (QueryParam "startTime" (Textual Word64) :> (QueryParam "endTime" (Textual Word64) :> (QueryParam "duration" (Textual Word64) :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Schedule :> Put '[JSON] Schedule))))))))))))

-- | Creates a value of <a>ScheduleUpdate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>suJobId</a></li>
--   <li><a>suAllDay</a></li>
--   <li><a>suStartTime</a></li>
--   <li><a>suTeamId</a></li>
--   <li><a>suPayload</a></li>
--   <li><a>suEndTime</a></li>
--   <li><a>suDuration</a></li>
--   </ul>
scheduleUpdate :: Word64 -> Text -> Schedule -> ScheduleUpdate

-- | Replaces the schedule of a job with the provided schedule.
--   
--   <i>See:</i> <a>scheduleUpdate</a> smart constructor.
data ScheduleUpdate

-- | Job number
suJobId :: Lens' ScheduleUpdate Word64

-- | Whether the job is scheduled for the whole day. Time of day in
--   start/end times is ignored if this is true.
suAllDay :: Lens' ScheduleUpdate (Maybe Bool)

-- | Scheduled start time in milliseconds since epoch.
suStartTime :: Lens' ScheduleUpdate (Maybe Word64)

-- | Team ID
suTeamId :: Lens' ScheduleUpdate Text

-- | Multipart request metadata.
suPayload :: Lens' ScheduleUpdate Schedule

-- | Scheduled end time in milliseconds since epoch.
suEndTime :: Lens' ScheduleUpdate (Maybe Word64)

-- | Job duration in milliseconds.
suDuration :: Lens' ScheduleUpdate (Maybe Word64)
instance GHC.Generics.Generic Network.Google.Resource.Coordinate.Schedule.Update.ScheduleUpdate
instance Data.Data.Data Network.Google.Resource.Coordinate.Schedule.Update.ScheduleUpdate
instance GHC.Show.Show Network.Google.Resource.Coordinate.Schedule.Update.ScheduleUpdate
instance GHC.Classes.Eq Network.Google.Resource.Coordinate.Schedule.Update.ScheduleUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Coordinate.Schedule.Update.ScheduleUpdate


-- | Retrieves a list of teams for a user.
--   
--   <i>See:</i> <a>Google Maps Coordinate API Reference</a> for
--   <tt>coordinate.team.list</tt>.
module Network.Google.Resource.Coordinate.Team.List

-- | A resource alias for <tt>coordinate.team.list</tt> method which the
--   <a>TeamList</a> request conforms to.
type TeamListResource = "coordinate" :> ("v1" :> ("teams" :> (QueryParam "dispatcher" Bool :> (QueryParam "admin" Bool :> (QueryParam "worker" Bool :> (QueryParam "alt" AltJSON :> Get '[JSON] TeamListResponse))))))

-- | Creates a value of <a>TeamList</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tlDispatcher</a></li>
--   <li><a>tlAdmin</a></li>
--   <li><a>tlWorker</a></li>
--   </ul>
teamList :: TeamList

-- | Retrieves a list of teams for a user.
--   
--   <i>See:</i> <a>teamList</a> smart constructor.
data TeamList

-- | Whether to include teams for which the user has the Dispatcher role.
tlDispatcher :: Lens' TeamList (Maybe Bool)

-- | Whether to include teams for which the user has the Admin role.
tlAdmin :: Lens' TeamList (Maybe Bool)

-- | Whether to include teams for which the user has the Worker role.
tlWorker :: Lens' TeamList (Maybe Bool)
instance GHC.Generics.Generic Network.Google.Resource.Coordinate.Team.List.TeamList
instance Data.Data.Data Network.Google.Resource.Coordinate.Team.List.TeamList
instance GHC.Show.Show Network.Google.Resource.Coordinate.Team.List.TeamList
instance GHC.Classes.Eq Network.Google.Resource.Coordinate.Team.List.TeamList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Coordinate.Team.List.TeamList


-- | Retrieves a list of workers in a team.
--   
--   <i>See:</i> <a>Google Maps Coordinate API Reference</a> for
--   <tt>coordinate.worker.list</tt>.
module Network.Google.Resource.Coordinate.Worker.List

-- | A resource alias for <tt>coordinate.worker.list</tt> method which the
--   <a>WorkerList</a> request conforms to.
type WorkerListResource = "coordinate" :> ("v1" :> ("teams" :> (Capture "teamId" Text :> ("workers" :> (QueryParam "alt" AltJSON :> Get '[JSON] WorkerListResponse)))))

-- | Creates a value of <a>WorkerList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wlTeamId</a></li>
--   </ul>
workerList :: Text -> WorkerList

-- | Retrieves a list of workers in a team.
--   
--   <i>See:</i> <a>workerList</a> smart constructor.
data WorkerList

-- | Team ID
wlTeamId :: Lens' WorkerList Text
instance GHC.Generics.Generic Network.Google.Resource.Coordinate.Worker.List.WorkerList
instance Data.Data.Data Network.Google.Resource.Coordinate.Worker.List.WorkerList
instance GHC.Show.Show Network.Google.Resource.Coordinate.Worker.List.WorkerList
instance GHC.Classes.Eq Network.Google.Resource.Coordinate.Worker.List.WorkerList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Coordinate.Worker.List.WorkerList


-- | Lets you view and manage jobs in a Coordinate team.
--   
--   <i>See:</i> <a>Google Maps Coordinate API Reference</a>
module Network.Google.MapsCoordinate

-- | Default request referring to version <tt>v1</tt> of the Google Maps
--   Coordinate API. This contains the host and root path used as a
--   starting point for constructing service requests.
mapsCoordinateService :: ServiceConfig

-- | View and manage your Google Maps Coordinate jobs
coordinateScope :: Proxy '["https://www.googleapis.com/auth/coordinate"]

-- | View your Google Coordinate jobs
coordinateReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/coordinate.readonly"]

-- | Represents the entirety of the methods and resources available for the
--   Google Maps Coordinate API service.
type MapsCoordinateAPI = SchedulePatchResource :<|> (ScheduleGetResource :<|> (ScheduleUpdateResource :<|> (LocationListResource :<|> (CustomFieldDefListResource :<|> (JobsInsertResource :<|> (JobsListResource :<|> (JobsPatchResource :<|> (JobsGetResource :<|> (JobsUpdateResource :<|> (TeamListResource :<|> WorkerListResource))))))))))

-- | Response from a List Locations request.
--   
--   <i>See:</i> <a>locationListResponse</a> smart constructor.
data LocationListResponse

-- | Creates a value of <a>LocationListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>llrTokenPagination</a></li>
--   <li><a>llrNextPageToken</a></li>
--   <li><a>llrKind</a></li>
--   <li><a>llrItems</a></li>
--   </ul>
locationListResponse :: LocationListResponse

-- | Pagination information for token pagination.
llrTokenPagination :: Lens' LocationListResponse (Maybe TokenPagination)

-- | A token to provide to get the next page of results.
llrNextPageToken :: Lens' LocationListResponse (Maybe Text)

-- | Identifies this object as a list of locations.
llrKind :: Lens' LocationListResponse Text

-- | Locations in the collection.
llrItems :: Lens' LocationListResponse [LocationRecord]

-- | Job progress
data JobsPatchProgress

-- | <tt>COMPLETED</tt> Completed
Completed :: JobsPatchProgress

-- | <tt>IN_PROGRESS</tt> In progress
InProgress :: JobsPatchProgress

-- | <tt>NOT_ACCEPTED</tt> Not accepted
NotAccepted :: JobsPatchProgress

-- | <tt>NOT_STARTED</tt> Not started
NotStarted :: JobsPatchProgress

-- | <tt>OBSOLETE</tt> Obsolete
Obsolete :: JobsPatchProgress

-- | Pagination information.
--   
--   <i>See:</i> <a>tokenPagination</a> smart constructor.
data TokenPagination

-- | Creates a value of <a>TokenPagination</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tpNextPageToken</a></li>
--   <li><a>tpKind</a></li>
--   <li><a>tpPreviousPageToken</a></li>
--   </ul>
tokenPagination :: TokenPagination

-- | A token to provide to get the next page of results.
tpNextPageToken :: Lens' TokenPagination (Maybe Text)

-- | Identifies this object as pagination information.
tpKind :: Lens' TokenPagination Text

-- | A token to provide to get the previous page of results.
tpPreviousPageToken :: Lens' TokenPagination (Maybe Text)

-- | Response from a List Workers request.
--   
--   <i>See:</i> <a>workerListResponse</a> smart constructor.
data WorkerListResponse

-- | Creates a value of <a>WorkerListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wlrKind</a></li>
--   <li><a>wlrItems</a></li>
--   </ul>
workerListResponse :: WorkerListResponse

-- | Identifies this object as a list of workers.
wlrKind :: Lens' WorkerListResponse Text

-- | Workers in the collection.
wlrItems :: Lens' WorkerListResponse [Worker]

-- | Job schedule.
--   
--   <i>See:</i> <a>schedule</a> smart constructor.
data Schedule

-- | Creates a value of <a>Schedule</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sAllDay</a></li>
--   <li><a>sStartTime</a></li>
--   <li><a>sKind</a></li>
--   <li><a>sEndTime</a></li>
--   <li><a>sDuration</a></li>
--   </ul>
schedule :: Schedule

-- | Whether the job is scheduled for the whole day. Time of day in
--   start/end times is ignored if this is true.
sAllDay :: Lens' Schedule (Maybe Bool)

-- | Scheduled start time in milliseconds since epoch.
sStartTime :: Lens' Schedule (Maybe Word64)

-- | Identifies this object as a job schedule.
sKind :: Lens' Schedule Text

-- | Scheduled end time in milliseconds since epoch.
sEndTime :: Lens' Schedule (Maybe Word64)

-- | Job duration in milliseconds.
sDuration :: Lens' Schedule (Maybe Word64)

-- | Location of a job.
--   
--   <i>See:</i> <a>location</a> smart constructor.
data Location

-- | Creates a value of <a>Location</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lAddressLine</a></li>
--   <li><a>lKind</a></li>
--   <li><a>lLat</a></li>
--   <li><a>lLng</a></li>
--   </ul>
location :: Location

-- | Address.
lAddressLine :: Lens' Location [Text]

-- | Identifies this object as a location.
lKind :: Lens' Location Text

-- | Latitude.
lLat :: Lens' Location (Maybe Double)

-- | Longitude.
lLng :: Lens' Location (Maybe Double)

-- | Job progress
data JobsUpdateProgress

-- | <tt>COMPLETED</tt> Completed
JUPCompleted :: JobsUpdateProgress

-- | <tt>IN_PROGRESS</tt> In progress
JUPInProgress :: JobsUpdateProgress

-- | <tt>NOT_ACCEPTED</tt> Not accepted
JUPNotAccepted :: JobsUpdateProgress

-- | <tt>NOT_STARTED</tt> Not started
JUPNotStarted :: JobsUpdateProgress

-- | <tt>OBSOLETE</tt> Obsolete
JUPObsolete :: JobsUpdateProgress

-- | Current state of a job.
--   
--   <i>See:</i> <a>jobState</a> smart constructor.
data JobState

-- | Creates a value of <a>JobState</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jsLocation</a></li>
--   <li><a>jsProgress</a></li>
--   <li><a>jsNote</a></li>
--   <li><a>jsKind</a></li>
--   <li><a>jsCustomerPhoneNumber</a></li>
--   <li><a>jsCustomerName</a></li>
--   <li><a>jsAssignee</a></li>
--   <li><a>jsCustomFields</a></li>
--   <li><a>jsTitle</a></li>
--   </ul>
jobState :: JobState

-- | Job location.
jsLocation :: Lens' JobState (Maybe Location)

-- | Job progress.
jsProgress :: Lens' JobState (Maybe Text)

-- | Note added to the job.
jsNote :: Lens' JobState [Text]

-- | Identifies this object as a job state.
jsKind :: Lens' JobState Text

-- | Customer phone number.
jsCustomerPhoneNumber :: Lens' JobState (Maybe Text)

-- | Customer name.
jsCustomerName :: Lens' JobState (Maybe Text)

-- | Email address of the assignee, or the string "DELETED_USER" if the
--   account is no longer available.
jsAssignee :: Lens' JobState (Maybe Text)

-- | Custom fields.
jsCustomFields :: Lens' JobState (Maybe CustomFields)

-- | Job title.
jsTitle :: Lens' JobState (Maybe Text)

-- | Custom field definition.
--   
--   <i>See:</i> <a>customFieldDef</a> smart constructor.
data CustomFieldDef

-- | Creates a value of <a>CustomFieldDef</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cfdEnabled</a></li>
--   <li><a>cfdKind</a></li>
--   <li><a>cfdName</a></li>
--   <li><a>cfdRequiredForCheckout</a></li>
--   <li><a>cfdId</a></li>
--   <li><a>cfdEnumitems</a></li>
--   <li><a>cfdType</a></li>
--   </ul>
customFieldDef :: CustomFieldDef

-- | Whether the field is enabled.
cfdEnabled :: Lens' CustomFieldDef (Maybe Bool)

-- | Identifies this object as a custom field definition.
cfdKind :: Lens' CustomFieldDef Text

-- | Custom field name.
cfdName :: Lens' CustomFieldDef (Maybe Text)

-- | Whether the field is required for checkout.
cfdRequiredForCheckout :: Lens' CustomFieldDef (Maybe Bool)

-- | Custom field id.
cfdId :: Lens' CustomFieldDef (Maybe Int64)

-- | List of enum items for this custom field. Populated only if the field
--   type is enum. Enum fields appear as 'lists' in the Coordinate web and
--   mobile UI.
cfdEnumitems :: Lens' CustomFieldDef [EnumItemDef]

-- | Custom field type.
cfdType :: Lens' CustomFieldDef (Maybe Text)

-- | Response from a List Jobs request.
--   
--   <i>See:</i> <a>jobListResponse</a> smart constructor.
data JobListResponse

-- | Creates a value of <a>JobListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jlrNextPageToken</a></li>
--   <li><a>jlrKind</a></li>
--   <li><a>jlrItems</a></li>
--   </ul>
jobListResponse :: JobListResponse

-- | A token to provide to get the next page of results.
jlrNextPageToken :: Lens' JobListResponse (Maybe Text)

-- | Identifies this object as a list of jobs.
jlrKind :: Lens' JobListResponse Text

-- | Jobs in the collection.
jlrItems :: Lens' JobListResponse [Job]

-- | Change to a job. For example assigning the job to a different worker.
--   
--   <i>See:</i> <a>jobChange</a> smart constructor.
data JobChange

-- | Creates a value of <a>JobChange</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jcState</a></li>
--   <li><a>jcKind</a></li>
--   <li><a>jcTimestamp</a></li>
--   </ul>
jobChange :: JobChange

-- | Change applied to the job. Only the fields that were changed are set.
jcState :: Lens' JobChange (Maybe JobState)

-- | Identifies this object as a job change.
jcKind :: Lens' JobChange Text

-- | Time at which this change was applied.
jcTimestamp :: Lens' JobChange (Maybe Word64)

-- | Response from a List Teams request.
--   
--   <i>See:</i> <a>teamListResponse</a> smart constructor.
data TeamListResponse

-- | Creates a value of <a>TeamListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tlrKind</a></li>
--   <li><a>tlrItems</a></li>
--   </ul>
teamListResponse :: TeamListResponse

-- | Identifies this object as a list of teams.
tlrKind :: Lens' TeamListResponse Text

-- | Teams in the collection.
tlrItems :: Lens' TeamListResponse [Team]

-- | Collection of custom field definitions for a team.
--   
--   <i>See:</i> <a>customFieldDefListResponse</a> smart constructor.
data CustomFieldDefListResponse

-- | Creates a value of <a>CustomFieldDefListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cfdlrKind</a></li>
--   <li><a>cfdlrItems</a></li>
--   </ul>
customFieldDefListResponse :: CustomFieldDefListResponse

-- | Identifies this object as a collection of custom field definitions in
--   a team.
cfdlrKind :: Lens' CustomFieldDefListResponse Text

-- | Collection of custom field definitions in a team.
cfdlrItems :: Lens' CustomFieldDefListResponse [CustomFieldDef]

-- | A job.
--   
--   <i>See:</i> <a>job</a> smart constructor.
data Job

-- | Creates a value of <a>Job</a> with the minimum fields required to make
--   a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jState</a></li>
--   <li><a>jKind</a></li>
--   <li><a>jJobChange</a></li>
--   <li><a>jId</a></li>
--   </ul>
job :: Job

-- | Current job state.
jState :: Lens' Job (Maybe JobState)

-- | Identifies this object as a job.
jKind :: Lens' Job Text

-- | List of job changes since it was created. The first change corresponds
--   to the state of the job when it was created.
jJobChange :: Lens' Job [JobChange]

-- | Job id.
jId :: Lens' Job (Maybe Word64)

-- | Collection of custom fields.
--   
--   <i>See:</i> <a>customFields</a> smart constructor.
data CustomFields

-- | Creates a value of <a>CustomFields</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cfKind</a></li>
--   <li><a>cfCustomField</a></li>
--   </ul>
customFields :: CustomFields

-- | Identifies this object as a collection of custom fields.
cfKind :: Lens' CustomFields Text

-- | Collection of custom fields.
cfCustomField :: Lens' CustomFields [CustomField]

-- | A Coordinate team.
--   
--   <i>See:</i> <a>team</a> smart constructor.
data Team

-- | Creates a value of <a>Team</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tKind</a></li>
--   <li><a>tName</a></li>
--   <li><a>tId</a></li>
--   </ul>
team :: Team

-- | Identifies this object as a team.
tKind :: Lens' Team Text

-- | Team name
tName :: Lens' Team (Maybe Text)

-- | Team id, as found in a coordinate team url e.g.
--   https://coordinate.google.com/f/xyz where "xyz" is the team id.
tId :: Lens' Team (Maybe Text)

-- | Recorded location of a worker.
--   
--   <i>See:</i> <a>locationRecord</a> smart constructor.
data LocationRecord

-- | Creates a value of <a>LocationRecord</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lrKind</a></li>
--   <li><a>lrLatitude</a></li>
--   <li><a>lrConfidenceRadius</a></li>
--   <li><a>lrLongitude</a></li>
--   <li><a>lrCollectionTime</a></li>
--   </ul>
locationRecord :: LocationRecord

-- | Identifies this object as a location.
lrKind :: Lens' LocationRecord Text

-- | Latitude.
lrLatitude :: Lens' LocationRecord (Maybe Double)

-- | The location accuracy in meters. This is the radius of a 95%
--   confidence interval around the location measurement.
lrConfidenceRadius :: Lens' LocationRecord (Maybe Double)

-- | Longitude.
lrLongitude :: Lens' LocationRecord (Maybe Double)

-- | The collection time in milliseconds since the epoch.
lrCollectionTime :: Lens' LocationRecord (Maybe Int64)

-- | A worker in a Coordinate team.
--   
--   <i>See:</i> <a>worker</a> smart constructor.
data Worker

-- | Creates a value of <a>Worker</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wKind</a></li>
--   <li><a>wId</a></li>
--   </ul>
worker :: Worker

-- | Identifies this object as a worker.
wKind :: Lens' Worker Text

-- | Worker email address. If a worker has been deleted from your team, the
--   email address will appear as DELETED_USER.
wId :: Lens' Worker (Maybe Text)

-- | Custom field.
--   
--   <i>See:</i> <a>customField</a> smart constructor.
data CustomField

-- | Creates a value of <a>CustomField</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cCustomFieldId</a></li>
--   <li><a>cKind</a></li>
--   <li><a>cValue</a></li>
--   </ul>
customField :: CustomField

-- | Custom field id.
cCustomFieldId :: Lens' CustomField (Maybe Int64)

-- | Identifies this object as a custom field.
cKind :: Lens' CustomField Text

-- | Custom field value.
cValue :: Lens' CustomField (Maybe Text)

-- | Enum Item definition.
--   
--   <i>See:</i> <a>enumItemDef</a> smart constructor.
data EnumItemDef

-- | Creates a value of <a>EnumItemDef</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eidKind</a></li>
--   <li><a>eidValue</a></li>
--   <li><a>eidActive</a></li>
--   </ul>
enumItemDef :: EnumItemDef

-- | Identifies this object as an enum item definition.
eidKind :: Lens' EnumItemDef Text

-- | Custom field value.
eidValue :: Lens' EnumItemDef (Maybe Text)

-- | Whether the enum item is active. Jobs may contain inactive enum
--   values; however, setting an enum to an inactive value when creating or
--   updating a job will result in a 500 error.
eidActive :: Lens' EnumItemDef (Maybe Bool)
