If they're part of the XaaS item I don't think they can be part of the machine's payload because they aren't applicable there.
What is the XaaS component for?
there is a number of ways to go about it.
The XAAS I have created is two selection boxes. The first Selection box is a selection of the Tag Categories in vSphere. The user can select the desired categories of Tags. The second Selection Box is populated with the tags available from the selected Categories. The user can select the desired tags that they would like to be applied to the VM. This XAAS is placed on the blueprint after the vSphere VM object. After the VM is deployed and POST active, that was when the EBS runs. Now, I know that you are going to say that SovLabs has a Tagging module. I am aware of that. Lets just say, that is not an option at this time. You say that the XAAS data cant be part of PAYLOAD. If not, how can I construct this so that I can select the tags and pass to Orchestrator?
Actually, I was going to suggest that you build these as Actions that then are bound to a custom property definition present at the deployment level. This way, they would be part of the payload and could still be written out in the POST phase.
I agree with daphnissov, I've done it that way (custom properties on IaaS blueprint) for a customer before. Two properties, one for the category which has a static list of values and one for the tag names which is populated by vRO action. Bind the category input of the vRO action to the value selected by the user in the first drop down box and it will return a list of Tag names from vCenter that belong to that category.
Then in Machine Provisioned POST retrieve the value for the tag selected by the user from the payload and apply the tag to the VM.
In my case I used vAPI to retrieve the tags and apply them to the VM in vCenter.
But there is no static list here. All actions poll the live vCenter and inventory of tags, so an addition of a category or tag should be returned by the action next time it is invoked.
Just to clarify in my example we used a static list for the categories as there were only two of them and it was a PoC. You can however use a vRO action to return a list of categories directly from vCenter so you don't have to use a static list as daphnissov has pointed out.