def METHOD_NAME(context):
    """ Entry point for the deployment resources. """
    properties = context.properties
    project_id = properties.get('project', context.env['project'])
    name = properties.get('name', context.env['name'])
    network = properties['network']
    if not '$(ref' in network:
        if not 'global/' in network:
            network = 'global/networks/{}'.format(network)
        if not 'project/' in network:
            network = 'projects/{}/{}'.format(project_id, network)
    bastion_props = {
        'project': project_id,
        'name': name,
        'zone': properties['zone'],
        'networks': [{
            'network': network,
            'accessConfigs': [{'type': 'ONE_TO_ONE_NAT'}]
        }],
        'machineType': properties['machineType'],
        'diskImage': IMAGE,
    }
    bastion = {'name': context.env['name'], 'type': 'instance.py', 'properties': bastion_props}
    optional_props = ['diskSizeGb', 'metadata', 'tags']
    for prop in optional_props:
        set_optional_property(bastion_props, properties, prop)
    if properties.get('disableSudo'):
        disable_sudo(bastion_props)
    firewall_settings = properties.get('createFirewallRules')
    if firewall_settings:
        extra_resources, extra_outputs = create_firewall_rules(
            bastion,
            network,
            firewall_settings
        )
    else:
        extra_resources = []
        extra_outputs = []
    resources = [bastion] + extra_resources
    for resource in resources:
        resource['properties']['project'] = project_id
    outputs = [
        {
            'name': 'name',
            'value': name
        },
        {
            'name': 'selfLink',
            'value': '$(ref.{}.selfLink)'.format(context.env['name'])
        },
        {
            'name': 'internalIp',
            'value': '$(ref.{}.internalIp)'.format(context.env['name'])
        },
        {
            'name': 'externalIp',
            'value': '$(ref.{}.externalIp)'.format(context.env['name'])
        }
    ]
    return {
        'resources': resources,
        'outputs': outputs + extra_outputs
    }