Description
Assign or remove attributes and values of attribute assignments. These attributes can be on groups, stems, members, memberships (immediate or any), attribute definitions, or on assignments of attributes (one level deep).
You can lookup attributes by attribute definition name, or attribute definition id
All assignments will be filtered for security based on the logged in or acted as user (security rules are on attribute framework wiki)
The returned data will include the attribute assignments, value(s) on those assignments, and a normalized list of references (owner objects e.g. group/stem/etc, attribute definitions, attribute names, etc), if things changed or were already assigned, etc
You can assign attributes to multiple owners, definitions, actions, etc
attributeAssignType is a required field, must be: group, member, stem, any_mem, imm_mem, attr_def, group_asgn, mem_asgn, stem_asgn, any_mem_asgn, imm_mem_asgn, attr_def_asgn
attributeAssignOperation is required and is the operation to perform for attribute on owners, from enum AttributeAssignOperation: assign_attr, add_attr, remove_attr, replace_attrs. In this case, assigning an attribute will not assign if already there. add_attr will add this assignment even if it is already there (attribute definition must allow multi assignments)
attributeAssignValueOperation is required if passing values to assign. It is the operation to perform for attribute value on attribute assignments: assign_value, add_value, remove_value, replace_values. Like the attribute assign operation, assign_value will assign if not there, or ignore if already there. add_value will add even if assigned. And replace_values will remove orphans not in the assign list.
Features
- Can pass owners, actions, values, etc. If multiples are passed, then each attribute def name will be assigned for each action on each owner.
- Lookup owner or other objects by object lookup (by id, name, etc)
- Returns group / subject information, can be detailed or not
- Can actAs another user
Assign attributes lite service
- Accepts one group, or one subject, or stem, one attribute definition name, one action to assign, one value (optional)
- Documentation: SOAP (click on assignAttributesLite), REST (click on assignAttributesLite)
- For REST, the request can put data in query string (in URL or request body)
- REST request (colon is escaped to %3A):
- PUT /grouper-ws/servicesRest/v1_6_000/assignAttributes
- Note: if passing data in request body e.g. actAs, use a POST
- (see documentation above for details): Request object, response object
- Response codes
- Samples (all files with "Lite" in them, click on "download" to see file)
- Samples with value assignment
Assign attributes service
- Accepts multiple groups or subjects or memberhipIds (or combination) etc, attribute definitions, actions, etc to assign
- Documentation: SOAP (click on assignAttributes), REST (click on assignAttributes)
- REST request (colon is escaped to %3A):
- POST /grouper-ws/servicesRest/v1_6_000/assignAttributes
- (see documentation above for details): Request object, response object
- Response codes overall
- Returns an overall status
- Samples (all files without "Lite" in them, click on "download" to see files)
- Samples with value assignment
Assign attribute to any membership (doesnt have to be direct)
WebService: connecting to URL: 'http://localhost:8080/grouper-ws/servicesRest/2.6.0/attributeAssignments' ################ REQUEST START (indented) ############### POST /grouper-ws/servicesRest/2.6.0/attributeAssignments HTTP/1.1 Connection: close Authorization: Basic xxxxxxxxxxxxxxxx User-Agent: Jakarta Commons-HttpClient/3.1 Host: localhost:8080 Content-Length: 311 Content-Type: application/json; charset=UTF-8 { "WsRestAssignAttributesRequest":{ "attributeAssignOperation":"assign_attr", "attributeAssignType":"any_mem", "wsAttributeDefNameLookups":[ { "name":"test:attr" } ] , "wsOwnerMembershipAnyLookups":[ { "wsGroupLookup":{ "groupName":"etc:wsGroup" }, "wsSubjectLookup":{ "subjectId":"GrouperSystem", "subjectSourceId":"g:isa" } } ] } } ################ REQUEST END ############### ################ RESPONSE START (indented) ############### HTTP/1.1 200 OK Set-Cookie: JSESSIONID=xxxxxxxxxxxx; HttpOnly X-Grouper-resultCode: SUCCESS X-Grouper-success: T X-Grouper-resultCode2: NONE Content-Type: application/json;charset=UTF-8 Content-Length: 2253 Date: Tue, 11 Oct 2022 17:45:37 GMT Connection: close { "WsAssignAttributesResults":{ "resultMetadata":{ "success":"T", "resultCode":"SUCCESS", "resultMessage":", Found 1 results." }, "wsMemberships":[ ] , "wsStems":[ ] , "wsAttributeDefs":[ { "attributeDefType":"attr", "assignToAttributeDef":"F", "assignToStemAssignment":"F", "extension":"attrDef", "assignToMemberAssignment":"F", "assignToEffectiveMembership":"F", "uuid":"77c905289a374962b779a74d579cb2cd", "assignToImmediateMembershipAssignment":"F", "assignToEffectiveMembershipAssignment":"F", "assignToStem":"F", "assignToGroupAssignment":"F", "assignToMember":"F", "multiAssignable":"F", "valueType":"marker", "name":"test:attrDef", "assignToAttributeDefAssignment":"F", "idIndex":"10080", "multiValued":"F", "assignToGroup":"F", "assignToImmediateMembership":"F" } ] , "responseMetadata":{ "serverVersion":"2.6.0", "millis":"653" }, "wsGroups":[ { "extension":"wsGroup", "displayName":"etc:wsGroup", "description":"wsGroup", "uuid":"bd7831a9c01e435bba1a628f0feef150", "enabled":"T", "displayExtension":"wsGroup", "name":"etc:wsGroup", "typeOfGroup":"group", "idIndex":"10068" } ] , "wsAttributeDefNames":[ { "attributeDefId":"77c905289a374962b779a74d579cb2cd", "displayExtension":"attr", "extension":"attr", "displayName":"test:attr", "name":"test:attr", "attributeDefName":"test:attrDef", "idIndex":"10298", "uuid":"16c46d4aca6c4ef7aaf02209a31c3242" } ] , "wsAttributeAssignResults":[ { "deleted":"F", "wsAttributeAssigns":[ { "attributeAssignDelegatable":"FALSE", "ownerMemberSourceId":"g:isa", "disallowed":"F", "createdOn":"2022/10/11 13:45:36.844", "enabled":"T", "attributeAssignType":"any_mem", "attributeDefId":"77c905289a374962b779a74d579cb2cd", "lastUpdated":"2022/10/11 13:45:36.844", "attributeAssignActionId":"de9ea3d237cb4fe09124791f43fc9b31", "ownerGroupName":"etc:wsGroup", "id":"bdb45214baad436c8402630e6571f059", "ownerGroupId":"bd7831a9c01e435bba1a628f0feef150", "ownerMemberSubjectId":"GrouperSystem", "ownerMemberId":"585c7be534fe4926bbe9c571a36d2e22", "attributeDefName":"test:attrDef", "attributeDefNameName":"test:attr", "attributeAssignActionName":"assign", "attributeDefNameId":"16c46d4aca6c4ef7aaf02209a31c3242", "attributeAssignActionType":"immediate" } ] , "valuesChanged":"F", "changed":"T" } ] , "wsSubjects":[ { "sourceId":"g:isa", "success":"T", "name":"GrouperSysAdmin", "resultCode":"SUCCESS", "id":"GrouperSystem" } ] } } ################ RESPONSE END ###############
Assign value example
If this is an assignment on an assignment, you first need to query to get the attribute assign id where the value is [mchyzer@flash pennGroupsClient-2.3.0]$ java -jar grouperClient.jar --operation=getAttributeAssignmentsWs --attributeAssignType=group --includeAssignmentsOnAssignments=true --ownerGroupNames=a:b:c:groupName --debug=true POST /grouperWs/servicesRest/v2_3_000/attributeAssignments HTTP/1.1 Connection: close Authorization: Basic xxxxxxxxxxxxxxxx User-Agent: Jakarta Commons-HttpClient/3.1 Host: grouperws.apps.upenn.edu:-1 Content-Length: 321 Content-Type: text/xml; charset=UTF-8 <WsRestGetAttributeAssignmentsRequest> <attributeAssignType>group</attributeAssignType> <wsOwnerGroupLookups> <WsGroupLookup> <groupName>a:b:c:groupName</groupName> </WsGroupLookup> </wsOwnerGroupLookups> <includeAssignmentsOnAssignments>T</includeAssignmentsOnAssignments> </WsRestGetAttributeAssignmentsRequest> ################ RESPONSE START (indented) ############### HTTP/1.1 200 OK Date: Mon, 23 Apr 2018 12:43:25 GMT Set-Cookie: JSESSIONID=xxxxxxxxxxxx; Path=/grouperWs X-Grouper-resultCode: SUCCESS X-Grouper-success: T X-Grouper-resultCode2: NONE Content-Type: text/xml;charset=UTF-8 Vary: Accept-Encoding Connection: close Transfer-Encoding: chunked Set-Cookie: BIGipServerPFA-grouperws_pool=3810792620.20480.0000; expires=Mon, 23-Apr-2018 18:43:26 GMT; path=/; Httponly; Secure <WsGetAttributeAssignmentsResults> <WsAttributeDefName> <idIndex>12892</idIndex> <extension>legacyAttribute_grouperLoaderQuartzCron</extension> <displayExtension>legacyAttribute_grouperLoaderQuartzCron</displayExtension> <displayName>etc:legacy:attribute:legacyAttribute_grouperLoaderQuartzCron</displayName> <name>etc:legacy:attribute:legacyAttribute_grouperLoaderQuartzCron</name> <uuid>ff79e20c06314ee380bb492def9de796</uuid> <attributeDefId>ef7039cf58b34783b6b012cc4799073e</attributeDefId> <attributeDefName>etc:legacy:attribute:legacyAttributeDef_grouperLoader</attributeDefName> </WsAttributeDefName> <WsAttributeAssign> <disallowed>F</disallowed> <attributeAssignActionType>immediate</attributeAssignActionType> <attributeAssignDelegatable>FALSE</attributeAssignDelegatable> <attributeAssignActionId>d459f64e432e4820a4b79de775fd0ab1</attributeAssignActionId> <attributeAssignActionName>assign</attributeAssignActionName> <attributeAssignType>group_asgn</attributeAssignType> <attributeDefNameId>ff79e20c06314ee380bb492def9de796</attributeDefNameId> <attributeDefNameName>etc:legacy:attribute:legacyAttribute_grouperLoaderQuartzCron</attributeDefNameName> <attributeDefId>ef7039cf58b34783b6b012cc4799073e</attributeDefId> <attributeDefName>etc:legacy:attribute:legacyAttributeDef_grouperLoader</attributeDefName> <wsAttributeAssignValues> <WsAttributeAssignValue> <id>285dd3e3e3bf4f78955a67395de7e8df</id> <valueSystem>0 15 7 * * ?</valueSystem> </WsAttributeAssignValue> </wsAttributeAssignValues> <createdOn>2016/07/09 23:06:37.253</createdOn> <enabled>T</enabled> <id>781992a9dc0e4b58a0202e9b24e94f87</id> <lastUpdated>2016/07/09 23:06:37.253</lastUpdated> <ownerAttributeAssignId>ddf1e57538af4b3aaf4b0673b5803511</ownerAttributeAssignId> </WsAttributeAssign> </wsAttributeAssigns> <resultMetadata> <resultCode>SUCCESS</resultCode> <resultMessage>, Found 11 results. </resultMessage> <success>T</success> </resultMetadata> <responseMetadata> <resultWarnings></resultWarnings> <millis>590</millis> <serverVersion>2.3.0</serverVersion> </responseMetadata> <wsGroups> <WsGroup> <extension>groupName</extension> <typeOfGroup>group</typeOfGroup> <displayExtension>groupName</displayExtension> <displayName>a:b:c:groupName</displayName> <name> a:b:c:groupName </name> <uuid>d836336699e24404a442a1cfb2027a6c</uuid> <idIndex>194760</idIndex> </WsGroup> </wsGroups> <wsStems/> <wsMemberships/> <wsSubjects/> </WsGetAttributeAssignmentsResults> #################################################### Then assign the value: [mchyzer@flash pennGroupsClient-2.3.0]$ java -jar grouperClient.jar --operation=assignAttributesWs --attributeAssignOperation=assign_attr --attributeAssignType=group_asgn --ownerAttributeAssignUuids=ddf1e57538af4b3aaf4b0673b5803511 --attributeDefNameNames=penn:etc:legacy:attribute:legacyAttribute_grouperLoaderQuartzCron --attributeAssignValueOperation=replace_values --values0System="0 16 7 * * ?" --debug=true ################ REQUEST START (indented) ############### POST /grouperWs/servicesRest/v2_3_000/attributeAssignments HTTP/1.1 Connection: close Authorization: Basic xxxxxxxxxxxxxxxx User-Agent: Jakarta Commons-HttpClient/3.1 Host: grouperws.apps.upenn.edu:-1 Content-Length: 707 Content-Type: text/xml; charset=UTF-8 <WsRestAssignAttributesRequest> <attributeAssignOperation>assign_attr</attributeAssignOperation> <attributeAssignValueOperation>replace_values</attributeAssignValueOperation> <wsOwnerAttributeAssignLookups> <WsAttributeAssignLookup> <uuid>ddf1e57538af4b3aaf4b0673b5803511</uuid> </WsAttributeAssignLookup> </wsOwnerAttributeAssignLookups> <values> <WsAttributeAssignValue> <valueSystem>0 16 7 * * ?</valueSystem> </WsAttributeAssignValue> </values> <attributeAssignType>group_asgn</attributeAssignType> <wsAttributeDefNameLookups> <WsAttributeDefNameLookup> <name>penn:etc:legacy:attribute:legacyAttribute_grouperLoaderQuartzCron</name> </WsAttributeDefNameLookup> </wsAttributeDefNameLookups> </WsRestAssignAttributesRequest> ################ REQUEST END ############### ################ RESPONSE START (indented) ############### HTTP/1.1 200 OK Date: Mon, 23 Apr 2018 13:09:14 GMT Set-Cookie: JSESSIONID=xxxxxxxxxxxx; Path=/grouperWs X-Grouper-resultCode: SUCCESS X-Grouper-success: T X-Grouper-resultCode2: NONE Content-Type: text/xml;charset=UTF-8 Vary: Accept-Encoding Connection: close Transfer-Encoding: chunked Set-Cookie: BIGipServerPFA-grouperws_pool=3861124268.20480.0000; expires=Mon, 23-Apr-2018 19:09:15 GMT; path=/; Httponly; Secure <WsAssignAttributesResults> <wsAttributeDefs> <WsAttributeDef> <idIndex>10046</idIndex> <extension>legacyAttributeDef_grouperLoader</extension> <name>etc:legacy:attribute:legacyAttributeDef_grouperLoader</name> <uuid>ef7039cf58b34783b6b012cc4799073e</uuid> <attributeDefType>attr</attributeDefType> <multiAssignable>F</multiAssignable> <multiValued>F</multiValued> <valueType>string</valueType> <assignToAttributeDef>F</assignToAttributeDef> <assignToAttributeDefAssignment>F</assignToAttributeDefAssignment> <assignToEffectiveMembership>F</assignToEffectiveMembership> <assignToEffectiveMembershipAssignment>F</assignToEffectiveMembershipAssignment> <assignToGroup>F</assignToGroup> <assignToGroupAssignment>F</assignToGroupAssignment> <assignToImmediateMembership>F</assignToImmediateMembership> <assignToImmediateMembershipAssignment>F</assignToImmediateMembershipAssignment> <assignToMember>F</assignToMember> <assignToMemberAssignment>F</assignToMemberAssignment> <assignToStem>F</assignToStem> <assignToStemAssignment>F</assignToStemAssignment> </WsAttributeDef> </wsAttributeDefs> <wsAttributeDefNames> <WsAttributeDefName> <idIndex>12892</idIndex> <extension>legacyAttribute_grouperLoaderQuartzCron</extension> <displayExtension>legacyAttribute_grouperLoaderQuartzCron</displayExtension> <displayName>etc:legacy:attribute:legacyAttribute_grouperLoaderQuartzCron</displayName> <name>etc:legacy:attribute:legacyAttribute_grouperLoaderQuartzCron</name> <uuid>ff79e20c06314ee380bb492def9de796</uuid> <attributeDefId>ef7039cf58b34783b6b012cc4799073e</attributeDefId> <attributeDefName>etc:legacy:attribute:legacyAttributeDef_grouperLoader</attributeDefName> </WsAttributeDefName> </wsAttributeDefNames> <wsAttributeAssignResults> <WsAssignAttributeResult> <wsAttributeAssignValueResults> <WsAttributeAssignValueResult> <changed>T</changed> <deleted>T</deleted> <wsAttributeAssignValue> <id>285dd3e3e3bf4f78955a67395de7e8df</id> <valueSystem>0 15 7 * * ?</valueSystem> </wsAttributeAssignValue> </WsAttributeAssignValueResult> <WsAttributeAssignValueResult> <changed>T</changed> <deleted>F</deleted> <wsAttributeAssignValue> <id>4b6c8b5df143448994ceaf6aed68856c</id> <valueSystem>0 16 7 * * ?</valueSystem> </wsAttributeAssignValue> </WsAttributeAssignValueResult> </wsAttributeAssignValueResults> <wsAttributeAssigns> <WsAttributeAssign> <disallowed>F</disallowed> <attributeAssignActionType>immediate</attributeAssignActionType> <attributeAssignDelegatable>FALSE</attributeAssignDelegatable> <attributeAssignActionId>d459f64e432e4820a4b79de775fd0ab1</attributeAssignActionId> <attributeAssignActionName>assign</attributeAssignActionName> <attributeAssignType>group_asgn</attributeAssignType> <attributeDefNameId>ff79e20c06314ee380bb492def9de796</attributeDefNameId> <attributeDefNameName>etc:legacy:attribute:legacyAttribute_grouperLoaderQuartzCron</attributeDefNameName> <attributeDefId>ef7039cf58b34783b6b012cc4799073e</attributeDefId> <attributeDefName>etc:legacy:attribute:legacyAttributeDef_grouperLoader</attributeDefName> <wsAttributeAssignValues> <WsAttributeAssignValue> <id>4b6c8b5df143448994ceaf6aed68856c</id> <valueSystem>0 16 7 * * ?</valueSystem> </WsAttributeAssignValue> </wsAttributeAssignValues> <createdOn>2016/07/09 23:06:37.253</createdOn> <enabled>T</enabled> <id>781992a9dc0e4b58a0202e9b24e94f87</id> <lastUpdated>2016/07/09 23:06:37.253</lastUpdated> <ownerAttributeAssignId>ddf1e57538af4b3aaf4b0673b5803511</ownerAttributeAssignId> </WsAttributeAssign> </wsAttributeAssigns> <changed>F</changed> <valuesChanged>T</valuesChanged> <deleted>F</deleted> </WsAssignAttributeResult> </wsAttributeAssignResults> <resultMetadata> <resultCode>SUCCESS</resultCode> <resultMessage>, Found 1 results. </resultMessage> <success>T</success> </resultMetadata> <responseMetadata> <resultWarnings></resultWarnings> <millis>1216</millis> <serverVersion>2.3.0</serverVersion> </responseMetadata> <wsGroups/> <wsStems/> <wsMemberships/> <wsSubjects/> </WsAssignAttributesResults>
Example of assigning an attribute to an attribute
[mchyzer@flash pennGroupsClient-2.5.0]$ java -jar grouperClient-2.5.36.jar --operation=assignAttributesWs --attributeAssignType=group --attributeAssignOperation=assign_attr --ownerGroupNames=test:testGroup --attributeDefNameNames=test:testGroupAttrMarker --debug=true Reading resource: grouper.client.properties, from: /home/mchyzer/grouper/pennGroupsClient-2.5.0/grouper.client.properties WebService: connecting as user: 'fast/medley.isc-seo.upenn.edu' WebService: connecting to URL: 'https://grouperWs.apps.upenn.edu/grouperWs/servicesRest/2.5.36/attributeAssignments' ################ REQUEST START (indented) ############### POST /grouperWs/servicesRest/2.5.36/attributeAssignments HTTP/1.1 Connection: close Authorization: Basic xxxxxxxxxxxxxxxx User-Agent: Jakarta Commons-HttpClient/3.1 Host: grouperWs.apps.upenn.edu:-1 Content-Length: 431 Content-Type: text/xml; charset=UTF-8 <WsRestAssignAttributesRequest> <attributeAssignOperation>assign_attr</attributeAssignOperation> <attributeAssignType>group</attributeAssignType> <wsAttributeDefNameLookups> <WsAttributeDefNameLookup> <name>test:testGroupAttrMarker</name> </WsAttributeDefNameLookup> </wsAttributeDefNameLookups> <wsOwnerGroupLookups> <WsGroupLookup> <groupName>test:testGroup</groupName> </WsGroupLookup> </wsOwnerGroupLookups> </WsRestAssignAttributesRequest> ################ REQUEST END ############### ################ RESPONSE START (indented) ############### HTTP/1.1 200 OK Date: Thu, 22 Oct 2020 17:02:29 GMT Content-Type: application/xml;charset=UTF-8 Transfer-Encoding: chunked Connection: close Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips Strict-Transport-Security: max-age=15768000 X-Grouper-resultCode: SUCCESS X-Grouper-success: T X-Grouper-resultCode2: NONE <WsAssignAttributesResults> <wsAttributeDefs> <WsAttributeDef> <idIndex>10415</idIndex> <extension>testGroupAttrMarkerDef</extension> <name>test:testGroupAttrMarkerDef</name> <uuid>b80e9e8c13f54093ab297aeea7b23974</uuid> <attributeDefType>attr</attributeDefType> <multiAssignable>F</multiAssignable> <multiValued>F</multiValued> <valueType>marker</valueType> <assignToAttributeDef>F</assignToAttributeDef> <assignToAttributeDefAssignment>F</assignToAttributeDefAssignment> <assignToEffectiveMembership>F</assignToEffectiveMembership> <assignToEffectiveMembershipAssignment>F</assignToEffectiveMembershipAssignment> <assignToGroup>F</assignToGroup> <assignToGroupAssignment>F</assignToGroupAssignment> <assignToImmediateMembership>F</assignToImmediateMembership> <assignToImmediateMembershipAssignment>F</assignToImmediateMembershipAssignment> <assignToMember>F</assignToMember> <assignToMemberAssignment>F</assignToMemberAssignment> <assignToStem>F</assignToStem> <assignToStemAssignment>F</assignToStemAssignment> </WsAttributeDef> </wsAttributeDefs> <wsAttributeDefNames> <WsAttributeDefName> <idIndex>30234</idIndex> <extension>testGroupAttrMarker</extension> <displayExtension>testGroupAttrMarker</displayExtension> <displayName>test:testGroupAttrMarker</displayName> <name>test:testGroupAttrMarker</name> <uuid>ba2c76b810ce4881a9db8c0bd871a53e</uuid> <attributeDefId>b80e9e8c13f54093ab297aeea7b23974</attributeDefId> <attributeDefName>test:testGroupAttrMarkerDef</attributeDefName> </WsAttributeDefName> </wsAttributeDefNames> <wsAttributeAssignResults> <WsAssignAttributeResult> <wsAttributeAssigns> <WsAttributeAssign> <disallowed>F</disallowed> <attributeAssignActionType>immediate</attributeAssignActionType> <attributeAssignDelegatable>FALSE</attributeAssignDelegatable> <attributeAssignActionId>b43313a40f064697b14c38e60afce22b</attributeAssignActionId> <attributeAssignActionName>assign</attributeAssignActionName> <attributeAssignType>group</attributeAssignType> <attributeDefNameId>ba2c76b810ce4881a9db8c0bd871a53e</attributeDefNameId> <attributeDefNameName>test:testGroupAttrMarker</attributeDefNameName> <attributeDefId>b80e9e8c13f54093ab297aeea7b23974</attributeDefId> <attributeDefName>test:testGroupAttrMarkerDef</attributeDefName> <createdOn>2020/10/22 13:02:21.773</createdOn> <enabled>T</enabled> <id>8ee4ff556a6a46c1b650de26100699d0</id> <lastUpdated>2020/10/22 13:02:21.773</lastUpdated> <ownerGroupId>dbfa18c3-a025-47b6-a9a0-be5ac02e8270</ownerGroupId> <ownerGroupName>test:testGroup</ownerGroupName> </WsAttributeAssign> </wsAttributeAssigns> <changed>F</changed> <valuesChanged>F</valuesChanged> <deleted>F</deleted> </WsAssignAttributeResult> </wsAttributeAssignResults> <resultMetadata> <resultCode>SUCCESS</resultCode> <resultMessage>, Found 1 results. </resultMessage> <success>T</success> </resultMetadata> <responseMetadata> <resultWarnings></resultWarnings> <millis>62</millis> <serverVersion>2.5.35</serverVersion> </responseMetadata> <wsGroups> <WsGroup> <extension>testGroup</extension> <typeOfGroup>group</typeOfGroup> <displayExtension>testGroup</displayExtension> <description>testGroup</description> <displayName>test:testGroup</displayName> <name>test:testGroup</name> <uuid>dbfa18c3-a025-47b6-a9a0-be5ac02e8270</uuid> <alternateName>testdd:testGroupdd</alternateName> <idIndex>197979</idIndex> <enabled>T</enabled> </WsGroup> </wsGroups> <wsStems/> <wsMemberships/> <wsSubjects/> </WsAssignAttributesResults> ################ RESPONSE END ############### Output template: Index: ${index}: attributeAssignType: ${wsAttributeAssign.attributeAssignType}, owner: ${ownerName}, attributeDefNameName: ${wsAttributeDefName.name}, action: ${wsAttributeAssign.attributeAssignActionName}, values: ${valuesString}, enabled: ${wsAttributeAssign.enabled}, id: ${wsAttributeAssign.id}, changed: ${wsAssignAttributeResult.changed}, deleted: ${wsAssignAttributeResult.deleted}, valuesChanged: ${wsAssignAttributeResult.valuesChanged}, available variables: wsAssignAttributesResults, grouperClientUtils, index, wsAttributeAssignment Index: 0: attributeAssignType: group, owner: test:testGroup, attributeDefNameName: test:testGroupAttrMarker, action: assign, values: none, enabled: T, id: 8ee4ff556a6a46c1b650de26100699d0, changed: F, deleted: F, valuesChanged: F Elapsed time: 1111ms [mchyzer@flash pennGroupsClient-2.5.0]$ [mchyzer@flash pennGroupsClient-2.5.0]$ java -jar grouperClient-2.5.36.jar --operation=assignAttributesWs --attributeAssignType=group_asgn --attributeAssignOperation=assign_attr --ownerAttributeAssignUuids=8ee4ff556a6a46c1b650de26100699d0 --attributeDefNameNames=test:testGroupAttr --debug=true Reading resource: grouper.client.properties, from: /home/mchyzer/grouper/pennGroupsClient-2.5.0/grouper.client.properties WebService: connecting as user: 'fast/medley.isc-seo.upenn.edu' WebService: connecting to URL: 'https://grouperWs.apps.upenn.edu/grouperWs/servicesRest/2.5.36/attributeAssignments' ################ REQUEST START (indented) ############### POST /grouperWs/servicesRest/2.5.36/attributeAssignments HTTP/1.1 Connection: close Authorization: Basic xxxxxxxxxxxxxxxx User-Agent: Jakarta Commons-HttpClient/3.1 Host: grouperWs.apps.upenn.edu:-1 Content-Length: 478 Content-Type: text/xml; charset=UTF-8 <WsRestAssignAttributesRequest> <attributeAssignOperation>assign_attr</attributeAssignOperation> <wsOwnerAttributeAssignLookups> <WsAttributeAssignLookup> <uuid>8ee4ff556a6a46c1b650de26100699d0</uuid> </WsAttributeAssignLookup> </wsOwnerAttributeAssignLookups> <attributeAssignType>group_asgn</attributeAssignType> <wsAttributeDefNameLookups> <WsAttributeDefNameLookup> <name>test:testGroupAttr</name> </WsAttributeDefNameLookup> </wsAttributeDefNameLookups> </WsRestAssignAttributesRequest> ################ REQUEST END ############### ################ RESPONSE START (indented) ############### HTTP/1.1 200 OK Date: Thu, 22 Oct 2020 17:07:47 GMT Content-Type: application/xml;charset=UTF-8 Transfer-Encoding: chunked Connection: close Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips Strict-Transport-Security: max-age=15768000 X-Grouper-resultCode: SUCCESS X-Grouper-success: T X-Grouper-resultCode2: NONE <WsAssignAttributesResults> <wsAttributeDefs> <WsAttributeDef> <idIndex>10416</idIndex> <extension>testGroupAttrDef</extension> <name>test:testGroupAttrDef</name> <uuid>ffa61e0293e54619bb0fd557673ead84</uuid> <attributeDefType>attr</attributeDefType> <multiAssignable>F</multiAssignable> <multiValued>F</multiValued> <valueType>string</valueType> <assignToAttributeDef>F</assignToAttributeDef> <assignToAttributeDefAssignment>F</assignToAttributeDefAssignment> <assignToEffectiveMembership>F</assignToEffectiveMembership> <assignToEffectiveMembershipAssignment>F</assignToEffectiveMembershipAssignment> <assignToGroup>F</assignToGroup> <assignToGroupAssignment>F</assignToGroupAssignment> <assignToImmediateMembership>F</assignToImmediateMembership> <assignToImmediateMembershipAssignment>F</assignToImmediateMembershipAssignment> <assignToMember>F</assignToMember> <assignToMemberAssignment>F</assignToMemberAssignment> <assignToStem>F</assignToStem> <assignToStemAssignment>F</assignToStemAssignment> </WsAttributeDef> </wsAttributeDefs> <wsAttributeDefNames> <WsAttributeDefName> <idIndex>30235</idIndex> <extension>testGroupAttr</extension> <displayExtension>testGroupAttr</displayExtension> <displayName>test:testGroupAttr</displayName> <name>test:testGroupAttr</name> <uuid>bda1e2f99f3f49b2911275315bbf0350</uuid> <attributeDefId>ffa61e0293e54619bb0fd557673ead84</attributeDefId> <attributeDefName>test:testGroupAttrDef</attributeDefName> </WsAttributeDefName> </wsAttributeDefNames> <wsAttributeAssignResults> <WsAssignAttributeResult> <wsAttributeAssigns> <WsAttributeAssign> <disallowed>F</disallowed> <attributeAssignActionType>immediate</attributeAssignActionType> <attributeAssignDelegatable>FALSE</attributeAssignDelegatable> <attributeAssignActionId>326b49d96bfe4e71a147559d99bed6d1</attributeAssignActionId> <attributeAssignActionName>assign</attributeAssignActionName> <attributeAssignType>group_asgn</attributeAssignType> <attributeDefNameId>bda1e2f99f3f49b2911275315bbf0350</attributeDefNameId> <attributeDefNameName>test:testGroupAttr</attributeDefNameName> <attributeDefId>ffa61e0293e54619bb0fd557673ead84</attributeDefId> <attributeDefName>test:testGroupAttrDef</attributeDefName> <createdOn>2020/10/22 13:07:47.223</createdOn> <enabled>T</enabled> <id>d2bdb490a64b42598e061a21df13184a</id> <lastUpdated>2020/10/22 13:07:47.223</lastUpdated> <ownerAttributeAssignId>8ee4ff556a6a46c1b650de26100699d0</ownerAttributeAssignId> </WsAttributeAssign> </wsAttributeAssigns> <changed>T</changed> <valuesChanged>F</valuesChanged> <deleted>F</deleted> </WsAssignAttributeResult> </wsAttributeAssignResults> <resultMetadata> <resultCode>SUCCESS</resultCode> <resultMessage>, Found 1 results. </resultMessage> <success>T</success> </resultMetadata> <responseMetadata> <resultWarnings></resultWarnings> <millis>192</millis> <serverVersion>2.5.35</serverVersion> </responseMetadata> <wsGroups/> <wsStems/> <wsMemberships/> <wsSubjects/> </WsAssignAttributesResults> ################ RESPONSE END ############### Output template: Index: ${index}: attributeAssignType: ${wsAttributeAssign.attributeAssignType}, owner: ${ownerName}, attributeDefNameName: ${wsAttributeDefName.name}, action: ${wsAttributeAssign.attributeAssignActionName}, values: ${valuesString}, enabled: ${wsAttributeAssign.enabled}, id: ${wsAttributeAssign.id}, changed: ${wsAssignAttributeResult.changed}, deleted: ${wsAssignAttributeResult.deleted}, valuesChanged: ${wsAssignAttributeResult.valuesChanged}, available variables: wsAssignAttributesResults, grouperClientUtils, index, wsAttributeAssignment Index: 0: attributeAssignType: group_asgn, owner: 8ee4ff556a6a46c1b650de26100699d0, attributeDefNameName: test:testGroupAttr, action: assign, values: none, enabled: T, id: d2bdb490a64b42598e061a21df13184a, changed: T, deleted: F, valuesChanged: F Elapsed time: 1917ms [mchyzer@flash pennGroupsClient-2.5.0]$
Replacing attribute values
Make a string def
Make a string name
Make a group and let your principal assign
Allow principal to assign the attribute
Replace the values
[mchyzer@flash pennGroupsClient-2.6.0]$ java -jar grouperClient-2.6.0.jar --operation=assignAttributesWs --attributeAssignType=group --attributeAssignOperation=assign_attr --attributeDefNameNames=test:isc:ait:mchyzer:someString --ownerGroupNames=test:isc:ait:mchyzer:testMchyzer --attributeAssignValueOperation=replace_values --values0System=some --values1System=val --values2System=another --debug=true Reading resource: grouper.client.properties, from: /home/mchyzer/grouper/pennGroupsClient-2.6.0/grouper.client.properties WebService: connecting as user: 'fast/medley.isc-seo.upenn.edu' WebService: connecting to URL: 'https://grouperWs.apps.upenn.edu/grouperWs/servicesRest/2.6.0/attributeAssignments' ################ REQUEST START (indented) ############### POST /grouperWs/servicesRest/2.6.0/attributeAssignments HTTP/1.1 Connection: close Authorization: Basic xxxxxxxxxxxxxxxx User-Agent: Jakarta Commons-HttpClient/3.1 Host: grouperWs.apps.upenn.edu:-1 Content-Length: 792 Content-Type: text/xml; charset=UTF-8 <WsRestAssignAttributesRequest> <attributeAssignOperation>assign_attr</attributeAssignOperation> <attributeAssignValueOperation>replace_values</attributeAssignValueOperation> <values> <WsAttributeAssignValue> <valueSystem>some</valueSystem> </WsAttributeAssignValue> <WsAttributeAssignValue> <valueSystem>val</valueSystem> </WsAttributeAssignValue> <WsAttributeAssignValue> <valueSystem>another</valueSystem> </WsAttributeAssignValue> </values> <attributeAssignType>group</attributeAssignType> <wsAttributeDefNameLookups> <WsAttributeDefNameLookup> <name>test:isc:ait:mchyzer:someString</name> </WsAttributeDefNameLookup> </wsAttributeDefNameLookups> <wsOwnerGroupLookups> <WsGroupLookup> <groupName>test:isc:ait:mchyzer:testMchyzer</groupName> </WsGroupLookup> </wsOwnerGroupLookups> </WsRestAssignAttributesRequest> ################ REQUEST END ############### ################ RESPONSE START (indented) ############### HTTP/1.1 200 OK Date: Mon, 14 Mar 2022 20:17:21 GMT Content-Type: application/xml;charset=UTF-8 Transfer-Encoding: chunked Connection: close Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips Strict-Transport-Security: max-age=15768000 X-Grouper-resultCode: SUCCESS X-Grouper-success: T X-Grouper-resultCode2: NONE <WsAssignAttributesResults> <wsAttributeDefs> <WsAttributeDef> <idIndex>10521</idIndex> <extension>someStringDef</extension> <name>test:isc:ait:mchyzer:someStringDef</name> <uuid>9fd502bef5224ee6bd1397f30065b232</uuid> <attributeDefType>attr</attributeDefType> <multiAssignable>F</multiAssignable> <multiValued>T</multiValued> <valueType>string</valueType> <assignToAttributeDef>F</assignToAttributeDef> <assignToAttributeDefAssignment>F</assignToAttributeDefAssignment> <assignToEffectiveMembership>F</assignToEffectiveMembership> <assignToEffectiveMembershipAssignment>F</assignToEffectiveMembershipAssignment> <assignToGroup>F</assignToGroup> <assignToGroupAssignment>F</assignToGroupAssignment> <assignToImmediateMembership>F</assignToImmediateMembership> <assignToImmediateMembershipAssignment>F</assignToImmediateMembershipAssignment> <assignToMember>F</assignToMember> <assignToMemberAssignment>F</assignToMemberAssignment> <assignToStem>F</assignToStem> <assignToStemAssignment>F</assignToStemAssignment> </WsAttributeDef> </wsAttributeDefs> <wsAttributeDefNames> <WsAttributeDefName> <idIndex>61289</idIndex> <extension>someString</extension> <displayExtension>someString</displayExtension> <displayName>test:isc:ait:mchyzer:someString</displayName> <name>test:isc:ait:mchyzer:someString</name> <uuid>82eae611fa324734924a76b611fa29c4</uuid> <attributeDefId>9fd502bef5224ee6bd1397f30065b232</attributeDefId> <attributeDefName>test:isc:ait:mchyzer:someStringDef</attributeDefName> </WsAttributeDefName> </wsAttributeDefNames> <wsAttributeAssignResults> <WsAssignAttributeResult> <wsAttributeAssignValueResults> <WsAttributeAssignValueResult> <changed>T</changed> <deleted>F</deleted> <wsAttributeAssignValue> <id>64dacb6a42684b1085b441699a8125e2</id> <valueSystem>another</valueSystem> </wsAttributeAssignValue> </WsAttributeAssignValueResult> <WsAttributeAssignValueResult> <changed>T</changed> <deleted>F</deleted> <wsAttributeAssignValue> <id>087026f749ff42bcbe1daebe42a5054a</id> <valueSystem>some</valueSystem> </wsAttributeAssignValue> </WsAttributeAssignValueResult> <WsAttributeAssignValueResult> <changed>T</changed> <deleted>F</deleted> <wsAttributeAssignValue> <id>33dfac0f15b34b52bd6a62be901c71a6</id> <valueSystem>val</valueSystem> </wsAttributeAssignValue> </WsAttributeAssignValueResult> </wsAttributeAssignValueResults> <wsAttributeAssigns> <WsAttributeAssign> <disallowed>F</disallowed> <attributeAssignActionType>immediate</attributeAssignActionType> <attributeAssignDelegatable>FALSE</attributeAssignDelegatable> <attributeAssignActionId>73fb98ab652a490b9c7bde464ad674b8</attributeAssignActionId> <attributeAssignActionName>assign</attributeAssignActionName> <attributeAssignType>group</attributeAssignType> <attributeDefNameId>82eae611fa324734924a76b611fa29c4</attributeDefNameId> <attributeDefNameName>test:isc:ait:mchyzer:someString</attributeDefNameName> <attributeDefId>9fd502bef5224ee6bd1397f30065b232</attributeDefId> <attributeDefName>test:isc:ait:mchyzer:someStringDef</attributeDefName> <wsAttributeAssignValues> <WsAttributeAssignValue> <id>64dacb6a42684b1085b441699a8125e2</id> <valueSystem>another</valueSystem> </WsAttributeAssignValue> <WsAttributeAssignValue> <id>087026f749ff42bcbe1daebe42a5054a</id> <valueSystem>some</valueSystem> </WsAttributeAssignValue> <WsAttributeAssignValue> <id>33dfac0f15b34b52bd6a62be901c71a6</id> <valueSystem>val</valueSystem> </WsAttributeAssignValue> </wsAttributeAssignValues> <createdOn>2022/03/14 16:17:21.402</createdOn> <enabled>T</enabled> <id>7e5d962178284c798c5bbf514c3bcd9a</id> <lastUpdated>2022/03/14 16:17:21.402</lastUpdated> <ownerGroupId>7c4d9d393ff24a29b160b6d36865292f</ownerGroupId> <ownerGroupName>test:isc:ait:mchyzer:testMchyzer</ownerGroupName> </WsAttributeAssign> </wsAttributeAssigns> <changed>T</changed> <valuesChanged>T</valuesChanged> <deleted>F</deleted> </WsAssignAttributeResult> </wsAttributeAssignResults> <resultMetadata> <resultCode>SUCCESS</resultCode> <resultMessage>, Found 1 results. </resultMessage> <success>T</success> </resultMetadata> <responseMetadata> <resultWarnings></resultWarnings> <millis>375</millis> <serverVersion>2.6.5</serverVersion> </responseMetadata> <wsGroups> <WsGroup> <extension>testMchyzer</extension> <typeOfGroup>group</typeOfGroup> <displayExtension>testMchyzer</displayExtension> <displayName>test:isc:ait:mchyzer:testMchyzer</displayName> <name>test:isc:ait:mchyzer:testMchyzer</name> <uuid>7c4d9d393ff24a29b160b6d36865292f</uuid> <idIndex>116332</idIndex> <enabled>T</enabled> </WsGroup> </wsGroups> <wsStems/> <wsMemberships/> <wsSubjects/> </WsAssignAttributesResults> ################ RESPONSE END ############### Output template: Index: ${index}: attributeAssignType: ${wsAttributeAssign.attributeAssignType}, owner: ${ownerName}, attributeDefNameName: ${wsAttributeDefName.name}, action: ${wsAttributeAssign.attributeAssignActionName}, values: ${valuesString}, enabled: ${wsAttributeAssign.enabled}, id: ${wsAttributeAssign.id}, changed: ${wsAssignAttributeResult.changed}, deleted: ${wsAssignAttributeResult.deleted}, valuesChanged: ${wsAssignAttributeResult.valuesChanged}, available variables: wsAssignAttributesResults, grouperClientUtils, index, wsAttributeAssignment Index: 0: attributeAssignType: group, owner: test:isc:ait:mchyzer:testMchyzer, attributeDefNameName: test:isc:ait:mchyzer:someString, action: assign, values: another,some,val, enabled: T, id: 7e5d962178284c798c5bbf514c3bcd9a, changed: T, deleted: F, valuesChanged: T Elapsed time: 1346ms [mchyzer@flash pennGroupsClient-2.6.0]$
See the values
Replace the values again
[mchyzer@flash pennGroupsClient-2.6.0]$ java -jar grouperClient-2.6.0.jar --operation=assignAttributesWs --attributeAssignType=group --attributeAssignOperation=assign_attr --attributeDefNameNames=test:isc:ait:mchyzer:someString --ownerGroupNames=test:isc:ait:mchyzer:testMchyzer --attributeAssignValueOperation=replace_values --values0System=some --values2System=another1 --debug=true