PcoPeopleWorkflowShare class

This class represents a PCO People WorkflowShare Object


  • Create a new instance using the PcoPeopleWorkflowShare() constructor
  • Instantiate from existing JSON data using the PcoPeopleWorkflowShare.fromJson() constructor.
  • Load an instance from the API using one of the static methods defined on this class.


  • Fields exposed by the API are readable through getter methods.
  • Fields writable by the API are exposed through setter methods.
  • Original json data is exposed through the read-only attributes map.
  • Additional data is available through the read-only links and relationships maps.
  • Available relationships / includes are exposed through typed getters.


A workflow share defines who can access a workflow.

Attributes (and permissions)

  • id (ro) -> PCO: id
  • group (rw) -> PCO: group
  • permission (rw) -> PCO: permission
  • personId (rw) -> PCO: person_id

Edges and Actions

Outbound Edges:

Inbound Edges:

Actions: NONE

Raw Data Object Example

  "type": "WorkflowShare",
  "id": "1",
  "attributes": {
    "group": "value",
    "permission": "value",
    "person_id": "primary_key"
  "relationships": {
    "person": {
      "data": {
        "type": "Person",
        "id": "1"
    "workflow": {
      "data": {
        "type": "Workflow",
        "id": "1"


PcoPeopleWorkflowShare({required String workflowId, String? id, String? group, String? permission, String? personId, Map<String, List<PcoResource>>? withRelationships, List<PcoResource>? withIncluded})
Create a new PcoPeopleWorkflowShare object using this endpoint: https://api.planningcenteronline.com/people/v2/workflows/$workflowId/shares
Create an empty instance of this class. This is only useful when an endpoint requires related or included data.
PcoPeopleWorkflowShare.fromJson(Map<String, dynamic> data, {List<Map<String, dynamic>>? withIncluded})


api PlanningCenter
planning center resources must be tied to an api
no setterinherited
apiEndpoint String
no setterinherited
apiPath String
PcoResources include their own path as a link object but this might be null if we haven't created/fetched the object yet Child classes should redefine this getter to allow for manual path overrides
no setteroverride
apiVersion String
child classes can override these getters which will allow methods in this class to see static variables from child classes
no setteroverride
attributes ReadOnlyMapView<String, dynamic>
contains the underlying attributes returned by the api and allows a user to access arbitrary data in the attributes by actual api name
no setterinherited
canCreate bool
no setteroverride
canDestroy bool
no setteroverride
canUpdate bool
no setteroverride
createAllowed List<String>
no setteroverride
createdAt DateTime
no setterinherited
createPathTemplate String
no setteroverride
defaultPathTemplate String
no setteroverride
fetched bool
indicate whether an item is full or partial
getter/setter pairinherited
group String
Possible values: No Access, Viewer, Editor, or Manager
getter/setter pair
hashCode int
The hash code for this object.
no setterinherited
id String?
no setterinherited
included List<PcoResource>
contains included items parsed into objects
no setterinherited
includedPerson PcoPeoplePerson?
no setter
contains the links data returned by the api if present
no setterinherited
needsSave bool
no setterinherited
pcoApplication String
permission String
Possible values: view, manage_cards, or manage
getter/setter pair
personId String
pass null to remove key from attributes
getter/setter pair
relationships ReadOnlyMapView<String, List<PcoResource>>
contains relationships parsed into objects even though the api sends relationship objects as Maps or Lists we always put them into lists for consistency
no setterinherited
resourceType String
all planning center resources must have a type
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
slug String
no setterinherited
updateAllowed List<String>
no setteroverride
updatedAt DateTime
no setterinherited


coerceDouble(dynamic a) double
coerceInt(dynamic a) int
delete() Future<PlanningCenterApiResponse<PlanningCenterApiData>>
filteredAttributes(List<String> allowedKeys) Map<String, dynamic>
fromJson(Map<String, dynamic> data, {List<Map<String, dynamic>>? withIncluded}) → dynamic
Takes a full JSON:API Response Object (the contents of a "data" field) will clear and update id, apiPath, attributes and _relationships
getPerson({PcoPeoplePersonQuery? query}) Future<PcoCollection<PcoPeoplePerson>>
Will get a collection of PcoPeoplePerson objects (expecting one) using a path like this: https://api.planningcenteronline.com/people/v2/people/1/workflow_shares/1/person
handleIncludes(List<Map<String, dynamic>> included) → void
This function populates the relationships with typed resource objects based on the data in the included map of the json.
handleItem(Map<String, dynamic> data) PcoResource?
handleRelationships(Map<String, dynamic> items, [List<Map<String, dynamic>> included = const []]) Map<String, List<PcoResource>>
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
save({Map<String, PcoResource>? withRelated, List<PcoResource>? withIncluded}) Future<PlanningCenterApiResponse<PlanningCenterApiData>>
Many Planning Center endpoints allow or require additional relationships and/or included items to be sent with a create/update operation. Since these cannot always be determined by the automatic code generation, they may be included as arguments to the save operation.
toCreateResource() Map<String, dynamic>
create the attributes Map for this object without the id field using only the attributes allowed in create (post) operations
toDataMap({Map<String, PcoResource>? withRelated, List<PcoResource>? withIncluded}) Map<String, dynamic>
create a json-api Map for this object automatically selecting create or update based on the existence of the id field. Will result in something like this:
toIdResource() Map<String, dynamic>
returns the simplest representation of this resource with only the type and the id:
toJson({dynamic includeAttributes = true, dynamic includeRelationships = false}) Map<String, dynamic>
Some api requests only want the type and id of an object. In those cases, set includeAttributes to false or call toIdResource instead.
toString() String
A string representation of this object.
toUpdateResource() Map<String, dynamic>
create the attributes Map for this object using only the attributes allowed in update (patch) operations


operator ==(Object other) bool
The equality operator.

Static Properties

canInclude List<String>
possible includes with parameter ?include=a,b
no setter
canOrderBy List<String>
possible orderings with parameter ?order=
no setter
canQuery List<String>
possible queries using parameters like ?wherekey=value or ?wheregt|lt=value
no setter

Static Methods

getAllFromPerson(String personId, {String? id, PcoPeopleWorkflowShareQuery? query, bool includePerson = false}) Future<PcoCollection<PcoPeopleWorkflowShare>>
Will get a PcoCollection containing ALL PcoPeopleWorkflowShare objects (expecting many) using a path like this: /people/v2/people/$personId/workflow_shares
getFromPerson(String personId, {String? id, PcoPeopleWorkflowShareQuery? query, bool getAll = false, bool includePerson = false}) Future<PcoCollection<PcoPeopleWorkflowShare>>
Will get a PcoCollection of PcoPeopleWorkflowShare objects (expecting many) using a path like this: /people/v2/people/$personId/workflow_shares
getSharesFromWorkflow(String workflowId, {PcoPeopleWorkflowShareQuery? query, bool getAll = false, bool includePerson = false}) Future<PcoCollection<PcoPeopleWorkflowShare>>
Will get a PcoCollection of PcoPeopleWorkflowShare objects (expecting one) using a path like this: /people/v2/workflows/$workflowId/shares
getSingleFromPerson(String personId, String id, {PcoPeopleWorkflowShareQuery? query, bool includePerson = false}) Future<PcoPeopleWorkflowShare?>
Will get a single PcoPeopleWorkflowShare object using a path like this: /people/v2/people/$personId/workflow_shares/[id]


kApiVersion → const String
kCreatePathTemplate → const String
kDefaultPathTemplate → const String
kGroup → const String
kId → const String
kPcoApplication → const String
kPermission → const String
kPersonId → const String
kTypeId → const String
kTypeString → const String