Custom Field
Note
Refer to Authentication for ways to authenticate to the TPP WebSDK.
Creating Custom Fields
Note
There are many options when creating custom fields. Refer to the POST Metadata/DefineItem API in the Venafi TPP WebSDK Documentation to get more info on possible inputs.
from pytpp import Authenticate, Features, Attributes, AttributeValues
api = Authenticate(...)
features = Features(api)
### CREATE ####
custom_field = features.custom_fields.create(
label='Awesome Custom Field',
name='Awesome Custom Field',
classes=[Attributes.certificate.__config_class__],
data_type=AttributeValues.CustomField.Type.text_string,
allowed_values=[
'Option 1',
'Option 2'
],
default_values=['Option 1'],
error_message='You can only choose from these valid options: "Option 1", "Option 2".',
help_text='Choose from "Option 1" or "Option 2".',
mandatory=True,
policyable=True,
regular_expression='^[a-zA-Z0-9\s]*$',
render_hidden=False,
render_read_only=False,
single=True
)
#### DELETE ####
features.custom_fields.delete(custom_field='Awesome Custom Field', remove_data=True)
Reading Custom Fields
from pytpp import Authenticate, Features
api = Authenticate(...)
features = Features(api)
#### READ OBJECT ATTRIBUTES ####
result_on_object = features.custom_fields.read(
obj=r'\VED\Policy\Certificates\Awesome Team\\VED\Policy\Certificates\Awesome Team',
custom_field='Team Name'
)
print(f'VALUES: {result_on_object.values}')
print(f'LOCKED: {result_on_object.locked}')
print(f'POLICY: {result_on_object.policy_dn}')
#### READ POLICY ATTRIBUTES ####
result_on_policy = features.custom_fields.read_policy(
folder=r'\VED\Policy\Certificates\Awesome Team',
custom_field='Team Name',
class_name=Attributes.device.__config_class__
)
print(f'POLICY VALUES: {result_on_policy.values}')
print(f'LOCKED: {result_on_policy.locked}')
Writing Custom Fields
Write Custom Field To An Object
from pytpp import Authenticate, Features
api = Authenticate(...)
features = Features(api)
#### WRITE CUSTOM FIELD VALUE TO OBJECT ####
features.custom_fields.write(
obj=r'\VED\Policy\Certificates\Awesome Team\awesome_cert.com',
custom_field='Team Name',
values=['Awesome Team']
)
#### WRITE CUSTOM FIELD VALUE TO POLICY ####
features.custom_fields.write_policy(
folder=r'\VED\Policy\Certificates\Awesome Team',
custom_field='Team Name',
class_name=Attributes.device.__config_class__,
values=['Awesome Team'],
locked=True
)